关于MP4文件封装,解析

lcyw
百度研发工程师
博客专家认证
2012-04-12 03:50:26
小弟最近在做mp4文件读写的程序, 看了一些文档, 对MP4文件格式有了初步的理解,

写了个测试程序, 能将MP4文件的各个box解析出来,




但是, 我现在需要将.h264的视频封装到标准的MP4文件中, 并实现以下接口,

2. int AddAudioStream (int nFormat, ...);
添加指定格式的音频流,及相关参数。
返回流对应的序号。

3. int AddVideoStream (int nFormat, ...);
添加指定格式的视频流,及相关参数。只支持.264及FMPEG4。
返回流对应的序号。

4. int AddCustomData (int nType, char *pData, int nLen);
int GetCustomData (int nType, char *pData);
定置数据,每个nType只能存储一个pData.

5.
int Write (int nStreamId, char *pData, int nLen, unsigned long nSampleTime, unsigned long nFlag); // 视频流时,nFlag &0x1 为1,表示关键帧,用于创建索引
int Read (int *pStreamId, char *pData, int nLen, unsigned long *pSampleTime, unsigned long *pFlag);
读写码流数据。


感觉写MP4文件比解析要困难很多啊,而且由于时间紧迫,自己一时半会搞不出来,

各位,如果有谁做过这方面的工作, 能否把你们做过的程序给我一些代码片段,我参考下啊,

也可以把我的程序下载下来,在我程序的基础上,帮我看看,


我写的程序已经上传到csdn了

http://download.csdn.net/detail/machh/4220533

Mp4Parse.cpp是程序入口、

...全文
1390 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhconghu 2012-09-24
  • 打赏
  • 举报
回复
你好,我也需要将H264的视频数据封装成MP4文件,lz能否分享下程序代码么?先谢过了
zhconghu@163.com
xuehai_sc 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
引用 13 楼 的回复:
采用mpeg4ip的Mp4v2库,很容易实现mp4的封装和解析。把Mp4v2库搬到android上一天就搞定了呢http://hi.baidu.com/xuehai_sc/blog/item/d18fd099e321304c54fb96d6.html



楼主我也用了mpeg4ip的代码, 把h264数据流封装到MP4文件, 但是生成的文件SPS,PPS信息不……
[/Quote]

http://hi.baidu.com/xuehai_sc/blog/item/d18fd099e321304c54fb96d6.html
这里我写了有相关的代码。跳转
lcyw 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
采用mpeg4ip的Mp4v2库,很容易实现mp4的封装和解析。把Mp4v2库搬到android上一天就搞定了呢http://hi.baidu.com/xuehai_sc/blog/item/d18fd099e321304c54fb96d6.html
[/Quote]


楼主我也用了mpeg4ip的代码, 把h264数据流封装到MP4文件, 但是生成的文件SPS,PPS信息不是很正确,

可能是我我解析sps,信息由问题, 能把你的代码给我看看么? machh03@qq.com 谢谢,。
lcyw 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
我也在能MP4文件录制呢 刚弄完,我是用mp4v2 写的,建议不要用mpeg4ip 里的MP4v2这个库,太旧了,会有一些性能问题,特别是在录制大文件时,最好用MP4v2-2.0.0这个版本,上网找一下就有。
[/Quote]

你好, 能发我一份吗? machh03@qq.com 因为我公司只能访问CSDN,qq邮箱,百度之类的网站,

别的网站上不去,

谢谢。
lcyw 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
我也在能MP4文件录制呢 刚弄完,我是用mp4v2 写的,建议不要用mpeg4ip 里的MP4v2这个库,太旧了,会有一些性能问题,特别是在录制大文件时,最好用MP4v2-2.0.0这个版本,上网找一下就有。
[/Quote]

你好,能发我一份吗? 我公司只能上百度,qq邮箱,csdn之类的网站, 别的网站无法访问,

machh03@qq.com

谢谢、
YUKUILONGQQ 2012-06-08
  • 打赏
  • 举报
回复
我也在能MP4文件录制呢 刚弄完,我是用mp4v2 写的,建议不要用mpeg4ip 里的MP4v2这个库,太旧了,会有一些性能问题,特别是在录制大文件时,最好用MP4v2-2.0.0这个版本,上网找一下就有。
xuehai_sc 2012-06-07
  • 打赏
  • 举报
回复
采用mpeg4ip的Mp4v2库,很容易实现mp4的封装和解析。把Mp4v2库搬到android上一天就搞定了呢http://hi.baidu.com/xuehai_sc/blog/item/d18fd099e321304c54fb96d6.html
lcyw 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
哈哈哈,我知道lz是谁,马X海
[/Quote]
你个锤子
akcw007 2012-04-24
  • 打赏
  • 举报
回复
哈哈哈,我知道lz是谁,马X海
lcyw 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
live555和ffmpeg里都有mp4 muxer 供参考
[/Quote]


live555那个文件夹里面有 mp4 muex正好我这刚下载了live555。
lcyw 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
你研究mp4creator怎么样了,能参考么
[/Quote]


正在看呢, 还是稀里糊涂的,,,
rightorwrong 2012-04-17
  • 打赏
  • 举报
回复
你研究mp4creator怎么样了,能参考么
lius1984 2012-04-17
  • 打赏
  • 举报
回复
live555和ffmpeg里都有mp4 muxer 供参考
lcyw 2012-04-16
  • 打赏
  • 举报
回复
?????

没有人关注这个问吗
lcyw 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
mpeg4ip这个库里有个mp4creator的工程,完成MP4的封装
看看能不能参考下
[/Quote]

嗯,
zoulie 2012-04-12
  • 打赏
  • 举报
回复
MP4几乎是所有媒体文件格式中最复杂的了
自己全部实现的话要对MP4文件相当的熟悉。。。。
没个10天半个月的不现实 。。。。
建议用现成的楼上的 或者
http://www.gdcl.co.uk/mpeg4/
lcyw 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
mpeg4ip这个库里有个mp4creator的工程,完成MP4的封装
看看能不能参考下
[/Quote]


现在在看那个来不及了,
rightorwrong 2012-04-12
  • 打赏
  • 举报
回复
mpeg4ip这个库里有个mp4creator的工程,完成MP4的封装
看看能不能参考下
lcyw 2012-04-12
  • 打赏
  • 举报
回复

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧