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

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

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

  1. 鉴于数据压缩可能会取得一些进展,我想知道目前推荐使用哪些文件格式和压缩方法,以不丢失明显数据的标准,同时实现大幅度的尺寸缩减。
  2. 如何在 Ubuntu 12.04 中执行文件格式转换和数据压缩?命令行和批处理方式最方便,尽管 GUI 方式也不错。

感谢致敬!

答案1

Ubuntu 及其捆绑的 FFmpeg

好吧,您遇到了这样的问题:FFmpeg 不再随 Ubuntu 附带,但您尝试通过 安装它apt-get

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

这简直是​​谎言。FFmpeg 正在积极开发,但 Ubuntu 软件包已经过时了,他们转而使用 。请参阅此处讨论措辞的错误报告的消息。

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

如果你不想自己编译,你可以简单地从中获取静态构建下载页面

如果你想要保持最新状态并自行配置该工具,你需要从源代码编译。 查看Ubuntu 编译指南了解详细的安装方法。按照这些步骤,您将获得 FFmpeg(编码工具)和 x264(特定视频编码器)的最新版本。

我需要做什么来减小尺寸?

你问 …

目前推荐哪些文件格式和压缩方法

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

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

实际文件格式并不重要。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

就是这样。您可以通过调整 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)

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

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

答案2

另一个多功能(并且具有非常实用的 GUI)工具是艾维德姆克斯

以下是有关批处理工作原理的一些详细信息:Avidemux DocuWiki - 批处理

相关内容