如何使用FFmpeg命令不调用任何编解码器实现无压缩视频封装?
问题解决方法
你当前使用的命令未指定视频编码器,FFmpeg会为MP4容器默认匹配H.264编码器进行编码压缩,不符合无压缩的需求。
注意:由于输入的是未编码的raw原始视频帧,无法使用-c copy流复制模式(流复制仅支持输入为已编码的视频流),需要指定无压缩的rawvideo编码器,即可实现零压缩、零画质损失的封装效果,全程不会对视频数据做任何编码改动。
可用命令
ffmpeg -f rawvideo -pixel_format rgb24 -video_size 160x120 -framerate 24 -i input.raw -c:v rawvideo -pix_fmt rgb24 out.mp4
参数说明
-c:v rawvideo:指定视频编码器为rawvideo,直接写入原始未压缩的视频帧,无任何压缩运算-pix_fmt rgb24:强制保留原始的rgb24像素格式,避免FFmpeg自动转换像素格式产生不必要的数据改动
效果验证
你可以执行以下命令将封装好的MP4解封装回raw文件,对比可知输出的raw文件和原始输入文件完全一致:
ffmpeg -i out.mp4 -f rawvideo -pix_fmt rgb24 output.raw
内容的提问来源于stack exchange,提问作者Stone
相关产品推荐
相关产品推荐

