Listing some of the commands that I am using these days while working with FFmpeg. Some readers may find them useful.
analyse motion vector data of any supported input video stream
ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb ffmpeg -flags2 +export_mvs -i input.mp4 -vf codecview=mv=pf+bf+bb output.mp4
Convert any file to YUV420 file. Pixel format is YUV420P
ffmpeg -i akiyo.mp4 -c:v rawvideo -pix_fmt yuv420p akiyo.yuv
Convert any video file to HEVC using libx265
ffmpeg -i input.mp4 -c:a copy -c:v libx265 out-hevc.mp4
Control frame rate to 5fps and play in full screen mode
ffplay -framerate 5 -fs str.bin
Play video files using FFPlay
ffplay akiyo.mp4
ffplay str.bin
Show all frame information, print frame wise information on terminal, can be modified to print on a file instead
ffprobe -show_frames str.bin
Count number of frames in any video stream
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 str.bin
Options description
-v errorThis hides “info” output (version info, etc) which makes parsing easier.-count_framesCount the number of frames per stream and report it in the corresponding stream section.-select_streams v:0Select only the video stream.-show_entries stream=nb_read_framesShow only the number of read frames.-of default=nokey=1:noprint_wrappers=1Set output format (aka the “writer”) todefault, do not print the key of each field (nokey=1), and do not print the section header and footer (noprint_wrappers=1).
Extract Y, U and V components of a video sequence in separate video files
ffmpeg -i akiyo.mp4 -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
Fade first n frames in a sequence, n = 100 here
ffmpeg -i akiyo.mp4 -filter_complex 'fade=in:0:100' output.hevc
Personal notes -
- akiyo.mp4 was approximately 470KB, it’s raw YUV is 42MB. The str.bin after HEVC main compression is 23.9KB for same visual quality
-
YUV name & size MP4 file size QP PSNR HEVC .bin size akiyo.yuv 470KB 32 40.48 23.9KB akiyo.yuv 470KB 51 28.94 5.4KB akiyo.yuv 470KB 20 47.21 151.4KB