H.264码流第一帧不是I帧,怎么解码?

怎么这么困 2017-02-14 05:15:03
用JM解码264文件,显示错误,好像是因为第一帧不是I帧;
现在尝试在读取文件的时候修改文件流的指针,指向第一个I帧,但是不知道怎么操作。
...全文
2818 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
duoshikongbai 2020-03-03
  • 打赏
  • 举报
回复
解码的顺序 以h264为例子:sps->pps->I->B/P;基本上每一个I帧前都会带有sps、pps 的NALU;所以感觉你这解码不能单纯的以I帧为开始,因为每一个slice都会依赖一个pps,而每个pps都会关联一个sps;同时非I帧解码,由于涉及到帧间预测,这个单独的P/B帧肯定无法还原为一个完整图像;
xuhui_7810 2019-07-23
  • 打赏
  • 举报
回复
把它丢掉就可以了
Shelley_Yan 2019-03-04
  • 打赏
  • 举报
回复
接收码流后先判断帧类型,若不是I帧,丢弃,直到第一帧是I帧再开始接收。
顾小白xx 2018-07-25
  • 打赏
  • 举报
回复
不是I帧不能用丢掉就行了
sdsszk 2018-07-25
  • 打赏
  • 举报
回复
继续等待,直到等到I帧才去解码的
Fanle_Weber 2017-11-27
  • 打赏
  • 举报
回复
接受到的数据如果不是I帧,是不能进行播放的,常见的解决办法是丢弃该帧数据,继续接受,直到接收到I帧为止。
XieTong_ 2017-05-17
  • 打赏
  • 举报
回复
根据H264的NAL头知道是不是带pps,sps的主要帧,不是的话丢弃,如果是的开始解码.可以参考楼上提供的网站.
小猪_sun 2017-04-24
  • 打赏
  • 举报
回复
挨个字节向下寻找,根据H264的标准,每帧起始为00000001或者000001,找到每帧开头后,在判断后面的NAL类型,IDR帧的值为5,可以参考这个文章,讲的很清楚;http://blog.csdn.net/jefry_xdz/article/details/8461343
xuws20 2017-03-31
  • 打赏
  • 举报
回复
H264标准已经规定,第一帧必须是IDR帧,如果不是着不符合标准。所以,必须寻找IDR帧。
CCM163 2017-03-21
  • 打赏
  • 举报
回复
不是I帧在只能丢掉,一直到I帧为止
rightorwrong 2017-02-15
  • 打赏
  • 举报
回复
不是i帧不能接,继续收,收到I帧子开始接,之前的删掉

2,543

社区成员

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

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