Extract audio from a YouTube video file ```sh ffmpeg -i INPUT.mp4 -ab 256k OUTPUT.mp3 ``` Cut 3s length ```sh ffmpeg -y -ss 00:00:03 -i INPUT.mp4 -codec copy OUTPUT.mp4 ``` Cut 30s length after first 3s ```sh ffmpeg -y -ss 00:00:03 -i INPUT.mp4 -to 00:00:30 -codec copy OUTPUT.mp4 ``` Clear ID3 Tag Metadata ```sh ffmpeg -y -i INPUT.mp4 -codec copy -metadata title="" -metadata artist="" -metadata album_artist="" -metadata album="" -metadata date="" -metadata track="" -metadata genre="" -metadata publisher="" -metadata encoded_by="" -metadata copyright="" -metadata composer="" -metadata performer="" -metadata TIT1="" -metadata TIT3="" -metadata disc="" -metadata TKEY="" -metadata TBPM="" -metadata language="eng" -metadata encoder="" -preset superfast OUTPUT.mp4 ``` Cut 3s, change MD5 Hash, clear ID3 Tag Metadata ```ssh ffmpeg -y -ss 00:00:03 -i input.mp4 -codec copy output_cut.mp4 ffmpeg -y -i output_cut.mp4 -codec copy -metadata title="" -metadata artist="" -metadata album_artist="" -metadata album="" -metadata date="" -metadata track="" -metadata genre="" -metadata publisher="" -metadata encoded_by="" -metadata copyright="" -metadata composer="" -metadata performer="" -metadata TIT1="" -metadata TIT3="" -metadata disc="" -metadata TKEY="" -metadata TBPM="" -metadata language="eng" -metadata encoder="" -preset superfast output.mp4 delete output_cut.mp4 ``` Crop and Resize ```sh ffmpeg -y -i input.mp4 -filter_complex "crop=640:360:10:10,scale=320:240,setdar=16/9" output.mp4 ``` Vignette ```sh //vignette=0-10 ffmpeg -y -i input.mp4 -filter_complex "vignette=5" output.mp4 ``` Zoom ```sh //zoom 150% to center ffmpeg -y -i input.mp4 -filter_complex "crop=iw/2:ih/2,scale=640:360" output.mp4 //zoom 150% from left top corner //ffmpeg -y -i input.mp4 -filter_complex "crop=iw/2:ih/2:0:0,scale=640:360" output.mp4 ``` Extract a frame as image ```sh //Extract a frame at 30s ffmpeg -y -i input.mp4 -ss 00:00:30 -frames:v 1 output.mp4 ``` Create Thumbnail every 10 seconds ```sh ffmpeg -y -i imput.mp4 -f image2 -vf "fps=1/10" output.mp4 ``` Speed up video and audio ```sh //Speed up to 170% = 1.7 ffmpeg -y -i input.mp4 -filter_complex "setpts=PTS/1.7; atempo=1.7" output.mp4 ``` Overlay Logo or Filter ```sh //Overlay Logo ffmpeg -y -i input.mp4 -i "Logo.png" -filter_complex "[0:v][1:v]overlay=10:10" output.mp4 //Overlay Filter //ffmpeg -y -i input.mp4 -i "Filter.png" -filter_complex "[0:v][1:v]overlay=0:0" output.mp4 ``` Blur video ```sh //boxblur=9:9 ffmpeg -y -i input.mp4 -filter_complex "boxblur=2:5" output.mp4 ``` Rotate video ```sh ffmpeg -y -i inputmp4 -filter_complex "hflip,vflip" -metadata:s:v rotate=0 -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -preset superfast output.mp4 //transpose ffmpeg -i input.mp4 -vf "transpose=2,transpose=2,format=yuv420p" -metadata:s:v rotate=0 -codec:v libx264 -codec:a copy output.mp4 //This filter can rotate to any arbitrary angle and uses radians as a unit instead of degrees. This example will rotate π/1 radians, or 180°: ffmpeg -i input.mp4 -vf "rotate=PI:bilinear=0,format=yuv420p" -metadata:s:v rotate=0 -codec:v libx264 -codec:a copy output.mp4 //You can use degrees instead. One degree is equal to π/180 radians. So if you want to rotate 45°: ffmpeg -i input.mp4 -vf "rotate=45*(PI/180),format=yuv420p" -metadata:s:v rotate=0 -codec:v libx264 -codec:a copy output.mp4 ``` Convert to MP4 ```sh //Encode MP4 with Youtube requirement ffmpeg -y -i input.mp4 -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -preset superfast output.mp4 //Ref //https://trac.ffmpeg.org/wiki/Encode/YouTube //https://trac.ffmpeg.org/wiki/Encode/H.264 ``` Convert to AVI ```sh ffmpeg -y -i input.mp4 -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -f avi -preset superfast output.avi ``` Convert to FLV ```sh ffmpeg -y -i input.mp4 -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -f flv -preset superfast output.flv ``` Convert to MP3 ```sh ffmpeg -y -i input.mp4 -vn -acodec libmp3lame -b:a 128k -ar 44100 -bufsize 50000k -f mp3 -preset superfast output.mp3 ``` Convert to GIF ```sh //Convert .mp4 to animated gif(uncompressed) with length 30s ffmpeg -y -i input.mp4 -s 320x240 -to 00:00:30 -preset superfast output.gif ``` Remove Audio of Video ```sh ffmpeg -y -i input.mp4 -codec copy -an -preset superfast output.mp4 ``` Add Audio to Video ```sh ffmpeg -y -i audio.wav -i input.mp4 -codec copy -shortest -preset superfast output.mp4 ``` Merge two Audio ```sh ffmpeg -y -i audio.mp3 -i input.mp4 -filter_complex "[0:a][1:a]amix=inputs=2:duration=shortest" -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -preset superfast output.mp4 ``` Join many Video ```sh //Add intro - main - outro ffmpeg -y -i intro.mp4 -i input.mp4 -i outro.mp4 -filter_complex "[1:v]scale=1280:720,setdar=16/9 [vmain]; [1:a]volume=1.6 [amain]; [0:v]scale=1280:720,setdar=16/9 [vintro]; [2:v]scale=1280:720 [voutro]; [vintro][0:a][vmain][amain][voutro][2:a]concat=n=3:v=1:a=1" -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -bufsize 500000k -preset superfast output.mp4 //Add intro - main ffmpeg -y -i intro.mp4 -i input.mp4 -filter_complex "[1:v]scale=1280:720,setdar=16/9 [vmain]; [1:a]volume=1.6 [amain]; [0:v]scale=1280:720,setdar=16/9 [vintro]; [vintro][0:a][vmain][amain]concat=n=2:v=1:a=1" -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -preset superfast output.mp4 //Add main - outro ffmpeg -y -i outro.mp4 -i input.mp4 -filter_complex "[1:v]scale=1280:720,setdar=16/9 [vmain]; [1:a]volume=1.6 [amain]; [0:v]scale=1280:720,setdar=16/9 [voutro]; [vmain][amain][voutro][0:a]concat=n=2:v=1:a=1" -vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1400k -profile:v main -level 3.1 -acodec libmp3lame -b:a 128k -ar 44100 -preset superfast output.mp4 ``` Audio Effect 1 - Bypass Copyright of Youtube ```sh ffmpeg -y -i input.mp4 -af "pan=stereo|c0