请注意,为此,您应始终使用最新的ffmpeg版本,最好自己编译。这使您可以访问最新的libx265和libfdk-aac进行音频编码。
此外,如果您将DVD速度从〜10 MBit / s降低到H.264视频的1-2 MBit / s和H.265视频的0.5–1 MBit / s,那么节省的数据速率将是相当大的。在以下步骤中更改质量可能会影响比特率,但是数据减少仍然很重要。
H.264
对于质量/速率控制,您想在libx264中使用CRF模式,而不要使用恒定的比特率。使用CRF可确保保留平均质量,而与原始视频分辨率或其复杂性无关。只有当您受到传输介质(例如硬盘速度,Internet吞吐量)的限制时,恒定比特率才真正有用。
选择CRF值是棘手的部分。它要求您查看输出。libx264的默认值(23)在大小和质量之间提供了很好的权衡。但考虑到原始源已经被压缩(而不是一个非常好的质量相比蓝光射线),你可能要改变CRF要低一点,如20,这将增加所需的比特率约三分之一。
根据您要等待的时间选择预设。slow
在这里似乎很有价值。
ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4
如果libfdk-aac不可用,则可以使用内置的ffmpeg AAC编码器。使用-c:a aac -strict experimental -b:a 128k
代替-c:a libfdk_aac -vbr 4
。
H.265
研究表明,与H.264相比,使用HEVC最多可节省74%的比特率。这是基于Ultra-HD序列的主观观看数据。当然,这取决于源内容的时间复杂性,对于难以编码的序列,保存的数据量不会那么高。无论哪种方式,您都可以放心地说,绝对有可能减少50%的数据。
libx265的默认CRF为28。使用相同的源内容,与CRF 23上的libx264相比,它产生的比特率约为一半。这与实际的比特率无关,即,如果H.264版本占用1.5 MBit / s,那么H.265将使用大约750 kBit / s,但是它是750 kBit / s,而另一个序列是350 kBit / s。我以DVD-PAL分辨率在几个序列上运行它,但无法分辨出质量上的差异。
ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4
有关更多信息,请参见以下相关资源: