【发布时间】:2015-08-06 14:17:11
【问题描述】:
我将在我的服务器中异步编码用户上传的不同视频。我看到了this post,据此,这就是如何对两遍编码进行endcode:
ffmpeg -y -i input -c:v libx264 -preset medium -b:v 555k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 555k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
我注意到 -pass 1 和 -pass 2 标志。但是我尝试通过只给它一个 -pass 2 标志而不在 -pass 1 标志中进行第一次编码来对视频进行编码。虽然我有这个警告,但它还是执行了:
第二遍的帧数比第一遍多
所以,我关心的是 ffmpeg 如何知道哪一个是第一遍,以便它可以进行第二遍编码?而且由于将同时上传许多视频,我不能将它们全部保存在 /dev/null 中,它不会用另一个替换一个。那我该如何管理呢?
非常感谢您的帮助和指导。
谢谢。
更新
ffmpeg 命令:
ffmpeg -i input.mp4 -codec:v libx264 -tune zerolatency -profile:v main -preset medium -b:v 1500k -maxrate 1500k -bufsize 15000k -s hd720 -threads 0 -pass 1 -an -f mp4 /dev/null
ffmpeg -i input.mp4 -codec:v libx264 -tune zerolatency -profile:v main -preset medium -b:v 1000k -maxrate 1000k -bufsize 10000k -s hd720 -threads 0 -pass 2 -codec:a libfdk_aac -movflags +faststart output.mp4
【问题讨论】: