版主:

图文——标题:NDS电影DPG制作原理完全解析

楼主发表于: 2007年05月12日 15:58:11 短消息 QQ
西西
  • 级别 成员
  • 称谓 一贫如洗
  • 精华 307
  • 发贴 771
  • 积分 346
  • 游戏网金币 0
  • 在线时间 19小时
  • 注册时间 2007-4-9
  • 最后登陆 2008-4-16

NDS电影DPG制作原理完全解析

关于DPG

    此格式是由日本的moonlight先生所写,应用在nds的非官方moonshell软件上,可以让NDS游戏主机播放的影片的格式称谓

所谓dpg,是由mpeg1video与mpeg2 audio两部分构成的

关于DPG内部详细规格

dpg = moonlight先生特制的header + mpeg2 audio + mpeg1 video

(header的意思为一个文件开头描述内部文件内容的重要信息文件资料)

    注意虽然理论上要制作dpg档只需要将mpeg2 audio + mpeg1 video前面放置一个特殊header然后组合即可,但是在转置参数的使用上需要特别注意,否则会造成播放不能或是播放出现意外问题.在最强的画面与最佳的体积间进行抉择,什么才是最佳的转置方式恐怕连月光先生都不是很清楚吧?

如何自行制作DPG档

    制作dpg档最大的问题在于,由于header区域需要有对于video frame的总数定义,因此如何正确撷取video frame的数量就是转置的问题关键所在

    就是因为需要frame的信息参数去建立header,所以moonlight先生的转档软件支持的格式才有限(目前moonlight支持的格式有限,可以转置的都是文件本身就带有frame数量参数在的格式文件),另一款BatchDPG软件利用的是menocder在转档时的stdout信息,撷取其最后统计出的frame数目,来当成建立header所需的参数

至于如何撷取mencoder在转档时输出的信息画面,这就看个人技术了,但是也并非是很复杂的技巧.

BatchDPG里面有附一个headrmaker.exe,可以用于建立必要的header信息档,使用参数是

headermaker.exe frames fps audio_sample_rate mp2_file_size m1v_file_size  header_name

frames : 影片frame张数

fps : 影片播放正确的速率

audio_sample_rate : 播放取样率

mp2_file_szie : mp2文件大小,单位是byte

m1v_file_szie : m1v mpeg1 video文件大小,单位是byte

header_name : 输出的header名称

最后你之需要将header.m1v.mp2文件copy在一起就好了.

copy/b  "xxx.head"+"xxx.mp2"+"xxx.m1v"  "xxx.dpg"

注意上面指令的关系前后不能改变,header要放在开头,mp2其次,m1v最后.

上面的信息与技巧参考于网络与BatchDPG与mooshell dpgenc两个转档程序的原始码分析.

后记

    实话说NDS播放DPG的效果并不让人满意,而且DPG档案的建立略显烦琐,文件格式的设计不很严谨,相关的转档软件也极少(似乎只有BatchDPG与moonshell dpgenc两种),画面品质更是尚待加强,希望日后有以MPEG4为基础的播放程序出现(ARM946E-S  67MHz处理器可能有些吃紧,但相信若是完美最佳化,应该可以达成)...这段是本人小小的牢骚

此篇主要是希望把相关信息理论散播开来,让有心的人可比较轻松地去撰写其他更有弹性的DPG转档软件

‖.悻偪卟洅鋶走]]_

快速回复

登录名:
密码: 马上注册! 如果您还不是游戏网会员请点击马上注册,如果您是......
心情:
:revertSmile50: :revertSmile51: :revertSmile52: :revertSmile53: :revertSmile55: :revertSmile56: :revertSmile57: :revertSmile58: :revertSmile60: :revertSmile61: :revertSmile63: :revertSmile65: :revertSmile66: :revertSmile67: :revertSmile70:
内容:
验证码: 看不清?点击图片换图(游客回复需通过认证才能显示,想立即看到回复,请注册登录)
[完成后可按 Ctrl+Enter 回复]推荐朋友,获得无限社区积分!
  • 游戏网声明:
  • 本社区(http://bbs.youxi.com)所载所有内容皆为网友上传。 游戏网只为网友提供空间和平台,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请于该信息发布之日起30日内进行。
  • 文明回贴是一种美德,尊重他人等于尊重自己!