我找了ffmpeg命令中放置-ssim
或私有选项的正确位置。我没有找到它,但我有一个选项工作,并会与你分享。它有效,但我不知道为什么。
首先尝试没有ssim和工作:
ffmpeg -s cif -r 30 -i video.yuv -vcodec mpeg4 -g 12 -bf 2 -sameq video.m4v
我试图把ssim放在下面但没有工作:
ffmpeg -s cif -r 30 -i video.yuv -vcodec mpeg4 -g 12 -bf 2 -sameq -ssim video.m4v
ffmpeg -s cif -r 30 -i video.yuv -ssim -vcodec mpeg4 -g 12 -bf 2 -sameq video.m4v
这里有效:
ffmpeg -s cif -r 30 -i video.yuv -vcodec mpeg4 -g 12 -bf 2 -ssim -sameq video.m4v
有人知道为什么它在最后一种情况下工作而不是在命令2和3中工作?
答案 0 :(得分:1)
-ssim选项与您使用的编解码器(x264)相关。
至少它可以解释为什么你的案例(3)不起作用,因为你把选项放在-vcodec之前
请记住,ffmpeg选项与位置无关。 并且据我记得ssim是AVCodecContext选项的一部分,应该放在fflag2之后,如下所示,但是根据您使用的ffmpeg版本,它可能是错误的。
ffmpeg -i input ... codec .... -ssim output