java ps流解包,视频流PS,PS封装H264-程序员宅基地

技术标签: java ps流解包  

出处: ISOIEC 13818-1

PS流:

PS流由PSGOP组成,每个PSGOP是由I帧起始的多帧集合,每个GOP之间没有相互依赖信息,可以剪切拼接。

| PSGOP0 | PSGOP1 | PSGOP2 | PSGOP3 | PSGOP4 | ...... |

PSGOP:

PSGOP由一个或多个PS包组成,一个PS包包含一个PSH(PS Header)和若干个PES(Packetized Elementary Stream,ps流数据的基本单位)包,PSGOP的第一个PS包应该在包头PSH后跟一个PSM(program stream map,节目流映射)包。

PS包格式(PSM只有是PSGOP的第一个PS才需要):

| PSH | SystemHeader | PSM| PES0 | PES1 | PES2 | PES3 | PES4 | ...... |

PES包格式:

| PES header | stream raw data |

PSH格式:

| pack_start_code(32)  | "01"(2) |

pack_start_code: 32bit,定义ps流的开始,值为0x000001BA

"01": 2bit,固定为01

system_clock_refference

system header PS流的系统头:

| system_header_start_code(32) | header_length(16) |

system_header_start_code: 32bit 0x000001BB

header_length: 16bit,系统头长度

PES包详细格式:

| packet_start_code_prefix(24) | stream_id(8) | PES_packet_length(16) |  other_info_and_data |

packet_start_code_prefix:24bit ,包起始标记,值固定为0x000001;

stream_id: 8bit

PES_packet_length: 16bit,PES包的长度

other_info_and_data:的值跟stream_id的值相关

PS封装H264:

典型的H264 I帧PS包 :     | PSH | SystemHeader | PSM | PES of SPS | PES of PPS | PES of SEI | PES0 of I frameData | PES1 of I frameData | ...... | PESn of I frameData |

典型的H264 P/B帧PS包 :| PSH | PES0 of P/B frameData | PES1 of P/B frameData | ...... | PESn of P/B frameData |

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42502896/article/details/115780742

智能推荐

vue项目各文件说明_vue项目各个文件夹解释-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏55次。包裹,默认是影响全局的,如需定义作用域只在该组件下起作用,需在标签上加scoped,_vue项目各个文件夹解释

QT学习记录4(防止窗口被遮盖(多级窗口))_qt 窗口置顶防覆盖-程序员宅基地

文章浏览阅读8.9k次,点赞11次,收藏39次。在做项目的时候,由于是嵌入式环境,触摸屏全屏显示,所以也就没有状态栏,因此要避免弹窗弹出后,点击背景窗口后,当前窗口不可见的问题。同时,由于多级窗口的存在,所以不能用简单的设置窗口属性位于最前就能解决,因此采用了事件过滤器实现,趁周末这个时间,重新做个小Demo,记录一下,温故而知新。先说一下这个Demo: 一共有主窗口,配置窗口,和显示信息的弹窗3级窗口,同时还有出现错误或者需要提示的时..._qt 窗口置顶防覆盖

钢筋(螺纹钢)检测计数数据集_钢筋网检测数据集-程序员宅基地

文章浏览阅读379次,点赞9次,收藏7次。人工智能深度学习钢筋(螺纹钢)检测计数数据集,近2000张图像,人工打标,标注完整。_钢筋网检测数据集

Glide-----一个新的android图片处理开源项目_安卓图片处理开源-程序员宅基地

文章浏览阅读1.7k次。英文原文 Introduction to Glide, Image Loader Library for Android, recommended by Google首发地址 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图_安卓图片处理开源

org.springframework.validation.BindException:_org.springframework.validation.beanpropertybinding-程序员宅基地

文章浏览阅读1.5k次。org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errorsField error in object 'supply' on field 'createtime1': rejected value [2018-09-16]; cod..._org.springframework.validation.beanpropertybindingresult: 1 errors

【C++初阶】一、C++入门基础(详细总结)-程序员宅基地

文章浏览阅读1.5w次,点赞97次,收藏448次。C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字(随自己定义),然后接一对{}即可,{}中即为命名空间的成员。注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。_c++入门

随便推点

关于 composer 升级后的问题 Undefined index: name_composer artisan undefined index: name-程序员宅基地

文章浏览阅读2.5k次,点赞4次,收藏5次。我是真的佛了,这个问题竟然是升级 composer 带来的。# composer 升级后,出现这个 undefined index:name 问题composer self-update --2 经过网上搜索,查资料,我的解决方案就是compoesr 版本降级。如有更好的解决方案,请在下面留言!!谢谢!!composer self-update --1..._composer artisan undefined index: name

提高您的kubectl生产力(第二部分):命令完成、资源规范快速查看和自定义列输出格式...-程序员宅基地

文章浏览阅读424次。本文翻译自《Boosting your kubectl productivity》。第一部分:什么是kubectl?1. 通过命令完成(command completio..._"[[ -r \"/opt/homebrew/etc/profile.d/bash_completion.sh\" ]] && . \"/opt/homebre"

单目图像深度估计 - 无监督篇:Left-Right Consistency & Ego Motion-程序员宅基地

文章浏览阅读3k次。单目图像深度估计 - 6. 无监督篇:Left-Right Consistency & Ego Motion近几年有关单目图像深度识别的算法以CNN为主流,更细的说是以无监督的同时对深度、计算机角度、光流等同时计算的端到端深度网络为主流。所谓无监督其实是指在训练过程中不需要输入真实的深度值,这样做有一个好处就是目前能够测量到深度信息的传感器还不够精确,因此由不够精确的label训练出的model得到的预测结果必然不会特别令人满意;所谓同时计算呢,在我理解是指在训练过程中,用一个能够表征时间序列_图像深度估计

QT Layout中增删widget与切换界面_qlayout removewidget会改变父窗口吗-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏25次。背景:以QGroupBox为father widget,用VBoxLayout的布局排版多个checkBox。接下来解决三个问题: (1)在VBoxLayout中增添checkBox并显示 (2)从VBoxLayout中删除checkBox (3)切换groupBox中的界面在QGroupBox中以VBoxLayout添加子widget (checkBox)失败的案例:_qlayout removewidget会改变父窗口吗

Web前端开发(七)--正则表达式,jQ选择器,操作元素,尺寸_前端正则表达式 长宽 高 取规则字符-程序员宅基地

文章浏览阅读303次。一、正则表达式使用单个字符,区间所符合某个规则的字符串。声明正则对象1.new RegExp();使用这个方法时需要注意,如果有转义字符,需要进行两次转义。2.var reg=/…/;内置方法1.text()返回匹配结果,成功为true,不成功为false。2.exec()匹配成功返回时数组,不成功返回null。转义字符\w 单个的数字字母下划..._前端正则表达式 长宽 高 取规则字符

华为硬件笔试 通用器件知识2_华为硬件笔试题(最新版)-程序员宅基地

文章浏览阅读2.7k次。《华为硬件笔试题(最新版)》由会员分享,可在线阅读,更多相关《华为硬件笔试题(最新版)(3页珍藏版)》请在人人文库网上搜索。1、一 选择 13 个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理 ,网络,数字信号处理 有关于 1.微分电路 2.CISC,RISC 3.数据链路层 二 填空 10 个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统..._华为器件机考