将旧视频转换为更小的尺寸

Tim*_*Tim 6 video compression file-format ubuntu

我有一些几年前的视频,具有各种格式,例如 avi、mpg、wmv、rm、rmvb 等。它们的大小很大(超过 500 MB,有时大于 1GB)。

  1. 鉴于数据压缩可能会有一些进步,我想知道这些天推荐哪些文件格式和压缩方法,按照不丢失明显数据的标准,同时实现大尺寸缩小。
  2. 如何在 Ubuntu 12.04 中执行文件格式转换和数据压缩?命令行和批处理方式将是最方便的,尽管 GUI 方式也很受欢迎。

感谢致敬!

slh*_*hck 5

Ubuntu 及其捆绑的 FFmpeg

好吧,您遇到了 FFmpeg 不再随 Ubuntu 一起提供的问题,但您已尝试通过apt-get.

本程序不再开发,仅提供兼容性

这简直就是谎言。FFmpeg 正在积极开发,但 Ubuntu 软件包已经过时,它们切换到 libav。有关讨论消息措辞错误报告,请参见此处。

从源代码安装或使用静态构建

如果您不喜欢自己编译,则可以简单地从下载页面获取静态构建。

如果您想保持最新状态并自己配置工具,则需要从源代码编译它。查看Ubuntu 编译指南以获取详细的安装方法。按照这些步骤,您最终将获得最新版本的 FFmpeg(编码工具)和 x264(某个视频编码器)。

我需要什么来减小尺寸?

你问 …

这些天推荐的文件格式和压缩方法

事实上,每个人都会推荐的压缩方法(“编解码器”)只有一种。它是 H.264 或 MPEG-4 Part 10 / AVC 标准,它指定了低带宽视频的压缩方法。H.264 在更高的带宽方面也取得了很好的效果。一个非常常见的编码器称为“x264”,我们在上面安装的那个。

它取代了使“DivX”和“XviD”编码器出名的视频编解码器标准 MPEG-4 Part 2。这些也很好,但它们需要更多的带宽来保持相同的质量。

实际的文件格式无关紧要。H.264 视频几乎可以驻留在任何容器中,从 AVI 到 MP4、MOV 和 MKV。了解视频编解码器本身与简单封装它的容器之间的区别很重要。请参阅此处了解更多信息:什么是编解码器(例如 DivX?),它与文件格式(例如 MPG)有何不同? 这些天我会选择 MP4 或 MKV 作为输出容器。AVI 太旧了,不允许您对视频进行太多操作,对于上述容器,有更好的再复用工具可用。

当您想要减小尺寸时,您想要降低视频的平均比特率。在最简单的情况下,这意味着强制编码器达到 1.5 MBit/s 恒定比特率。这有效,但它有一些缺点。与其用固定的比特率编码,不如让编码器选择它想花多少钱。这会产生适合视频内容的平均比特率。通过使用“恒定速率因子”选项来执行此操作。

对于 x264,这意味着为此 CRF 设置一个介于 18 和 26 之间的值。默认值为 23,值越高,质量越差,反之亦然。您不需要确切知道它的作用,但如果您有兴趣,请参阅此CRF 指南

你如何执行转换?

启动并运行 FFmpeg 后,您可以简单地将视频转换为 x264/MP4,并带有 192 kBit/s 固定比特率的 AAC 音频:

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -b:a 192k output.mp4
Run Code Online (Sandbox Code Playgroud)

就是这样。您可以通过调整 CRF 值来改变输出大小和质量。较低意味着更好的质量和更大的尺寸。更高意味着更差的质量和更小的尺寸。正如我所说,理智值介于 18 到 26 之间,甚至更多。如果您确实想减小输入视频的大小,请选择在减小文件大小的情况下仍能提供可接受的视频质量的 CRF 值。

要测试视频的外观,您可以Q在转换过程中随时按。它会留下一个截断的文件,但它应该仍然可以播放。您还可以提供-t <seconds>选项,其中<seconds>指定您想要编码多长时间(例如仅前 30 秒)。

有关更多设置,请参阅H.264 编码指南

批量处理

如果您有一批要转换的 AVI 文件,您可以执行类似的操作,递归地转码所有文件,例如在 Bash 中:

while IFS= read -d '' -r file; do 
  ffmpeg -i "$file" -c:v libx264 -crf 23 -c:a aac -b:a 192k ${file%%.avi}-converted.mp4 
done < <(find . -iname "*.avi" -print0)
Run Code Online (Sandbox Code Playgroud)

您可以更改.avi此命令中的后缀,并让它为其他文件再次运行。

请注意,视频编码是一项耗时的任务,需要一段时间才能为您的源文件找到完美的设置。