我见过许多 2 遍编码示例,它们经常在第一遍中使用 -an 开关。这似乎是因为在第一遍中,只对第二遍使用的日志文件采样视频数据,以创建更高效的编码。我在回答时再次注意到了这个开关这个问题我想知道在 2 次编码的第一遍中使用此开关是否会产生任何影响。
答案1
有什麼效果嗎?
是的。使用 -an 开关会导致 ffmpeg 跳过处理音频流。
有什么积极的好处吗?
是的,处理时间确实明显减少了。我拿了一个 60 秒的 mp4 源剪辑进行测试,并发出了命令
time ffmpeg -i input.mp4 -y -an -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null
我获得了以下输出:
frame= 1799 fps=174 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
输出文件为空,未编码任何内容
real 0m10.477s
user 0m12.972s
sys 0m0.188s
然后将生成的日志文件重命名为 an.log,以便稍后进行比较。
我再次运行命令,没有使用 -an 开关,如下所示
time ffmpeg -i input.mp4 -y -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null
输出结果为:
frame= 1799 fps=165 q=0.0 Lsize= 505kB time=00:01:00.01 bitrate= 68.9kbits/s
video:0kB audio:483kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.367473%
real 0m11.088s
user 0m13.792s
sys 0m0.156s
因此,使用 -an 运行第一遍似乎要快一点
第一遍日志文件有任何变化吗?diff
不。正如预期的那样,日志文件与运行结果 相同。