Ken*_*092 4 video codec mencoder ffmpeg video-encoding
我刚刚在使用 H.264(英特尔快速同步)编解码器在 Bandicam 上录制游戏时发现了 FFmpeg。不幸的是,我的一个视频最终被录制在 AVI 包装器中,我想以某种无损的方式将其转码为 MP4
我想改变包装器的原因是因为 Adobe Premiere Pro CC 2017 不知何故不能很好地处理 AVI,当我使用 H.264 和 MP4 作为包装器导出时,整个视频看起来都坏了。
因此,我抓取 FFmpeg 并尝试使用以下命令对我的视频进行转码:
ffmpeg -i vid.avi -c:v h264_qsv -crf 10 -r 50 -c:a aac -b:a 192k -ac 2 vid.mp4
Run Code Online (Sandbox Code Playgroud)
出现黄色的错误是:
Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (vid.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
我非常有信心 H.264(英特尔快速同步)支持 CRF,否则我可能会大错特错,将 H.264(QSV)和 libx264 混为一谈,后者显然支持 CRF。
这附近有什么吗?我有 FFmpeg 版本。20170921-183fd30,64 位,静态。
编辑:解决方法 rn 是返回到 libx264 并运行faster,veryfast或superfast,但我仍然希望通过使用英特尔快速同步来节省相当多的时间。
QSV 编码器没有称为 CRF 的参数。等效的速率控制方法是 LA_ICQ。
https://software.intel.com/en-us/articles/common-bitrate-control-methods-in-intel-media-sdk:
x264(FFmpeg 的默认 h264 实现)的默认速率控制是 CRF。这允许比特率波动保持目标质量水平。Media SDK 的 ICQ 和 LA_ICQ 是此类算法的最佳匹配。
要调用它,需要以下形式的命令:
ffmpeg -i in.mp4 -c:v h264_qsv -global_quality 10 -look_ahead 1 out.mp4
Run Code Online (Sandbox Code Playgroud)
look_ahead应该是1。global_quality可以是 1 到 51。较低的值代表更好的质量。~25 应该相当于 x264 CRF 23。