<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FFmpeg on Junian Dev</title>
    <link>https://www.junian.dev/tags/ffmpeg/</link>
    <description>Recent content in FFmpeg on Junian Dev</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>author@junian.dev (Junian Triajianto)</managingEditor>
    <webMaster>author@junian.dev (Junian Triajianto)</webMaster>
    <copyright>Copyright &amp;copy; 2014 - 2026 Junian.dev</copyright>
    
	    <atom:link href="https://www.junian.dev/tags/ffmpeg/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Rotate Video with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-rotate-video/</link>
      <pubDate>Sun, 01 Feb 2026 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-rotate-video/</guid>
      <description>&lt;p&gt;Sometimes after recording a video using my iPhone, I notice that the orientation is wrong.
For example, when I intend to record a vertical video, the final result ends up being horizontal.
This happens because the Camera app uses the accelerometer to detect the video orientation at the moment recording starts.&lt;/p&gt;
&lt;p&gt;Of course, with the built-in Photos app, I can rotate the video easily.
But what if I need to do this on another machine, such as a Raspberry Pi?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change Video Aspect Ratio with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-change-aspect-ratio/</link>
      <pubDate>Wed, 22 Oct 2025 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-change-aspect-ratio/</guid>
      <description>&lt;p&gt;For some reason, a few of the video files I’ve received or downloaded from the internet have the wrong aspect ratio.&lt;/p&gt;
&lt;p&gt;For example, a video that’s supposed to be vertical (9:16) might play as a widescreen video (16:9).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Not in the mood for reading? Watch the &lt;a href=&#34;https://www.junian.dev/tech/ffmpeg-change-aspect-ratio/#video&#34;&gt;video&lt;/a&gt; instead.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The video content itself is probably fine. It&amp;rsquo;s likely that some of its metadata was saved incorrectly when it was edited.&lt;/p&gt;
&lt;p&gt;You can fix this easily with &lt;code&gt;ffmpeg&lt;/code&gt;. Let’s assume your incorrect video file is named &lt;code&gt;input.mp4&lt;/code&gt;. Just run the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Concatenate Multiple Videos Into a Single Video File with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-concat-videos/</link>
      <pubDate>Sat, 18 Oct 2025 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-concat-videos/</guid>
      <description>&lt;p&gt;When I make tutorial videos, I usually record them in a single take, meaning a topic can be covered in one video file with some parts edited or trimmed.&lt;/p&gt;
&lt;p&gt;However, sometimes I need to record two or more clips for a single topic. After trimming and editing each one, I then concatenate them into a single video file.&lt;/p&gt;
&lt;p&gt;In this post, I’ll show you how I usually merge those video files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Fix a Corrupted Video with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-fix-corrupted-video/</link>
      <pubDate>Thu, 11 Sep 2025 14:39:45 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-fix-corrupted-video/</guid>
      <description>&lt;p&gt;Sometimes, after recording a video, downloading one online, or saving a video stream to your storage, the file may end up corrupted, incomplete, or broken. While players like VLC might still play it, some videos refuse to play certain parts or won’t play at all.&lt;/p&gt;
&lt;p&gt;Fortunately, you can often fix this with &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;‼️ &lt;strong&gt;WARNING&lt;/strong&gt;: &lt;em&gt;Some video files may be damaged beyond repair, and this method might not always work.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>FFmpeg Batch Conversion with Powershell</title>
      <link>https://www.junian.dev/tech/powershell-ffmpeg-batch/</link>
      <pubDate>Mon, 11 Jan 2021 15:11:30 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/powershell-ffmpeg-batch/</guid>
      <description>&lt;p&gt;Recently I need to backup all of my videos from iPhone into my hard drive.
The iOS by default record the videos in QuickTime &lt;code&gt;.MOV&lt;/code&gt; format.
Since it&amp;rsquo;s for archival purpose, I need to convert it into more portable format &lt;code&gt;.mp4&lt;/code&gt;.
My plan is to encode the video into H.264 and the audio into AAC format.
The &lt;code&gt;.mp4&lt;/code&gt; file size is also relatively smaller than &lt;code&gt;.MOV&lt;/code&gt;, so this is perfect for achival.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Take Screenshot from Video with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-video-screenshot/</link>
      <pubDate>Thu, 02 Apr 2020 10:11:03 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-video-screenshot/</guid>
      <description>&lt;p&gt;Consider following case.
You have a video file that you want to show a screenshot on a web page.
But you don&amp;rsquo;t want to do it manually.
Instead, you already have the exact time stamp of the video you want to take the screenshot.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s very simple to do that with FFmpeg.
The following is the syntax to do that.&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ffmpeg -i input.mp4 -ss 00:00:01 -vframes &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; output.jpg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;Where &lt;code&gt;input.mp4&lt;/code&gt; is the name of video file you want to take a screenshot of and &lt;code&gt;output.jpg&lt;/code&gt; is the output image file.
You can change the &lt;code&gt;-ss&lt;/code&gt; parameter and choose your own timestamp.
The format is &lt;code&gt;hh:mm:ss&lt;/code&gt; where &lt;code&gt;hh&lt;/code&gt; is the hour, &lt;code&gt;mm&lt;/code&gt; is the minute, and &lt;code&gt;ss&lt;/code&gt; is the second part of the timestamp.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertical to Horizontal Video Conversion with Blur Sides by using FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-vertical-video-blur/</link>
      <pubDate>Sun, 29 Mar 2020 20:06:35 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-vertical-video-blur/</guid>
      <description>&lt;p&gt;When you&amp;rsquo;re publishing videos on a platform like YouTube, you mostly want it to make it to standard 16:9 horizontal video.
Most video recorders already produce that.
But sometimes, one of your video section will contain a vertical video.
For example, if you want to show an Android or iOS app demo.&lt;/p&gt;
&lt;p&gt;Putting a vertical video directly into a wide video doesn&amp;rsquo;t look good.
Especially with that wide area for pillar box sides.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Record Twitch Streams Automatically in Python</title>
      <link>https://www.junian.dev/dev/python-record-twitch/</link>
      <pubDate>Thu, 19 Jan 2017 10:56:00 +0000</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/python-record-twitch/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s say you like to watch people playing game. Or maybe you like to study a game strategy from someone else. Or maybe you just find a player funny while playing a game. Of course you&amp;rsquo;re going to search those videos on Internet. Some videos are streamable at any time, like YouTube videos, but some are just live stream with a certain schedule, like Twitch.&lt;/p&gt;
&lt;p&gt;If it&amp;rsquo;s streamable anytime, it&amp;rsquo;s not a problem because we can watch it anytime we want. But what if it&amp;rsquo;s a live stream and you&amp;rsquo;re busy, or at work, or at other place that make you can&amp;rsquo;t watch video right at the time. By the time you&amp;rsquo;re home and plan to watch the video, it probably has ended.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
