请注意小端le(Little Endian)和大端be(Big Endian)字节序的区别,一般情况下,ff****工具会默认小端字节序。
将每秒25帧的视频转换成每秒1帧
ffmpeg -i input.mp4 -vf "setpts=25*PTS" output.mp4
将RGB24的二进制数据编码成MP4
ffmpeg -f rawvideo -pix_fmt rgb24 -s 1936x1088 -r 25 -i "out" -c:v libx264 -crf 0 -pix_fmt rgb24 "输出视频.mp4"
指定窗口起始坐标播放一个包含16位灰度图像数据(大端模式)的二进制文件
ffplay -f rawvideo -pixel_format gray16be -video_size 1936x1088 -left 100 -top 100 .\night.bin
截取第一帧并保存为二进制文件
ffmpeg -f rawvideo -pixel_format rgb24 -video_size 1920x1080 -i .\out_rgb.bin -frames:v 1 -f rawvideo out.rgb
截取第一帧并压缩为无损PNG
ffmpeg -f rawvideo -pixel_format rgb24 -video_size 1920x1080 -i .\out_rgb.bin -vf "select='eq(n\,1)'" -frames:v 1 -compression_level 0 out.png
截取rgb565视频的分辨率并保存为二进制文件
ffmpeg -f rawvideo -pix_fmt rgb565be -s 1936x1088 -i show_raw.rgb565 -vf "crop=1920:1080:8:4" -c:v rawvideo -pix_fmt rgb565be output.rgb
黑电平校正
ffmpeg -f rawvideo -c:v rawvideo -pix_fmt bayer_gbrg16be -s:v 1936x1088 -i day.bin -vf "lutrgb='clip(val-500,0,65535)'" -pix_fmt rgb565be output_black_level_corrected.rgb
Gamma校正
ffmpeg -f rawvideo -c:v rawvideo -pix_fmt bayer_gbrg16be -s:v 1936x1088 -i day.bin -vf "lutrgb=gammaval(2.2)" -pix_fmt rgb565be output_gamma_corrected.rgb
使用指定demasic算法(gauss)将gbrg视频插值为rgb565
ffmpeg -f rawvideo -c:v rawvideo -pix_fmt bayer_gbrg16be -s:v 1936x1088 -i day.bin -pix_fmt rgb565be -sws_flags gauss output_gauss.rgb
每个像素舍弃低四位拼成新的二进制文件
ffmpeg -f rawvideo -pixel_format gray16be -video_size 1936x1088 -i day.bin -vf format=gray8 -c:v rawvideo -f rawvideo output_video.gray8
指定窗口起始坐标播放二进制文件
ffplay -f rawvideo -pixel_format rgb24 -video_size 1936x1088 -left 100 -top 100 .\raw_512x768_rggb_adaption.rgb
截取分辨率、像素前八位
ffmpeg -f rawvideo -pix_fmt gray16be -s 1936x1088 -i .\night.bin -vf "crop=1920:1080:8:4" -c:v rawvideo -f rawvideo -pix_fmt gray night_1920x1080.gray8