gpt4 book ai didi

ffmpeg - 如何对多比特率输出文件使用 ffmpeg/x264 2-Pass 编码

转载 作者:行者123 更新时间:2023-12-02 07:12:24 27 4
gpt4 key购买 nike

对多个输出文件执行 2-Pass 编码时,我收到错误

ratecontrol_init: can't open stats file 1 ffmpeg2pass-2.log

我的设置是执行单个第一遍,然后使用相同的第一遍结果进行多个第二遍编码以输出具有不同目标比特率的文件。

ffmpeg -y -i $INPUT_FILE -an -vcodec libx264 -pass 1 -b:v 700k -f rawvideo /dev/null

ffmpeg -y -i $INPUT_FILE -i out-aud.mp4 \
$AUDIO_OPTIONS_P2 -vcodec libx264 -pass 2 -b:v 250k -f mp4 out-250.mp4 \
$AUDIO_OPTIONS_P2 -vcodec libx264 -pass 2 -b:v 500k -f mp4 out-500.mp4 \
$AUDIO_OPTIONS_P2 -vcodec libx264 -pass 2 -b:v 700k -f mp4 out-700.mp4

此序列导致了上面列出的错误。我通过代码检查发现 ffmpeg/x264 为每个第二遍编码路径寻找一组不同的第一遍文件。第一个编码路径使用最初创建的文件集

ffmpeg2pass-0.log
ffmpeg2pass-0.log.mbtree

第二个编码路径需要具有以下名称的首轮文件

ffmpeg2pass-2.log
ffmpeg2pass-2.log.mbtree

第三个编码路径需要名称以 ffmpeg2pass-4* 等开头的首轮文件

我的解决方案是在运行第二遍命令之前,使用每遍所需的新名称创建指向最初创建的文件集的软链接(soft link)。

ln -s ffmpeg2pass-0.log ffmpeg2pass-2.log
ln -s ffmpeg2pass-0.log.mbtree ffmpeg2pass-2.log.mbtree
ln -s ffmpeg2pass-0.log ffmpeg2pass-4.log
ln -s ffmpeg2pass-0.log.mbtree ffmpeg2pass-4.log.mbtree

这似乎有效,因为它产生了我需要的输出编码。不过,我不知道这个方法是否合法。通过使用一个比特率 (700k) 的第一遍输出作为其他比特率的第二遍编码的输入,我是否会获得次优的编码结果?

最佳答案

使用passlogfile option并在第一次传递时设置日志文件名。您可以在第二遍中使用相同的选项,并在多次第二遍中使用相同的日志文件。但是,您需要考虑诸如相同的 fps 和 bframe 等与第一遍相同的事情。

关于ffmpeg - 如何对多比特率输出文件使用 ffmpeg/x264 2-Pass 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com