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

在video方面非常棒。 我试图理解我通过谷歌发现的东西……但它主要是希腊语给我。

我有一堆Avi文件无法在我的WD TV Play框中播放。 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) 

来自http://manpages.ubuntu.com/manpages/precise/man1/avconv.1.html的标准命令显示了这一点:

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

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

此命令行要考虑的其他几个选项是:

  • 使用-b参数(比特率)调整输出video的质量,或使用-crf 22类的恒定速率因子(CRF)调整输出video的质量
  • 使用libx264预设(例如-preset veryslow来改进video

如果你使用这些选项应该放在-c:v libx264选项之后……

您还可以查看GUI程序winffavidemux ,这将使事情变得简单。 (也是handbrake是一个很好的但我从来没有达成协议)

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

mkvmerge gui 1

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

既然你说你打算只转换.avi文件,那么你应该只添加一个文件。 请注意,您要添加的第一个文件将自动设置输出文件的名称,它将与输入名称匹配,但扩展名将更改为.mkv 。 如果您愿意,您当然可以改变它。

添加内容后,您将能够更改流的参数(例如指定的语言,默认情况下轨道是否为“打开”,以及用户是否可以选择一起禁用此流。

您可以为流提供标题。 我建议如果你有多音频video,你可以将它与语言一起使用。 例如,您可以为曲目名称提供“原始”或“单声道配音”或“导演评论”。 当您选择要播放的流时,许多玩家会向您展示这些,这非常有用。 但是,尽量不要重复那里的信息。 只需设置曲目的语言代码,就没有理由编写“英语”。

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

mkvmerge gui 2

有时您可能希望在文件中添加一些附件。 如果添加图像,许多文件管理器会将此图片显示为最终video文件的图标。 如果你正在复制某种类型的电影,并且碰巧有它的封面,那么将它作为附件放入它可能是一个不错的选择。

mkvmerge gui 3

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

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

mkvmerge gui的有趣function是“复制到剪贴板”,它复制了应用程序计划运行的确切终端命令。 如果你打算复用很多文件你可以按照你喜欢的方式设置一个文件,然后将命令复制到剪贴板并制作一个bash脚本,它可以一次完成你想要的所有文件。

Avidemux是一款免费的video编辑器,专为简单的剪切,过滤和编码任务而设计。 它支持多种文件类型,包括AVI,DVD兼容的MPEG文件,MP4和ASF,使用各种编解码器。 可以使用项目,作业队列和强大的脚本function自动完成任务.Avidemux可用于Ubuntu。

 sudo apt-get update sudo apt-get install avidemux 

HandBrake( https://handbrake.fr )是一个非常多function的工具,你可以使用,还有一个CLI工具( 如何将avi(xvid)转换为mkv或mp4(h264) )。

您还可以使用dmMediaConverter免费的FFmpeg GUI。 你可以在不重新编码video流的情况下完成(取决于avi编解码器)。 从这里抓住debs: http : //dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

在此处输入图像描述

我使用以下两个命令将我的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,更改video配置文件和像素格式以符合广泛接受的值。 MP4Box将流重新打包到最终的MP4中并添加标准元数据。