这就是我使用 FFmpeg 的方式
ffmpeg -f dshow -i video="UScreenCapture" -vcodec libx264 -q 26 -f flv output.flv
问题是,数量总是 28,ffmpeg 忽略了这一点。如何解决这个问题?无论如何,我需要一个“flash”编解码器来流式传输到 twitch tv
这就是我使用 FFmpeg 的方式
ffmpeg -f dshow -i video="UScreenCapture" -vcodec libx264 -q 26 -f flv output.flv
问题是,数量总是 28,ffmpeg 忽略了这一点。如何解决这个问题?无论如何,我需要一个“flash”编解码器来流式传输到 twitch tv
libx264 会忽略这些选项-q
(和别名)。-qscale
如果要
控制质量,请使用:
-crf
ffmpeg -i input -c:v libx264 -crf 22 output.flv
或设置比特率-b:v
ffmpeg -i input -c:v libx264 -b:v 555k output.flv
根据文档,“的含义q
取决于编解码器”,显然 libx264 忽略了该选项。改用-crf
(-preset
如果需要,可以使用)。crf值越大,质量越低。
如果您希望生成 CQP(恒定 QP 流),例如对于恒定 QP=20,我建议使用以下参数:'x264-params qp=20:ipratio=1.0:pbratio=1.0:qpstep=0'
示例:ffmpeg -s 1920x1080 -i test.yuv -vcodec libx264 -x264-params qp=20:ipratio=1.0:pbratio=1.0:qpstep=0 -y test.h264
请注意,'ipratio=1.0' 使 x264 以与 I 帧相同的 QP 编码 P 帧,而 'pbratio=1.0' 使 x264 以与 P 帧相同的 QP 编码 B 帧。
-b 选项、-q 和 -crf 似乎对视频质量没有任何作用(至少对于我安装的 ffmpeg 版本 9 而言),所以我发布了另一篇文章的结果,直截了当
如果您想要高质量,设置比特率是实现这一目标的糟糕方法。还有许多其他设置对质量的影响远大于比特率。除非您必须满足某种硬件要求,否则我会完全设置比特率。
如果您想获得更高的质量,请尝试类似
ffmpeg -i sourcefile.mov -target pal-dvd -qscale 2 -trellis 2 outputfile.mpg
输出视频大小从 2 分钟视频的 13Mb 到 130Mb,但它完成了工作。