【问题标题】:Avconv / FFmpeg - VOB to mp4Avconv / FFmpeg - VOB 到 mp4
【发布时间】:2018-02-02 14:24:12
【问题描述】:

我正在使用 avconv/ffmpeg 将从 DVD 复制的 VOB 文件转换为 mp4。我使用的命令是

avconv -i "concat:1.VOB|2.VOB|3.VOB|4.VOB|5.VOB" -c:v libx264 -crf 28 -c:a libvo_aacenc -b:a 128k output.mp4

这是可行的,但我看到许多不同的命令使用不同类型的参数,我想知道这是否是“正确”的方法,如果有人对我应该使用哪些参数有建议(不是)使用以及为什么(不)。该文件应与移动设备和智能电视兼容。我还看到“libmp3lame”被用作音频编解码器,使用 AAC 还是 MP3 更好?

持续时间为 00:58:37 的视频文件大小为 732.6MB,这合理吗? 也许我可以使用一些东西来进一步减小文件大小而不会造成太多的质量损失?

我也对 Avconv 和 FFmpeg 之间的区别感到困惑。我认为 FFmpeg 已被弃用,而 Avconv 是“更新和更好”,我有两个 Linux Mint 安装,当我在 17.1 安装上运行“avconv --help”时,我看到

avconv version 9.20-6:9.20-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers

当我在 18.1 安装中运行相同的命令时,我看到了

ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers

avconv 是否比 ffmpeg 更新,还是只是同一事物的不同名称?

【问题讨论】:

  • 我明白了。在我的 18.1 发行版上,avconv 只是 ffmpeg 的符号链接。这解释了我的一些困惑,谢谢。对我正在使用的命令有什么建议吗?

标签: video ffmpeg avconv


【解决方案1】:

VOB 文件可能是奇怪的野兽,因此要将 VOB 与ffmpeg 连接起来,通常建议使用 FFmpeg 源代码中包含的dvd2concat 工具。但是,它在存储库中不可用,但您可以下载它。此外,2.8 版本分支已经过时,所以也要升级你的ffmpeg。方法如下:

sudo apt install lsdvd
mkdir ~/bin
cd ~/bin
wget https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/tools/dvd2concat
chmod +x dvd2concat
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz
tar xvf ffmpeg-git-64bit-static.tar.xz
mv ffmpeg-git*/ff* .
source ~/.profile

如果您想撤消任何操作:

sudo apt remove lsdvd
rm -rf ~/bin/ff*
hash -r

现在运行编码命令:

dvd2concat /path/to/vob/files dvd.concat
ffmpeg -f concat -safe 0 -protocol_whitelist "file,subfile" -i dvd.concat -vf format=yadif,yuv420p -c:v libx264 -crf 28 -c:a aac -b:a 128k -movflags +faststart -metadata title="Movie Title" output.mp4

注意dvd2concat/lsdvd 的控制台输出信息量不大,因此请检查它是否实际创建了dvd.concat。这是ffmpeg 用来引用输入VOB 文件的文本文件。

该文件应与移动设备和智能电视兼容。

添加-profile:v main 输出选项将有助于兼容旧设备。如果您的硬件相当现代,您可以省略 -profile:v 以允许 x264 自动选择配置文件。

请参阅FFmpeg Wiki: H.264 了解更多信息。

我还看到“libmp3lame”被用作音频编解码器,使用 AAC 还是 MP3 更好?

AAC。我看到一些播放器在处理某些包含 MP3 音频的 MP4 文件时遇到问题。

有关编码建议,请参阅FFmpeg Wiki: AAC

00:58:37 的视频文件大小为 732.6MB,这合理吗?

使用-crf 时无法猜测输出文件的大小。文件大小将取决于输入的编码复杂性、持续时间和使用的编码选项。

也许我可以使用一些东西来进一步减小文件大小而不会造成太大的质量损失?

增加-crf 值可降低质量,从而减小文件大小。如果您必须针对特定的输出文件大小,请使用两遍编码。否则,只需像我们 99% 的人通常所做的那样,坚持使用 -crf 进行单次传递。请参阅FFmpeg Wiki: H.264 了解更多信息。

我也对 Avconv 和 FFmpeg 之间的区别感到困惑。我认为 FFmpeg 已被弃用,而 Avconv 是“更新和更好的”。 avconv 是否比 ffmpeg 更新,还是只是同一事物的不同名称?

FFmpeg 项目,也不是它的 ffmpeg 命令行工具,曾经被弃用。该消息来自 Libav 分支,指的是他们自己的短命、假的“ffmpeg”工具。 Libav 没有区分 FFmpeg/real ffmpeg 和他们的假“ffmpeg”,这让普通用户感到困惑是可以理解的。欲了解更多信息,请参阅:

【讨论】:

  • 非常感谢!但我相信你在升级 ffmpeg 的第 6 个命令中忘记了 wget :) source ~/bin 给我错误 bash: source: /home/oneup/bin: is a directory 但是当我在 bin 目录中运行 ./ffmpeg 时它正在工作:)
  • @0ne_Up 你说得对wget。添加(延迟一个月)。
猜你喜欢
  • 2021-05-09
  • 1970-01-01
  • 2014-12-08
  • 2012-01-04
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2022-01-02
相关资源
最近更新 更多