获取每一帧的长度

来源:互联网 发布:php幸运大转盘源码 编辑:程序博客网 时间:2024/04/28 09:52
 返回列表发帖

新手上路

Rank: 1

[工程应用] 如何从H264 ES流中获取每一帧的长度?

将多帧H264编码数据保存到一个文件中,怎么从这个文件中读取每一帧数据?
或者说,我怎么知道哪个NALU单元是一帧的开始,哪个NALU单元是一帧的结束?
本主题由 firstime 于 2011-6-22 11:50 PM 分类
收藏分享
  

  

管理员

Rank: 9Rank: 9Rank: 9

slice header 中 first_mb_in_slice = 0,则表示一帧开始
欢迎加入我们的QQ群:12923082。新加入者请先仔细阅读论坛中的《群成员须知》
 

TOP

  

新手上路

Rank: 1

那什么时候结束呢?
是不是需要根据下一个first_mb_in_slice=0来判断一帧的结束?

现在有这样一种应用:VOIP视频电话获取的编码数据是从管道中获取的,在获取的数据可能是一个完整帧,也可能是多个帧,也可能不足一帧。现在需要将数据通过RTP打包发送(一个NALU单元一包),但是不知道什么时候是一帧的结束,也就不能给RTP打上marker位。
在这种情况下怎么判断帧尾呢?
  

TOP

  

新手上路

Rank: 1

目前想到的办法就是根据first_mb_in_slice=0来判断一帧的结束,
这样在应用中肯定会加大延迟,不过没办法了,编码器接口做的太差了!
  

TOP

  

管理员

Rank: 9Rank: 9Rank: 9

是的。正确做法应该是编码器告诉你什么时候是一帧的结束。如果编码器没有告诉的话那就只有自己从码流中判断了。
欢迎加入我们的QQ群:12923082。新加入者请先仔细阅读论坛中的《群成员须知》
 

TOP

  
 返回列表