我正在使用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安装,当我运行" avconv --help"在我看到的17.1装置上
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更新还是只是同一个名称的另一个名称?
答案 0 :(得分: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
的单通,就像我们通常做的那样。有关详细信息,请参阅FFmpeg Wiki: H.264。
我也对Avconv和FFmpeg之间的区别感到困惑。我认为FFmpeg已被弃用,Avconv“更新,更好”。 avconv比ffmpeg更新还是只是同一个东西的另一个名字?
FFmpeg项目,也不是ffmpeg
命令行工具,已被弃用。该消息来自Libav fork,指的是他们自己的短命,假“ffmpeg
”工具。 Libav没有区分FFmpeg / real ffmpeg
和他们的假“ffmpeg
”,这对于普通用户来说是可以理解的。有关详细信息,请参阅: