我模拟了很多 cif 格式的视频,而且所有视频都带有 yuv 格式的文件。我使用了下面的表达式,效果很好:
ffmpeg -s cif -r 30 -i video.yuv -vcodec mpeg4 -g 12 -bf 2 -sameq video.m4v
但现在我正在寻找带有高清视频的模拟,它们带有 y4m 扩展。你知道我应该使用哪种表达方式吗?
我尝试用 代替-s hd720
,但-s cif
仍然不起作用:
ffmpeg -s hd720 -i ducks_take_off_420_720p50.y4m -vcodec mpeg4 -g 12 -bf 2 -sameq video.m4v
错误:Option video_size not found
答案1
您不需要声明输入-s
或-r
y4m (YUV4MPEG2)。它包含一个标题,其中包含帧宽度、帧高度和帧速率以及可能存在的其他信息。
还,-sameq
并不意味着“同等品质”和 已从 ffmpeg 中删除。-qscale:v
使用编码器时,您可以改用mpeg4
。合理的值是 2-5,值越低,质量越高。2 大致是视觉无损。
答案2
如果你愿意scale
输入视频,标签-s
应该在-i
以下内容应该可以工作(使用更新的语法):
ffmpeg -i ducks_take_off_420_720p50.y4m -s hd720 -c:v mpeg4 -g 12 -bf 2 -q:v 0 video.m4v
如果您不愿意缩放视频,则-s
根本不应该包含标签,并确保输入的视频是hd720
视频。