raw h.264怎么封装成mp4?

nofarewell 2012-02-28 09:01:33
加精
大家好!先介绍一下我们项目视频传输部份的流程:
1,从IP摄像头得到mjpeg数据包
2,从mjpeg数据包解封出jpeg序列
3,将jpeg序列送进h.264编码器(现在用的是libx264)进行编码,得到原始的h.264 nalu流
4,将nalu流封装成mp4
现在项目已经进展到第3步,对于怎么将nalu流封装成mp4,还有不少困惑,特来此向大家请教。
现在考虑用x.264 mp4封装的方法(用的是gpac库),但是gpac库的输出是磁盘文件。请问,有没有更适合这个项目的封装库?比如支封流输出的?有没有朋友修改过gpac库的输出?效果怎样?还有对如何将nalu流封装成mp4有什么好的经验和建议,还请不烦赐教!
...全文
2366 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsu747 2012-04-08
  • 打赏
  • 举报
回复
转换成mpeg-4在封装
yl2135315 2012-03-22
  • 打赏
  • 举报
回复
这个,好东西。。
zxfishhack 2012-03-22
  • 打赏
  • 举报
回复
可以尝试下使用pipe,传入gpac文件名的时候传入pipe的名字,然后在pipe server那边封成字节流,当然这种方法比较麻烦。
走海角 2012-03-20
  • 打赏
  • 举报
回复
飘过学习,谢谢大家。
zb3214 2012-03-20
  • 打赏
  • 举报
回复
推荐参考ffmpeg开源工程中有关mp4部分的代码,应该是一个mov.cpp的文件。至于MP4的协议文档,可以参考ISO_IEC_14496系列文档,这些文档在download.csdn.net里面有。我的资源库里有上传。
poly3 2012-03-18
  • 打赏
  • 举报
回复
多媒体 文件头 数据流
arnold 2012-03-18
  • 打赏
  • 举报
回复
使用转换软件。
22too 2012-03-16
  • 打赏
  • 举报
回复
开膜拜大师!!!!!!!!!!
热血沸腾 2012-03-16
  • 打赏
  • 举报
回复
不懂。,不能直接转AVI在转MP4吗
nonocast 2012-03-15
  • 打赏
  • 举报
回复
难道你不用DirectShow Filter吗?
直接都有现成filter
lcyw 2012-03-14
  • 打赏
  • 举报
回复
楼主看来对mp4文件格式比较熟悉了

我最近也要搞一个MP4文件读写的程序

看了一些文档, 还是一头雾水,,,

楼主愿意的话, 能否发一些mp4文件解析, 读写的代码以供学习?

谢谢, haige521@126.com
nofarewell 2012-03-02
  • 打赏
  • 举报
回复
再顶,求解答。现在问题比较明确了,就是编码后的h.264码流怎么进行实时封装传输。mp4格式好像不能实时封装?是否可以采用ts?或者asf?
nofarewell 2012-03-01
  • 打赏
  • 举报
回复
上面说错了,是isma规范。这个问题现在已经解决了,用GPAC库设置store mode可以实现,就是把moov box放在mdat box前面。但是输出仍是写磁盘文件。至于怎么转成memory stream的输出方式,还请高手帮忙!
nofarewell 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rightorwrong 的回复:]

有封装MP4的库,mp4creator
[/Quote]
这个库好像不错,是mpeg4ip里的项目。听说mpeg4ip对isam规范有很好的支持,不知道能不能将h.264码流直接封装成符合isam规范的mp4流?另外我现在已经用GPAC实现了ISO规范的封装,不知道GPAC能不能封装成isam规范的mp4?有朋友熟悉GPAC吗
rightorwrong 2012-02-28
  • 打赏
  • 举报
回复
有封装MP4的库,mp4creator
H264作为新一代压缩标准已经为无可争议的王者,以前通行的做法是使用VDM+X264 VFW来制作AVI容器封装的H264文件,但由于X264 VFW已停止开发新版,而且其功能选项比起X264 CLI差了太多。 目前流行MEGUI+X264 CLI制作H264,MEGUI+X264 CLI支持的H264输出格式有:RAW(.264)、MP4容器、MKV封装MP4容器虽然是MPEG4标准制定组织推荐的格式,但其仅支持MPx音频,无法装进AC3/DTS,所以等待它的只能是被再次装进MKV或TS中,而MKV似乎为大家所不爱(不知何解,本人觉得MKV其实也挺不错的)。于是RAW(.264)貌似了最佳的输出选择。但RAW只是个源文件,既不是容器也不是标准的视频文件格式,等待它的也只能是被装进其他PS容器或被封装进TS中,但由于TS起初是为MPEG2服务的流格式,目前才刚刚被应用到H264上,有些分离解码器并不能很完美的支持它。到底应该把RAW(.264)装进哪个目前比较通用且兼容性佳的容器中?RAW(.264)装进MP4倒是可以,问题在于MP4的缺点太多,上面已经讲过了。反观VDM+X264 VFW所生的H264编码+AVI容器却功能强大,AVI可以直接装进MPx/AC3/DTS等各类音频,如果能直接将AVC(即H264的RAW格式,文件后缀名与X264的RAW格式相同,同为.264)装进AVI就好了,这样一来既可以生H264编码的AVI容器,又可以彻底摆脱VDM+X264 VFW了。 好在有一老外crypto考虑到了这问题,2004年写了AVC2AVI,这下即使没有VDM也可以极快速的把AVC转(装进)AVI中,但还不太完善,于是2006年高人crypto又开发了AVC2AVI_MOD,支持任意指定FPS、CODEC FOURCC、任意文件大小切割、自动分辨率修正等功能,可这些东东都是命令行格式,使用时比较麻烦。 本人这两天专门写了AVC2AVI_MOD_GUI的图形界面接口程序,可以图形界面设置AVC2AVI_MOD的各个参数并运行之,方便了不少。本软件自带AVC2AVI_MOD.EXE(运行后自动生,不用到网上四处找这好东东了),支持参数记忆,参数添加删除等功能。 目前看来,在PS方面来说,AVI容器貌似最适合H264的封装格式了,其实我个人觉得MKV更好,起码还能装字幕,不知道为什么那么多人不喜欢MKV。至于TS方面,反正只有一种格式,呵呵,所不同的只有封装软件的区别而已,但目前有些分离器对TS封装的H264支持得不很好,这点需要大家注意。 另外,强烈推荐大家使用AVIMUX_GUI来处理AVI格式,比VDM强大得多,而且网上有人说AVIMUX_GUI对MKV也支持得很好,分离MKV的效果比MKVEGUI还要好(有时候MKVEGUI会损坏文件)

2,543

社区成员

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

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