我想将长度为60秒的视频编码为目标或最大大小为10 MB。
我知道两种方法。一种在FFMPEG-Wiki中进行了说明,另一种在文档中找到。不幸的是,我没有找到何时使用哪种方法的解释。
建议使用其中任何一种方法吗?如果不是,每种方法的优点/缺点是什么?
1)如ffmpeg-wiki所述,计算并设置比特率以匹配视频的长度
(10 MB * 8192 [将MB转换为千位])/ 60秒=〜1365 kbits / s总比特率1365k-128k(所需音频比特率)= 1237k视频比特率
ffmpeg -y -i input -c:v copy -preset medium -b:v 1237k -pass 1 -c:a copy -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 1237k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
2)使用-fs
参数,让ffmpeg弄清楚。
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
—
Ryan
libx264
asc:v
。在此fs
示例中,您不会对视频进行转码,因为它-c:v copy
已被使用。因此,preset
和crf
也没有任何作用。