中国视频在线(www.chinavideoonline.com)致力于收集各种流媒体相关的技术资料,以及流媒体常识和应用方案,力求为广大朋友了解学习和使用流媒体技术提供帮助
创建MP4文件-符合ISO标准的带有AAC音频的MPEG-4流
作者/来源:doom9.net
眼下,首款可以回放MPEG-4视频文件的DVD播放器已经诞生了。与我曾经所设想的不同,它们确实支持了带有MP3或AC3音轨的AVI,然而到目前为止,官方的MPEG-4文件容器格式并没有能够扮演重要的角色。几天前,苹果公司发布了他们最新的Ipod便携式音频播放器和一个购买在线音乐的平台。该平台所使用的音频格式为AAC,并且随着Ipod对AAC的支持,这个新的音频格式仍然有可能大有作为。然而,除非业界能够提出一个针对独立播放系统的全面的MPEG-4回放标准,否则MP4将只是一种可以被回放的格式而不是一个重要的容器。MPEG-4视频正以DivX5,XviD,3ivX,mpegable等形式出现,而QuickTime AAC并没有成为音频上的唯一可选。以下所介绍的工具可以支持MP3输入,因此你也就不必局限于单一的音频格式了。
MPEG4IP组织已经为免费的,跨平台的MPEG-4工具的实现努力了相当一段时间。他们已经开发出了用来创建MP4流、将视频编码成符合MPEG-4的流、将音频编码成AAC、回放MP4文件的工具以及很多其他的工具。免费的AAC编码器和解码器工具可以在Audiocoding.com找到。这些工具也是开放源代码的,然而质量可以更好。当前普遍认为PsyTELAAC编码器提供了最好的质量。
在我初次完成这篇指南以后,MP4的回放方面已经出现了许多改进。有更多的播放器开始支持它,最值得注意的是QuickTime以及DivX独立播放系统(不过她有些限制,仅支持DivX视频和非AAC音频)和mpegable公司的播放器。最后mpegable和3ivX都随它们的编码器发布了相应的回放组件,这使得你可以用自己最喜欢的媒体播放器来回放带有AAC音轨的MP4文件。唯一的限制是目前还不能够支持5.1ch的AAC回放。
你需要为这个指南准备以下软件:
PsyTEL AACEnc
AACMachine, BeSweet 和 BeSplit
MP4UI或MPEG4IP tools
3ivX codec或mpegable DS decoder
请注意MPEG4IP tools是一个单独的还没有被MPEG4IP发布的编译。这些代码只是作为教学目的使用的。
第0步:安装
唯一要注意的是...把BeSweet、AACMachine和BeSplit放在同一个目录下
第1步:视频编码
首先你必须创建一个无声的avi文件,我已经测试了XviD和DivX5,不过其他的MPEG-4编码器一样可以使用。注意:如果你没有使用前面所提到的两个视频编码器,那么MP4创建工具将要求你必须修改编码器标示,在这种情况下,使用AVIC打开你的AVI文件,并按照下图设置:
第2步:音频编码
AACMachine允许直接从AC3到AAC的编码转换,它甚至还支持5.1声道的AAC,你还有什么理由去用其他工具完成这个任务呢?如果你坚持使用MP3,那么根据上面的指南你应该已经有了相应的音频文件。或者参考这篇AC3到MP3的指南。如果你拥有Nero,你可以使用BeSweet/HeadAC3he先将AC3解码成WAV,然后再使用Nero的AAC插件来将WAV编码成AAC,这将提供一些更高的质量(AACMachine中所使用的AAC编码工具(psytel的aac_enc)的开发者现在受雇于Nero)。
第3步:多路合成
MP4UI是MPEG4IP mpeg4creator程序的图形界面版本,但不幸的是,它已经停止升级很久了,因此使用命令行版本可能会更安全一些。启动以后,点击Open按钮并输入要创建的MP4文件名。确保你选择了一个尚不存在的名字。然后程序将会提示你文件不存在并是否需要创建一个新的,选择yes。
现在你有了一个空的MP4文件:
现在点击Add按钮。首先选择你的AAC或MP3音频文件,随后你也可以加入更多的音轨。
最后再次点击Add来加入你的视频文件。如果MP4UI拒绝了你的文件,那么最大的可能是你忘了修改你的视频文件中的fourCC值。
注意:必须先添加音轨,后添加视频,否则创建后的文件将不能被正常的回放。
这儿是一个完成的MP4文件示例:
当你点击了其他选项卡或是要退出程序,你将被提示优化MP4文件,再次选择yes。
这就是多路复合的全部了,你也可以使用下面所提到的用命令行创建的办法,如果使用MP4UI,你已经完成工作了。
手工多路复合
迄今为止在这个操作上我们还只有一个命令行工具。真正的程序叫做mp4creator(mp4creator60.exe)。进入一个命令行模式(开始-运行-Command(Win9x/ME)或者cmd(WinNT,W2K及WinXP))并且键入mpcreator60获取一个选项列表。
我建议你把mpcreator这个程序和所有的输入文件放在同一个目录里,这样可以缩短你的命令。首先我们把视频转化成一个MP4流:
mpcreator60 -c=ap2.avi -rate=23.976 temp.mp4
这将把视频文件ap2.avi,帧率23.976fps转化为一个名为temp.mp4的文件。接着加入音频流
mp4creator60 -c=audio.aac -I -rate=23.976temp.mp4
现在temp.mp4文件就同时包含了音频和视频轨道。
第4步:回放
如果你已经安装了3ivX或mpegable的解码器,你可以在Windows Media Player中直接播放MP4文件(注意使用后者泥浆不能够快进和快退)。右击MP4文件,然后选择打开方式,从列表中选择Windows Media Player(或是你喜欢的其他媒体播放器)并确认。如果你希望每次使用同一个播放器,那么不要忘了把始终使用该程序打开这些文件的选项勾上。
其它可供选择的有mpegable播放器,DivX Playa 2(带有DivX5包,但并不支持AAC),QuickTime 6.2, Philip公司的Platform 4 player以及Envivio公司的EnvivioTV(支持AAC音轨)。注意如果使用QuickTime播放器,你必须让mp4creator把AAC的MPEG-2 ADTS头部改为MPEG-4。
一些话
这些mp4流最终都能在单独的设备上播放么?是的,它们应该可以,就像MPEG4IP实现是参考,但是时间会给出答案。此外目前还没有编辑(诸如剪切之类)工具,所以你必须在多路合成之前自己为音频与视频寻找适当的剪切点。我建议你使用VirtualDub分割你的视频文件,然后使用诸如BeSplit这样的工具在同样的位置分割你的音频文件,然后再把分割的视频和音频多路复合成一个MP4文件。
最后但不容忽视的是我在下列网页获取了一些关于这个程序至关重要的信息:
http://www.wsu.edu/~benp/trailers.htm,Hydrogenaudio及我的论坛。感谢DeXT提供MPEG4IP工具的编译本版本。
MPEG4IP组织已经为免费的,跨平台的MPEG-4工具的实现努力了相当一段时间。他们已经开发出了用来创建MP4流、将视频编码成符合MPEG-4的流、将音频编码成AAC、回放MP4文件的工具以及很多其他的工具。免费的AAC编码器和解码器工具可以在Audiocoding.com找到。这些工具也是开放源代码的,然而质量可以更好。当前普遍认为PsyTELAAC编码器提供了最好的质量。
在我初次完成这篇指南以后,MP4的回放方面已经出现了许多改进。有更多的播放器开始支持它,最值得注意的是QuickTime以及DivX独立播放系统(不过她有些限制,仅支持DivX视频和非AAC音频)和mpegable公司的播放器。最后mpegable和3ivX都随它们的编码器发布了相应的回放组件,这使得你可以用自己最喜欢的媒体播放器来回放带有AAC音轨的MP4文件。唯一的限制是目前还不能够支持5.1ch的AAC回放。
你需要为这个指南准备以下软件:
PsyTEL AACEnc
AACMachine, BeSweet 和 BeSplit
MP4UI或MPEG4IP tools
3ivX codec或mpegable DS decoder
请注意MPEG4IP tools是一个单独的还没有被MPEG4IP发布的编译。这些代码只是作为教学目的使用的。
第0步:安装
唯一要注意的是...把BeSweet、AACMachine和BeSplit放在同一个目录下
第1步:视频编码
首先你必须创建一个无声的avi文件,我已经测试了XviD和DivX5,不过其他的MPEG-4编码器一样可以使用。注意:如果你没有使用前面所提到的两个视频编码器,那么MP4创建工具将要求你必须修改编码器标示,在这种情况下,使用AVIC打开你的AVI文件,并按照下图设置:
第2步:音频编码
AACMachine允许直接从AC3到AAC的编码转换,它甚至还支持5.1声道的AAC,你还有什么理由去用其他工具完成这个任务呢?如果你坚持使用MP3,那么根据上面的指南你应该已经有了相应的音频文件。或者参考这篇AC3到MP3的指南。如果你拥有Nero,你可以使用BeSweet/HeadAC3he先将AC3解码成WAV,然后再使用Nero的AAC插件来将WAV编码成AAC,这将提供一些更高的质量(AACMachine中所使用的AAC编码工具(psytel的aac_enc)的开发者现在受雇于Nero)。
第3步:多路合成
MP4UI是MPEG4IP mpeg4creator程序的图形界面版本,但不幸的是,它已经停止升级很久了,因此使用命令行版本可能会更安全一些。启动以后,点击Open按钮并输入要创建的MP4文件名。确保你选择了一个尚不存在的名字。然后程序将会提示你文件不存在并是否需要创建一个新的,选择yes。
现在你有了一个空的MP4文件:
现在点击Add按钮。首先选择你的AAC或MP3音频文件,随后你也可以加入更多的音轨。
最后再次点击Add来加入你的视频文件。如果MP4UI拒绝了你的文件,那么最大的可能是你忘了修改你的视频文件中的fourCC值。
注意:必须先添加音轨,后添加视频,否则创建后的文件将不能被正常的回放。
这儿是一个完成的MP4文件示例:
当你点击了其他选项卡或是要退出程序,你将被提示优化MP4文件,再次选择yes。
这就是多路复合的全部了,你也可以使用下面所提到的用命令行创建的办法,如果使用MP4UI,你已经完成工作了。
手工多路复合
迄今为止在这个操作上我们还只有一个命令行工具。真正的程序叫做mp4creator(mp4creator60.exe)。进入一个命令行模式(开始-运行-Command(Win9x/ME)或者cmd(WinNT,W2K及WinXP))并且键入mpcreator60获取一个选项列表。
我建议你把mpcreator这个程序和所有的输入文件放在同一个目录里,这样可以缩短你的命令。首先我们把视频转化成一个MP4流:
mpcreator60 -c=ap2.avi -rate=23.976 temp.mp4
这将把视频文件ap2.avi,帧率23.976fps转化为一个名为temp.mp4的文件。接着加入音频流
mp4creator60 -c=audio.aac -I -rate=23.976temp.mp4
现在temp.mp4文件就同时包含了音频和视频轨道。
第4步:回放
如果你已经安装了3ivX或mpegable的解码器,你可以在Windows Media Player中直接播放MP4文件(注意使用后者泥浆不能够快进和快退)。右击MP4文件,然后选择打开方式,从列表中选择Windows Media Player(或是你喜欢的其他媒体播放器)并确认。如果你希望每次使用同一个播放器,那么不要忘了把始终使用该程序打开这些文件的选项勾上。
其它可供选择的有mpegable播放器,DivX Playa 2(带有DivX5包,但并不支持AAC),QuickTime 6.2, Philip公司的Platform 4 player以及Envivio公司的EnvivioTV(支持AAC音轨)。注意如果使用QuickTime播放器,你必须让mp4creator把AAC的MPEG-2 ADTS头部改为MPEG-4。
一些话
这些mp4流最终都能在单独的设备上播放么?是的,它们应该可以,就像MPEG4IP实现是参考,但是时间会给出答案。此外目前还没有编辑(诸如剪切之类)工具,所以你必须在多路合成之前自己为音频与视频寻找适当的剪切点。我建议你使用VirtualDub分割你的视频文件,然后使用诸如BeSplit这样的工具在同样的位置分割你的音频文件,然后再把分割的视频和音频多路复合成一个MP4文件。
最后但不容忽视的是我在下列网页获取了一些关于这个程序至关重要的信息:
http://www.wsu.edu/~benp/trailers.htm,Hydrogenaudio及我的论坛。感谢DeXT提供MPEG4IP工具的编译本版本。
分类: MPEG4 | 评论: 1 | 浏览: 1539
本文链接地址:http://www.chinavideoonline.com/mpeg4/mpeg4_042.htm
向上
-
返回 -
发表评论
相关文章
VCD 2.0全程实战亲历记
MPEG音频与AC-3
DVD转成MPEG4/MP3 AVI
MPEG-2视频编码技术漫谈
MPEG-2会再起波澜?!
MPEG-4压缩标准之三国演义
本文链接地址:http://www.chinavideoonline.com/mpeg4/mpeg4_042.htm
发表评论 相关文章
VCD 2.0全程实战亲历记
MPEG音频与AC-3
DVD转成MPEG4/MP3 AVI
MPEG-2视频编码技术漫谈
MPEG-2会再起波澜?!
MPEG-4压缩标准之三国演义
(C) 2004-2006 中国视频在线 技术支持:梦想家网络工作室