xenonmkv是一个视频容器转换工具,它接受mkv文件并将其输出为mp4文件。
XenonMKV的Python项目详细描述
关于氙千伏
xenonmkv是一个视频容器转换工具,它接受mkv文件并将其输出为mp4文件。它不重新编码视频,只在必要时对音频进行解码和编码。
您会发现此工具对于转换支持H.264视频和AAC音频但不了解mkv容器的设备的视频非常有用。其他用途包括将带有AC3或DTS音频的视频转换为AAC音频(2个频道或5.1个频道)。
最初,xenonmkv是为xbox 360游戏机设计的,但现在我发现这个工具对我的黑莓playbook更加有用。您也可能会发现它对roku设备或预转换视频很有用,以减少plex需要对它们重新编码的可能性。
披露
注意:在这个应用程序的早期开发过程中,我曾为黑莓工作过。这里表达的意见是我自己的,不一定代表我以前或现在的雇主的意见。所有代码都是在我自己的时间开发的,不需要使用公司资源。
系统要求
xenonmkv是在标准的ubuntu 12.04lts安装(x86_64)上构建和测试的,但是这里的大多数实用程序和需求都可以在最流行的*nix发行版上运行。我也给了这套工具在ubuntu 13.10上一个粗略的运行,它们似乎可以工作。一旦14.04以最终形式发布,我计划重新测试。
Windows 7(64位)和Mac OS X 10.8也受支持,但可能适用于不同版本的OS X和Windows。
argparse库至少需要python 2.7,理想情况下 2.x系列中的Python 2.7.3或更高版本。
ubuntu 12.04
您需要一些支持包。这些将自动安装 如果在您的系统中找不到它们,或者它们可以预先安装。
在桌面安装中,请确保在安装从属项之前关闭"更新管理器",或者 您将收到一条恶意消息,其形式为:
TT> E:无法获取lock/var/lib/dpkg/lock-open(11:资源暂时不可用) E:无法锁定管理目录(/var/lib/dpkg/),是否另一个进程正在使用它?
安装所有依赖项(一次)
< Buff行情>sudo apt get install mediainfo mkvtoolnix mplayer faac gpac在当前的开发状态下,在ubuntu上不需要安装 requirements.txt中作为依赖工具的任何python包都与"apt"一起安装。 如果以后更改,可以通过运行以下命令安装需求:
< Buff行情>sudo apt get install python setuptools&;sudo easy_install-u pippip install-r requirements.txt个别套餐详情
< Buff行情>sudo apt get install mediainfo或者,添加正式的mediainfo p p a并安装包,开发人员建议这可能是个好主意:
< Buff行情>sudo add apt repository ppa:shiki/mediainfo
sudo apt get update
sudo apt get install mediainfo
< Buff行情>sudo apt get install mkvtoolnix< Buff行情>sudo apt get install mplayer< Buff行情>sudo apt get install faac< Buff行情>sudo apt get install gpac要编译您自己的gpac版本,请遵循以下说明。然后,运行以下命令以获得成功(不需要spidermonkey js库):
< Buff行情>/configure–启用调试–使用js=no制作默认情况下,mp4box将根据需要安装在/usr/local/{bin、lib、man、share}中。
如果路径变量首先包含/usr/local/bin,则将执行自定义编译版本而不是系统版本。
要在编译时将mp4box放入特定路径,请使用–prefix选项和/configure
< Buff行情>/configure–启用调试–使用js=no–prefix=/opt/gpac运行sudo make install以完成安装。
然后要运行,请指定ld_library_path(如果它不在您的ld配置中)。在ubuntu/usr/local/lib上已经存在了,所以只要运行:
< Buff行情>/usr/local/bin/mp4box对于自定义前缀:
< Buff行情>ld_library路径="$ld_library路径;/opt/gpac/lib"/opt/gpac/bin/mp4boxubuntu 10.04
目前还没有对其进行测试,但以下是使氙气千伏起作用所需的历史变化:
从源代码安装python 2.7,或者添加适当的ppa。如果以后需要将系统从10.04升级到12.04,请确保先清除此ppa。
< Buff行情>sudo add apt repository ppa:fkrull/deadsnakessudo apt get更新sudo apt get install python2.7通过添加ppa:shiki/mediainfoppa安装mediainfo,因为mediainfo包不在10.04存储库中。
执行12.04说明中的"安装依赖项"步骤
直接引用Python2.7运行应用程序:
< Buff行情>/usr/bin/python2.7/path/to/xenonmkv.py[参数]
其他Linux发行版
从源或发行版的软件包管理器安装上述软件包。
用法
默认设置下的基本用法:
< Buff行情>xenonmkv.py/path/to/file.mkv为了确保您的xbox 360主机将以可能的费用播放生成的文件 音频质量:
< Buff行情>xenonmkv.py/path/to/file.mkv–配置文件Xbox360要查看所有命令行参数:
< Buff行情>xenonmkv.py–帮助对于安静运行(批处理或在cronjob中):
< Buff行情>xenonmv.py/path/to/file.mkv-qq选项确保您永远不会被提示输入,并且将非常有用 与sabnzbd+等软件集成。
如果您报告一个问题,请在调试/非常详细的模式下运行xenonmkv:
< Buff行情>xenonmv.py/path/to/file.mkv-vv对于xenonmkv的最新版本,我包含了一个非常糟糕的脚本,它处理linux上mkv文件的批编码,因为我总是把传递给find的参数搞砸。用途:
< Buff行情>batch.py source_目录<;xenonmkv_参数>;建议/注意事项
如果mkv文件不是太大,那么将/tmp挂载为tmpfs的发行版(计划用于Fedora18、Ubuntu12.10、Debian Wheezy)如果使用-scratch dir/tmp,则会显示明显的peedup。现在为了将来的验证,scratch目录被设置为/var/tmp
使用-vv查找显示调试信息并准确输出处理阶段中发生的情况。
本机多文件支持(例如:转换mkvs)的整个目录并不在这个版本中,但是您可以同时执行这样的操作来排队列表:
< Buff行情>cd~/mymkvdir
对于"ls*.mkv"中的i;do/path/to/xenonmkv.py$i–目的地~/mymp4dir;完成
英特尔酷睿i5-2500K处理器,3.3GHz,1TB西部数字黑色世达硬盘,性能:442MB源MKV文件,H.264视频和6通道AC3音频,在40.6秒内转换为与PlayBook兼容的MP4(相同视频,2通道AAC音频,质量Q=150)。它没有任何增强功能,比如tmpfs挂载。使用固态硬盘,您可能会获得更好的性能,显然处理器速度会对这里产生影响。
音频下混音/重新编码
默认情况下,xenonmkv不会对所提供内容的任何部分进行重新采样、下混或重新编码。但是,您的源文件可能包含需要重新编码的AC3、DTS或MP3音频。在这种情况下,在重新打包前,原始源音频将始终混合到双声道AAC文件中。
如果mkv文件中的音频曲目已经是aac,接下来要考虑的是播放设备。Xbox360不会在MP4容器中播放音频,除非它是2声道立体声,这是一个非常愚蠢的限制。其他设备,如playbook,将乐于解析多达5.1声道的音频。通过使用–channels或–profile设置,您可以告诉XenomkV一个AAC源可以接受多少个声道的音频,然后它将积极地重新编码并向下混合到2声道立体声。
简言之,如果您计划在Xbox 360上播放MP4,一定要使用–profile Xbox360设置,以确保输入输出文件的频道不超过两个。如果你的设备更合理,默认设置应该是好的。当用户确认自己的设备功能时,将添加更多配置文件。