gitlab_snippets/Kelimion/ffmpeg-cheat-sheet.txt

64 lines
2.8 KiB
Plaintext

Useful FFMPEG commands:
Turn video into images, 1 image per 5 seconds:
ffmpeg -i Day_11_part_1.mp4 -vf fps=1/5 -start_number 0 %06d.png
Turn images into a slideshow:
ffmpeg -framerate 30 -i %06d.png -c:v libx264 -r 30 -pix_fmt yuv420p Timelapse.mp4
Turn 1 image into a 3 second video:
ffmpeg -framerate 1/3 -i 6.png -c:v libx264 -r 30 -pix_fmt yuv420p 6.mp4
Extract audio
ffmpeg -i Day07c.mp4 -c:a copy -vn audio.aac
Extract video:
ffmpeg -i Day07c.mp4 -c:v copy -an video.mp4
Mux video and audio back together:
ffmpeg -i Timelapse.aac -i Timelapse.mp4 -c:v copy -c:a copy -bsf:a aac_adtstoasc TimelapseNew.mp4
Mux like before, but also stop encoding when the shortest file runs out
ffmpeg -framerate 60 -i %06d.png -c:v libx264 -r 60 -pix_fmt yuv420p -i audiofile.mp3 -c:a copy -filter_complex " [1:0] apad " -shortest vidya.mp4
Concat simple:
ffmpeg -f concat -i a.txt Timelapse.aac
Concat advanced:
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4
Copy a 58m part of a video, starting 2h33m20s in to another video:
ffmpeg -ss 02:33:20 -i Day07c.mp4 -t 00:58:00 -c:a copy -c:v copy -bsf:a aac_adtstoasc 3.mp4
# Quality settings
echo Default quality (-crf 23) - 2041kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -pix_fmt yuv420p quality_23_default.mp4
echo Lossless - 5444kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -preset veryslow -qp 0 -pix_fmt yuv420p lossless.mp4
# If you care just about the quality and are going to upload it to YT,
# you could use -preset veryfast or -preset ultrafast to still get lossless, but without as long a wait
echo Default quality, animation - 1828kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -tune animation -pix_fmt yuv420p quality_23_default_anim_tuned.mp4
echo Lossless, animation - 5447kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -tune animation -preset veryslow -qp 0 -pix_fmt yuv420p lossless_anim_tuned.mp4
echo Quality level 22 - 2239kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -crf 22 -pix_fmt yuv420p quality_22.mp4
echo Quality level 22, animation - 1998kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -tune animation -crf 22 -pix_fmt yuv420p quality_22_anim_tuned.mp4
echo Quality level 18 - 3069kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -crf 18 -pix_fmt yuv420p quality_18.mp4
echo Quality level 18, animation - 2740kb/s avg
ffmpeg -framerate 60 -i "frame_%%09d.png" -c:v libx264 -r 60 -tune animation -crf 18 -pix_fmt yuv420p quality_18_anim_tuned.mp4
For more quality settings, see: https://trac.ffmpeg.org/wiki/Encode/H.264