我将在我的服务器中对用户异步上传的不同视频进行编码。我看到了这个post,根据这个,这是如何结束两遍编码:
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如何知道哪一次是第一次,这样它才能进行第2次编码?而且,由于许多视频将同时上传,我不能将它们全部保存在/dev/null中,它将替换另一个视频。那我该怎么处理呢?
非常感谢您的帮助和指导。
谢谢。
Upadate
ffmpeg cmd:
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发布于 2015-08-06 15:35:18
当您使用2-pass编码时,第一次传递将使用log命名约定创建ffmpeg2pass-X文件,其中X是流号。
您可以使用-passlogfile选项为您的文件设置自定义前缀。示例:
-passlogfile your_unique_video_id
这将为流0创建一个名为your_unique_video_id-0.log的文件。
https://stackoverflow.com/questions/31858171
复制相似问题