如何将AVI(xvid)转换为mkv或mp4(h264)


19

视频方面非常菜鸟。我试图弄清我在Google上找到的内容……但对我来说,大部分是希腊文。

我有一堆无法在WD TV Play盒中播放的Avi文件。Mediainfo告诉我他们是xvid。盒子的规格说明应该没问题……但是在论坛上发掘的说法是失败的。因此,我想尝试将它们转换为h264编码的MKV或mp4文件。

我收集的是avconv工具,但是阅读手册确实让我感到非常困惑。

我尝试了非常基本的示例:

avconv -i file.avi -c copy file.mp4

花了不到4秒的时间。它确实有效。它“发挥”了作用,屏幕上出现了一些东西……但是出现了可怕的伪影,场景之间几乎融为一体。我想尽可能保持质量。

我不在乎文件大小。只要我可以分批处理,我也不用担心时间。

可以让熟悉该过程的人给我一个有关选项的命令吗?

谢谢您的帮助。

我发布了mediainfo以防万一:

General
Complete name                            : \\SERVER\Video\Public\test.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
File size                                : 189 MiB
Duration                                 : 11mn 18s
Overall bit rate                         : 2 335 Kbps
Writing application                      : Lavf52.32.0

Video
ID                                       : 0
Format                                   : MPEG-4 Visual
Format profile                           : Advanced Simple@L5
Format settings, BVOP                    : 2
Format settings, QPel                    : No
Format settings, GMC                     : No warppoints
Format settings, Matrix                  : Default (H.263)
Muxing mode                              : Packed bitstream
Codec ID                                 : XVID
Codec ID/Hint                            : XviD
Duration                                 : 11mn 18s
Bit rate                                 : 2 129 Kbps
Width                                    : 720 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 29.970 fps
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.206
Stream size                              : 172 MiB (91%)
Writing library                          : XviD 1.2.1 (UTC 2008-12-04)

Audio
ID                                       : 1
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Mode                                     : Joint stereo
Mode extension                           : MS Stereo
Codec ID                                 : 55
Codec ID/Hint                            : MP3
Duration                                 : 11mn 18s
Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 15.5 MiB (8%)
Alignment                                : Aligned on interleaves
Interleave, duration                     : 24 ms (0.72 video frame)

您应该考虑不要将一种有损编解码器重新编码为另一种。如果您的视频采用Xvid编解码器,则只需将其重新混合到Matroska容器中即可。
v010dya 2014年

Answers:


44

来自http://manpages.ubuntu.com/manpages/precise/man1/avconv.1.html的标准命令显示了以下内容:

avconv -i test.avi -c:v libx264 -c:a copy outputfile.mp4

这会将您的视频重新编码为h264(= AVC),并使您的声音保持不变,这是mp3,并且完全符合标准。

此命令行要考虑的其他一些选项是:

  • 通过使用-b参数(bitrate)调整输出视频的质量,或将Constant Rate Factor(CRF)与类似-crf 22
  • 使用libx264预设,例如-preset veryslow用于改善视频

如果使用这些选项,则应将-c:v libx264选项放在选项之后。

您还可以查看GUI程序winffavidemux这将使事情变得不那么复杂。(也是handbrake一个不错的选择,但我从未接受过)


哈!我不知道您是如何看待联机帮助页上的go-de-gook并将其显示为明显的“标准命令”的...但是我很感激您这样做!有效。我很感激。
bcsteeve

感谢您提到手刹-我已经忘了它。我最终打开它,搜索我的电影文件夹,将所有视频都放进去,将它们全部放入队列,然后点击“编码”!
scorpiodawg

对于AAC声音,许多设备可能都有硬件解码器,因此将其保留为MP3不一定更好。
ccpizza

4

如果您正在寻找图形化的东西,可以考虑使用mkvtoolnix-gui软件包。它实际上取决于命令行实用程序,但是它将为您提供带有所有必需选项的命令。

mkvmerge gui 1

您需要做的第一件事是添加包含所有需要的流的文件。您可以(显然)通过按“添加”按钮并选择文件,或者将文件拖到“输入文件”区域中来执​​行此操作。除非您打算将一个文件的内容放在另一个文件的内容之后(使最终文件的持续时间为所有附加文件的持续时间之和),否则不应使用添加按钮。

由于您说的只是计划转换.avi文件,因此您只需要在此时添加一个文件即可。请注意,您将添加的第一个文件将自动设置输出文件的名称,它将与输入名称匹配,但是扩展名将更改为.mkv。当然,您可以根据需要更改它。

添加内容后,您将能够更改流的参数(例如,分配的语言,默认情况下轨道是否为“开”以及用户是否愿意选择禁用该流)。

您可以为流指定标题。我建议,如果您有多音频视频,请与语言一起使用。例如,您可以为曲目名称使用“原始”或“单声配音”或“导演评论”。当您选择要播放的视频流时,许多播放器会向您显示这些,这非常有用。但是,请尽量不要在此处重复信息。只要设置曲目的语言代码,就没有理由写“英语”。

还有一些特定的选项,这取决于您正在处理的流。

mkvmerge gui 2

有时您可能希望在文件中添加一些附件。如果添加图像,许多文件管理器都会将此图片显示为最终视频文件的图标。如果您正在混合某种电影,而您恰好有它的封面,则最好将其作为附件放置。

mkvmerge gui 3

最后,在“全局”选项卡中,您可以设置整个文件的元数据。最常见的事情是设置标题。将从您添加到“输入文件”中的第一个文件中获取的数据进行预填充。

您还可以添加章节信息。Mkvmerge能够读取ogm章节文件以及xml章节。它还允许您编辑章节文件,但请记住,此选项卡可作为单独的应用程序使用,因此您将不必编辑添加到输出文件中的章节,需要将它们保存在该选项卡中,然后将它们添加为您现在要混合的文件的输入。

mkvmerge gui有趣的功能是“复制到剪贴板”,它可以复制应用程序计划运行的确切终端命令。如果您打算混合多个文件,可以按照自己喜欢的方式进行设置,然后将命令复制到剪贴板,并制作一个bash脚本,该脚本可以一次处理所有想要的文件。


您如何开始?
uvasal 2015年

1
mmg是答案
uvasal

2

Avidemux是一款免费的视频编辑器,专门用于简单的剪切,过滤和编码任务。它使用多种编解码器支持许多文件类型,包括AVI,DVD兼容的MPEG文件,MP4和ASF。可以使用项目,作业队列和强大的脚本功能自动执行任务。Avidemux可用于Ubuntu。

sudo apt-get update
sudo apt-get install avidemux



0

我使用以下两个命令将AVI文件转换为可从WD My Cloud Mirror正确流式传输的MP4文件:

ffmpeg -i infile.AVI -strict -2 -profile:v baseline -pix_fmt yuv420p temp.mp4
MP4Box -mpeg4 -brand mp42:0 -add temp.mp4#video:name= -add temp.mp4#audio:name= -new outfile.mp4

ffmpeg将AVI文件转换为MP4,更改视频配置文件和像素格式以符合广泛接受的值。 MP4Box将流重新打包到最终的MP4中,并添加标准元数据。


-strict -2除非您ffmpeg很老,否则不需要对AAC音频进行编码。MP4Box如果在中添加-movflags +faststart输出选项,则可以跳过ffmpeg
llogan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.