GB28181--发送ps流,视频不显示

ashleycoder 2016-09-14 05:13:50
我手上只有264文件。
把nalu type=7 8 5合在一起当作I帧,即: type为7的数据 起始码 type为8的数据 起始码 type为5的数据。
这样对吗?感觉不要起始码,识别不了。
把nalu type=1当作P帧。还是要合成完整的一帧?

I帧超过1400。
第一包:rtp,PS header,PS system header,PS system map,PES header ,h264 raw。
第两包:RTP,h264 raw。Type为7。
这样分包对吗?
...全文
2322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
渔村居士 2016-12-21
  • 打赏
  • 举报
回复
PS封装按照ISO DEC-13818-1标准。一个PS包包含PS Header, PES Header, PS system header, PS system map等。 针对H264做如下PS封装:每个IDR NALU前一般都会包含SPS、PPS等NALU,因此将SPS、PPS、IDR 的NALU封装为一个PS包,包括ps头,然后加上PS system header,PS system map,PES header+h264 raw data。所以一个IDR NALU PS包由外到内顺序是:PS header | PS system header | PS system Map | PES header | h264 raw data。对于其它非关键帧的PS包,就简单多了,直接加上PS头和PES头就可以了。顺序为:PS header | PES header | h264 raw data。以上是对只有视频video的情况,如果要把音频Audio也打包进PS封装,也可以。当有音频数据时,将数据加上PES header 放到视频PES后就可以了。顺序如下:PS包=PS头|PES(video)|PES(audio),再用RTP封装发送就可以了。 楼主可以参考下这个:http://blog.csdn.net/chen495810242/article/details/41945275
never715 2016-10-25
  • 打赏
  • 举报
回复
我谈谈我做的方式吧: 1、从264文件读到的nalu_unit_type为7、8、5的作为保留起始码并合成一帧视频帧(不然SPVMN不识别),打包PS流。 2、从264文件读到的nalu_unit_type为1的作为非关键帧,打包PS流。 1的PS包:PS header -- SYS header -- PSM header -- PES header -- h264 raw。 2的PS包:PS header -- PES header -- h264 raw。
ashleycoder 2016-10-12
  • 打赏
  • 举报
回复
谁做过gb28181的ps流封装?
rightorwrong 2016-09-18
  • 打赏
  • 举报
回复
7,8,5一起 就是pps那三段一起
ashleycoder 2016-09-16
  • 打赏
  • 举报
回复
好像是I帧不对,I帧具体怎么组成的?

2,542

社区成员

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

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