1) 为了制作MP4文件,你应该优先使用MPEG-4标准下的音频/视频格式:
- MP4视频格式包括:MPEG-4 SP(Simple Profile/简单类)/ASP(Advanced Simple Profile/高级简单类):xvid, divx5, 3ivx,ffmpeg/ffdshow, NeroDigital ASP...及MPEG-4 AVC/H.264:x264, NeroDigital AVC, Apple...还有MPEG-2, MPEG-1(不含Divx3/M$ MPEG4, WM9, RV9或VP6).-doom9的质量比较测评:1 2
- MP4音频格式包括:Advanced Audio Coding(AAC FAQ):Quicktime/iTunes, Nero, Psytel, FAAC(binary)...(rjamorim的质量比较测评:1 2)和mp3, mp2, mp1, celp(语音), TwinVQ(非常低的码率), SAOL(midi), ALS(无损)
- MP4字幕/文本格式:MPEG-4时标文本(见Q7)
- MP4图片格式:JPEG, PNG
使用下列的软件可以将遵循MPEG-4的内容Mux进MP4容器:
- GPAC的MP4box,命令行界面,支持AVC(Advanced Video Coding/进阶视频编码),packed B-frames(打包B桢),高级内容/BIFS,TTXT和章节(Doom9指南)
- MPEG4IP的mp4creator,命令行界面,能够混合AVC,但不要用于AVI及(packed) B-frames!
- 3ivx mp4 muxer,dshow滤镜,可以在GraphEdit中使用,支持使用packed B-frames的avi,但不支持AVC(3ivx 指南)
- mp4UI,操作简单,软件基于MPEG4IP,不支持AVC,AVI及(packed) B-frames!(doom9指南)
- VideoLAN Client,支持AVC,不能用于packed B-frames
- ffmpeg,问题多,命令行界面,尤其不能用于AVC,AVI及(packed) B-frames!
- IBM的Toolkit for MPEG-4,含基于Java的XMTBatch和/或AVGen(彩且桓黾蛞椎陌姹荆?br>- dvd2mp4GUI,mp4tool的GUI,可以简单的将多音轨及字幕(作为高级内容)混合进MP4
- mp4tool/mp4edit,来自于ENST,类似于mp4box。mp4edit是mp4tool命令行软件的简易GUI版本
3) 下面有一些“all-in-one”的MP4编码工具:
- Nero Recode2,使用ASP、AVC或AAC来编码MP4(Doom9指南),字幕是dvd的vob subs(图形字幕),包含dshow muxer
- Doom9的MeGUI,支持ASP(xvid, libavcodec), AVC(xvid)和AAC(Besweet - Nero)编码
- HDX4支持ASP和AAC
- Dicas的mpegable X4 live,操作简单,用dicas的MPEG-4的编码直接编码为mp4
- Envivio的4coder支持MPEG-4 AAC, ASP/SP和AVC
4) 以下工具可用来编辑MP4文件(如分割、追加合并):
- MP4Box可以按照时间和尺寸分割MP4(AAC, ASP, AVC, TTXT, MPEG-1/2, 专用媒体流),提取部分及合并mp4
- ulead的VideoStudio 8+ MPEG-4插件
- Quicktime/Pro能够创建(编码,混合)和编辑(分割、合并)mp4文件,支持MPEG-4 Simple Profile, AAC, AVC
1) 如果你想用基于dshow的播放器(例如media player classic, bsplayer, zoomplayer或者蹩脚的windows media player)来回放任何此类的媒体文件,首先你需要用到下面两个东西:
-- 一个分离滤镜(splitter/parser filter):它能够在回放时将容器中包含的数据流(音频流、视频流、字幕流)分离开。
-- 一个解码滤镜(decode filter):它(例如:ffdshow, 3ivx, CoreAAC)能够将编码的数据流解码。
顺便说一下,我们在播放AVI时不需要安装分离滤镜的唯一原因是windows系统已经默认安装了这个东西。
这里有一些组件包,包含了这些滤镜:
-- Gabest's MP4 Splitter支持AAC, ASP, AVC, MPEG-1/2音频(如MP2/MP3)与视频, 先进TTXT, MP4中的VobSubs和章节, 开源(Gabest的MPC播放器已经内建此滤镜)
-- Haali's Media Splitter支持MP4中的AAC, ASP, AVC, MPEG-1/2音频(例:mp2/mp3)和视频,TTXT,vobsubs和章节,并支持地切换音频、视频、字幕,是无限制的,部分开源的,免费的
-- 3ivx支持MP2, MP3, AAC, ASP, 章节但不支持MP4里的AVC!使用ffdshow或CoreAAC这样的解码器时请确定“allow unsupport decoders” 选项已勾选
-- Elecard提供了支持AAC, ASP, AVC的MP4 splitter,并附带ASP/AVC解码器
-- Nero支持AAC, ASP, AVC, vobsubs和章节(Nero7下只限Nero Showtime!Nero6下仅Nero Showtime支持字幕/章节/多音轨!)
-- HDX4支持MP4中的AAC和ASP
-- EnvivioTV 支持MP4中的高级内容/BIFS(样本), AAC, ASP和AVC
-- Moonlight提供了支持MP3, AAC, ASP, AVC的MP4 splitter,并附带ASP/AVC解码器
-- Dicas的mpegable,支持RTP(Real-Time Transport Protocol/实时传输协议)流媒体,AAC, ASP和AMR(.3gp音频)的解码
-- Ligos的LSX-MPEG,仅支持Simple Profile视频,30天预览版本
2) 如果你不能/不想使用基于windows dshow的播放器,你也可以使用下列的播放器来播放MP4:
-- Apple的Quicktime,广泛使用,支持MPEG-4 SP, AVC和AAC
-- Realnetworks的RealPlayer10,支持MPEG-4 SP + b桢(仅plus版本)和AAC
-- GPAC的Osmo4,开源(GPL),支持BIFS(字幕,用户互动,类dvd目录...)和TTXT
-- MPlayer,开源(GPL),支持ASP和AVC,支持众多系统,象Win, Linux, Mac OS...
-- Videolan,开源(GPL),支持ASP和AVC,多系统支持
-- MPEG4IP的WMP4Player,开源(LGPL(Lesser General Public
License/GNU较宽松公共许可证)/MPL(Mozilla Public License)),支持ASP和AVC
-- xine,开源(GPL),多系统支持
-- TCPMP,用于PalmOS/WindowsCE
-- Philips的Platform4 Player支持PocketPC
-- ENST的Osmo4(基于参考源),支持高级内容/BIFS
-- IBM的M4Play含Toolkit for MPEG-4,基于Java,支持高级内容/BIFS
件/独立播放器:由于最流行的MPEG-4 ASP执行者(DivX5/XviD)经常被放入AVI中,那也成为了现在播放器最广泛支持的格式。同样是nero的那些家伙,也是为了满足消费者日益增长的需求,他们尝试将MP4容器格式能够被硬件播放器支持,并逐步取得了成功:
支持MP4的硬件播放器如下:
-- Avayon的DXP-1000支持MP4的AAC, ASP, VobSubs和章节
-- elta的8815 MP4支持MP4的AAC, ASP, VobSubs和章节
-- Gowell的AS 602支持MP4的AAC, ASP, VobSubs和章节
-- Kiss的DP-558支持AAC, ASP(不支持QPel(Quarter-Pixel/1/4象素预测)/GMC(Global Motion Compensation/全局动态补偿)),支持VobSubs和章节(Sigma Designs EM8560)
-- Packard Bell的DVD-DivX 450 pro支持MP4的AAC, ASP, VobSubs和章节
-- Philips的DVP630/632/642播放器支持MP4的ASP(不支持QPel/1WP GMC), MP3(非AAC)(ESS Vibratto-II)
-- RJTech的RJ 1500DVX II支持MP4的AAC(5.1), MP3, ASP (QPel/1WP GMC/CQM), VobSubs, 章节(ESS Vibratto-II)
-- Siemssen的SCO 5000ND支持MP4的AAC(不支持MP3/MP2),ASP (QPel/1WP GMC), VobSubs, 章节(Zoran Vaddis 776)。
-- Targa的DR-5200x支持MP4的AAC, ASP, VobSubs和章节
-- Tevion DR 2004,支持MP4的AAC, ASP (QPel/1WP GMC?)和VobSubs。
-- Tevion DVD-4000,最新的固件(firmware)支持MP4的ASP(不支持QPel/1WP GMC?)和MP3(非AAC)(ESS Vibratto-II)
-- Xoro的HSD 415/310播放器支持MP4的AAC, ASP(不支持QPel/1WP GMC?), VobSubs, 章节(ESS Vibratto-II)。
-- M$的Xbox的Xbox Media Center支持MP4的MP2, MP3, AAC和AVC。
-- Sony的Playstation Portable(PSP)支持MP4的AAC, SP和AVC,保存在记忆棒(Memory Stick)中
-- Apple的iPod支持MP4的AAC,iPod video还支持AVC
-- Sigma Designs的Xcard支持在PC上硬体解码MPEG-4包括MP4容器
如何直播/收看实时(live-)的MP4流媒体?
Apple和MPEG4IP提供了不错的、免费的工具以将MP4流媒体化:
想要做流媒体服务器,你可以使用Apple's Darwin Streaming Server,这是everwiked与linuxjornal里提供的操作指南。
要直播流媒体你可以使用MPEG4IP的mp4live(仅Linux支持),这是everwiked及MPEG4IP的指南;在Windows系统中,你可以使用MPEGRecorder(看上去像mp4live的一个端口)。
同样,你可以看一下ViTooKi的工具包(开源的流媒体服务器、播放器和其他相关工具)。
另一个免费、开源的mp4流媒体服务器是Cata提供的。
如果是MAC系统,你可以看一下Live Channel。
要播放广播/直播式的流媒体,你可以用Apple的Quicktime, Real的RealPlayer 10, MPEG4IP的WMP4Player, Dica的mpegable和EnvivioTV(都运作在dshow播放器下)和GPAC的Osmo4(最后两个也可以支持高级内容/用户互动)(Envivio的互动演示)。
通过MediaFrame(演示)和IBM(互动演示)的java applets你也可以在不支持安装播放器情况下来播放流媒体的MP4。