2017-08-24 113 views
-2

我使用avconv/ffmpeg将从DVD复制的VOB文件转换为mp4。我使用的命令是Avconv/FFmpeg - 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 version 9.20-6:9.20-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers 

运行“avconv --help”当我运行同样的命令在18.1的安装我看到

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

比ffmpeg的avconv更新或者是它只是一个不同的名称,同样的事情?

+0

我明白了。在我的18.1发行版中,avconv只是ffmpeg的符号链接。这解释了我的一些混乱,谢谢。关于我正在使用的命令的任何建议? –

回答

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值增加为较低的质量,因此文件较小。如果您必须以特定的输出文件大小为目标,请使用两遍编码。否则,只需坚持使用-crf的单程通常就可以做到99%。有关更多信息,请参见FFmpeg Wiki: H.264

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

FFmpeg项目,也没有它的ffmpeg命令行工具,曾被弃用。该消息来自Libav分支,指的是他们自己的短命假“ffmpeg”工具。 Libav没有区分FFmpeg/real ffmpeg和他们假冒的“ffmpeg”,这对一般用户来说是容易理解的。欲了解更多信息,请参阅:

+0

非常感谢!但是我相信你在第6个命令中忘记了'wget'来升级ffmpeg :) 'source〜/ bin'给了我错误'bash:source:/ home/oneup/bin:是一个目录',但是当我运行' 。/ ffmpeg'在'bin'目录中工作:) –

+0

@ 0ne_Up你对'wget'说得对。增加(晚一个月)。 – LordNeckbeard