首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于fmp4编码,如何用H264框架填充mdat框?

关于fmp4编码,如何用H264框架填充mdat框?
EN

Stack Overflow用户
提问于 2019-01-01 03:59:12
回答 1查看 1.2K关注 0票数 1

我使用C语言将H264框架(只有I/P帧)编码成fmp4文件。当我填充mdat框时,我不知道如何填充帧数据。

(I/P)帧数据是否被直接填充?

前4个字节是否需要填充帧长度?

我尝试使用FFMPG对fmp4文件进行编码,发现mdat框中的数据与原始的I/P帧数据完全不同。

又被编码了吗?

我能直接将I/P帧的数据填入mdat框吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-02 22:31:56

H.264可以采用不同的流格式。一种叫“附件B”,另一种叫MP4。在“附件B”中,您的NAL单位是前缀,开头代码为00 00 0 01或00 0 0 01。在MP4中,NAL单元以字节为前缀。

我猜你的编码器会发出“附件B”。

  1. 删除开始代码( 00 ) 000001
  2. 在NAL单元前加上大小(通常为4个字节)
  3. 从你的溪流中过滤出AUD/SPS/PPS NAL单位
  4. 将NAL单元写入MDAT框
  5. 根据SPS、PPS和长度大小创建AVC配置框(“avcC”)
  6. 将您的avcC框存储在moov->trak->mdia->minf->stbl->avc1 1->avcC中。
  7. 当您将您的样本写入mdat时,请跟踪大小、偏移量和帧类型,以创建正确的stts、stss、stsc、stsz和stco框。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53992918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档