使用 H264 编解码器检测 TS 中的关键帧
是否有一种简单而不是极其复杂的方法来检测封装在传输流中的H264视频流中的关键帧?
另外,如果关键帧解码需要额外的先前数据包,是否也有办法找到这些数据包?
Is there an easy not horrifyingly complex way to detect key-frame in an H264 video stream wrapped in a Transport Stream?
Also, if extra previous packets needed for the decoding of the key-frame is there a way to find those as well?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有超级简单的方法来查找 I 帧。您必须读取AVC流的传输流数据包。然后,您必须组装打包的基本流数据包 (PES),剥离 PES 标头,然后识别 NAL 类型 5。
因此,您将需要一个传输流解复用器,找到 PES 数据包的开头并进行最少的 H.264 解析。
对于解复用,您可以查看以下源代码:http://tsdemuxer.googlecode .com/svn/trunk/v1.0/tsdemux.cpp
There is no super simple way of finding the I frame. You have to read the transport stream packets of the AVC stream. Then you have to assemble the packetized elementry stream packets (PES), strip the PES header and then identify the NAL type 5.
So you will need an transport stream demuxer, find the beginning of PES packets and do minimal H.264 parsing.
For demuxing you could look at this source code: http://tsdemuxer.googlecode.com/svn/trunk/v1.0/tsdemux.cpp