视频流PS,PS封装H264
出处: 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 |
视频流PS,PS封装H264的更多相关文章
- 关于对H264码流的PS的封装的相关代码实现
1.写在开始之前: 最近因为新工作要维护别人留下的GB模块代码,先熟悉了流程,然后也试着封装了下ps流,结果也能通过测试正常预览了,当然,其中开发读文档的头疼,预览花屏,卡帧的事情都有遇到,当时慢慢的 ...
- ps流提取H264并解码播放
因为需要从海康ps流中提取H264数据并进行解码播放,才有了这篇文章.因为是视频编解码领域的纯入门新手,个别理解或者方法有误,需要自行判断,不过相关方法已经测试通过,对于 像我这样的新手还是有一定的借 ...
- 流媒体ts/ps流封装/分析
1.TS 1) 感谢星辰同学,还热乎着,
- RTP封装h264
网络抽象层单元类型 (NALU): NALU头由一个字节组成,它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+ ...
- 使用ffmpeg获取视频流后如何封装存储成mp4文件
int main(int argc,char *argv[]) 02 { 03 AVFormatContext *pFormatCtx; 04 int i,videoStream; 05 AVC ...
- RTP协议全解析(H264码流和PS流)
转自:http://blog.csdn.net/chen495810242/article/details/39207305 写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个 ...
- (转)RTP协议全解(H264码流和PS流)
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢. 互联网的发展离不开大家的无私奉献,我决定从我做起,希 ...
- RTP协议全解(H264码流和PS流)
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢. 互联网的发展离不开大家的无私奉献,我决定从我做起,希 ...
- EasyDarwin云平台:EasyCamera开源摄像机接入海康威视摄像机PS流转ES流
本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376 海康威视使用PS流封装H.264流,EasyDarwin云平台支持ES流.当我们 ...
随机推荐
- 基于Openstack环境下开启SRIOV
主题思想: 先在系统层面修改配置文件,再去openstack里面修改配置文件 compute node系统层面: 先确认下是否含有ixgbe moudle lsmod |grep ixgbe 修改/e ...
- dom树渲染对性能的影响
这样写会访问两次dom节点树,一次读取innerHTML,一次重写innerHTML. 当然,加载速度也是很惊人的. 用一个变量把a存起来,只读取和重写innerHTML一次. 可以看到加载时间大幅度 ...
- Windows下网页连接VNC操作手册
所需软件:tigervnc noVnc(https://github.com/novnc/noVNC) websockify(https://github.com/novnc/websockify) ...
- select 下拉选择自动到textarea框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 1. ReactJS基础(开发环境搭建)
本文主要介绍通过React官方提供的create-react-app脚手架进行开发环境的搭建. 1.安装node环境(安装过程这里不做介绍,可参考其他博文) 在cmd中输入node -v 如果可以看到 ...
- leetcode 381.Insert Delete GetRandom
这道题中要求使用O(1)的方法来删除和插入元素的,那么首先需要寻找到对应的元素,这个可以使用map的O(1)的查询时间的,然后是删除对应的元素的,那么可以根据 堆排序中类似的做法把最后面的元素插入到前 ...
- Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么(转)
Web 建站技术中,HTML.HTML5.XHTML.CSS.SQL.JavaScript.PHP.ASP.NET.Web Services 是什么?修改 建站有很多技术,如 HTML.HTML5.X ...
- js中数组常用方法总结
操作数组 印象中数组有很多方法,系统的整理一下,放在自己家里方便回头查~ Array.map() 此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组 1 2 ...
- Centos下查看当前目录大小及文件个数
查看目录及其包含的文件的大小 du -ch directory 查看当前目录下文件的个数 ls -l | grep "^-" | wc -l 查看当前目录下以.jpg为后缀文件的个 ...
- python画高斯分布图形
高斯分布,也叫正态分布,是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率 ...