这就是我使用FFmpeg的方式
ffmpeg -f dshow -i video="UScreenCapture" -vcodec libx264 -q 26 -f flv output.flv
事实是,数量总是28,ffmpeg忽略了这一点。如何解决这个问题?无论如何,我需要一个“flash”编解码器来流式播放电视
答案 0 :(得分:3)
libx264会忽略选项-q
(和别名-qscale
)。如果你想
control the quality,
使用方法:
-crf
ffmpeg -i input -c:v libx264 -crf 22 output.flv
或者使用-b:v
ffmpeg -i input -c:v libx264 -b:v 555k output.flv
答案 1 :(得分:3)
根据the documentation,“q
的含义依赖于编解码器”,显然libx264忽略了该选项。请改用-crf
(以及-preset
代替)。 crf值越大,质量越低。
答案 2 :(得分:1)
如果您希望生成CQP(恒定QP流),例如对于恒定QP = 20,我建议使用以下参数: 'x264参数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编码与Q帧具有相同QP的B帧。
答案 3 :(得分:0)
-b选项,-q和-crf似乎对视频质量没有任何作用(至少对于我的ffmpeg版本9的安装),所以我发布了另一篇文章的结果,该文章正确到了
如果你想要高质量,设置比特率是一种很难实现的方法。还有许多其他设置对质量的影响远大于比特率。除非你必须满足某种硬件要求,否则我会完全保留比特率设置。
如果您想提高质量,请尝试
ffmpeg -i sourcefile.mov -target pal-dvd -qscale 2 -trellis 2 outputfile.mpg
输出视频大小从13Mb变为2分钟视频到130Mb,但它完成了工作。