tduva

FFmpeg

Feb 18th, 2017
508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

FFmpeg

Just some useful FFmpeg commands I sometimes use.

Show file information

ffmpeg -i input.mp4

Lists (among other things) the streams contained in the file, like Stream #0:0: Video: h264.. or Stream #0:1: Audio: aac...

Extract Audio

Extract as WAV:

ffmpeg -i input.mp4 -map a output.wav

Extract without re-encoding (-c(odec) copy, container format depends on what the original audio encoding is):

ffmpeg -i input.mp4 -map a -c copy output.aac

If there's more than one audio track you can select a certain stream in the file (in this example the 3rd track in the first file):

ffmpeg -i input.mp4 -map 0:2 -c copy output.aac

Exchange Audio

Use several input files and select which streams you want to have in there:

ffmpeg -i input.mp4 -i audio.aac -map 0:0 -map 1:0 -c copy output.mp4

In this example, it's using the first stream from the first file (-map 0:0) and the first stream from the second file (-map 1:0). And it's still just making a copy of the streams instead of encoding them (-c copy).

Mute Audio

To mute part of the audio of a video, you can use the following:

ffmpeg -i input.mp4 -af "volume=enable='between(t,10,30)':volume=0" -c:v copy output.mp4

The audio filter mutes the audio between 10 and 30 seconds into the video. The -c:v copy directly copies the video only, the audio has to be re-encoded. You can also mute more than one section:

ffmpeg -i input.mp4 -af "volume=enable='between(t,10,30)':volume=0, volume=enable='between(t,120,180)':volume=0" -c:v copy output.mp4

This would mute the parts between 10 and 30 seconds and between 2 and 3 minutes into the video.

Cut

To cut out part of a video (without re-encoding), for example starting at 12 minutes to 12 minutes 10 seconds, all of the following are equivalent:

ffmpeg -i input.mp4 -c copy -ss 0:12:00 -t 0:00:10 output.mp4
ffmpeg -i input.mp4 -c copy -ss 12:00 -t 0:10 output.mp4
ffmpeg -i input.mp4 -c copy -ss 0:12:00 -to 0:12:10 output.mp4

-ss starttime offset
-to endtime offset
-t duration

cut.bat

To make things a bit easier the following very simple .bat-file can be used:

ffmpeg -i %1 -ss %2 -to %3 -c copy output.mp4

Usage:

cut.bat IN_FILE.mp4 10:00 1:05:00

Put together video parts

This is useful when a video is in several parts and you want to put it together without re-encoding (e.g. old Twitch VOD parts). Create a text file called e.g. concat.txt, containing the lines:

file 'live_user_joshimuz_1408262284.flv'
file 'live_user_joshimuz_1408263805.flv'
file 'live_user_joshimuz_1408265325.flv'

Then use the command:

ffmpeg -f concat -i concat.txt -c copy output.mp4
Add Comment
Please, Sign In to add comment