音视频流媒体————基本概念
sensor 采集到YUV数据后,送到编码器进行编码,获取编码后的数据,然后进行封装发送,进行播放。
ES流
ES–Elementary Streams (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC),或其他编码数据流的统称。
ES流经过PES打包器之后,被转换成PES包。
ES是只包含一种内容的数据流,如只含视频或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频ES的PES,只含音频ES的PES等。
每个ES都由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成,1个AU相当于编码的1幅视频图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。
PES流
PES–Packetized Elementary Streams (分组的ES),ES形成的分组称为PES分组,是用来传递ES的一种数据结构。
PES流是ES流经过PES打包器处理后形成的数据流,在这个过程中完成了将ES流分组、打包、加入包头信息等操作(对ES流的第一次打包)。
PES流的基本单位是PES包。PES包由包头和payload组成。
PTS、DTS
PTS–PresentationTime Stamp(显示时间标记)表示显示单元出现在系统目标解码器(H.264、MJPEG等)的时间。
DTS–Decoding Time Stamp(解码时间标记)表示将存取单元全部字节从解码缓存器移走的时间。
PTS/DTS是打在PES包的包头里面的,这两个参数是解决音视频同步显示,防止解码器输入缓存上溢或下溢的关键。每一个I(关键帧)、P(预测帧)、B(双向预测 帧)帧的包头都有一个PTS和DTS,但PTS与DTS对于B帧不一样,无需标出B帧的DTS,对于I帧和P帧,显示前一定要存储于视频解码器的重新排序缓存器中,经过延迟(重新排序)后再显示,所以一定要分别标明PTS和DTS。
PS
PS–Program Stream(节目流)PS流由PS包组成,而一个PS包又由若干个PES包组成(到这里,ES经过了两层的封装)。PS包的包头中包含了同步信息与时钟恢复信息。一个PS包最多可包含具有同一时钟基准的16个视频PES包和32个音频PES包。
TS
TS–Transport Stream(传输流)由定长的TS包组成(188字节),而TS包是对PES包的一个重新封装(到这里,ES也经过了两层的封装)。PES包的包头信息依然存在于TS包中。
TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的。PS包由于长度是变化的,一旦丢失某一PS包的同步信息,接收机就会进入失步状态,从而导致严重的信息丢失事件。而TS码流由于采用了固定长度的包结构,当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。因此在信道环境较为恶劣、传输误码较高时一般采用TS码流,而在信环境较好、传输误码较低时一般采用PS码流。
TS单一码流、混合码流
单一性:TS流的基本组成单位是长度为188字节的TS包。
混合性: TS流由多种数据组合而成,一个TS包中的数据可以是视频数据,音频数据,填充数据,PSI/SI表格数据等(唯一的PID对应)。
基本流程
1)A/D转换后,通过MPEG-2压缩编码得到的ES基本流。这个数据流很大,并且只是I,P,B的这些视频帧或音频取样信息。
2)通过PES打包器,打包并在每个帧中插入 PTS/DTS标志,变成PES。原来是流的格式,现在成了数据包的分割形式。
3)PES根据需要打包成PS或TS包进行存储(DVD)或传输(DVB)。因每路音/视频只包含一路的编码数据流,所以每路PES也只包含相应的数据流。
参考文献
1、https://blog.csdn.net/huangblog/article/details/8740571
2、https://blog.csdn.net/yangguoyu8023/article/details/96894755
音视频流媒体————基本概念相关推荐
- FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发【零声学院】
FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发 学习 音视频流媒体高级开发学习 01音视频基础 [录播]0-音视频开发高级课程简介(22分钟) 免费试学 [录播] ...
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...
- 音视频流媒体系统简述
概述 本系列文章包含一个完整嵌入式音视频流媒体系统实现方案.主要包括音视频采集.编解码.编解封装.传输.播放渲染几个部分. 数据采集 主要是音视频原始数据的采集.从物理上来说,音频是一 ...
- 《音视频开发进阶指南》读书笔记(一) —— 音视频基础概念
前言 最近要学音视频,在图书馆借到这本<音视频开发进阶指南>,读了一段时间觉得挺好就在某宝买了. 以后一段时间应该都会沉浸在研究音视频中,开个专题记录哈每一章的读书笔记吧(以iOS开发的角 ...
- 音视频基础概念(2)——音频
目录 1. 基本知识 2.采样率和采样位数 3.音频编码 4. 声道数 5. 码率 6. 音频格式 日常生活中,音视频随处可见,包括视频.音频.编解码.封装容器.音视频等概念. 1. 基本知识 音频数 ...
- 从零实现简易播放器-0.音视频基本概念
音视频基本概念 作者:史正 邮箱:shizheng163@126.com 如有错误还请及时指正 如果有错误的描述给您带来不便还请见谅 如需交流请发送邮件,欢迎联系 我的csdn : https://b ...
- 音视频基础概念(1)——视频
目录 1.1 动画书 1.2 视频 1.3 视频帧 1.4 帧率 1.5 色彩空间 RGB与YUV YUV优势 RGB与YUV的换算 日常生活中,音视频随处可见,包括视频.音频.编解码.封装容器.音视 ...
- 音视频常见概念:软解硬解、IBP帧、GOP、YUV编码
音视频常见概念 软解与硬解 IBP帧 GOP YUV编码 RGB与YUV相互转换 参考资料 软解与硬解 视频解码分为软解和硬解. 所谓"软解"就是通过软件让 CPU 进行视频解码处 ...
- Android 音视频流媒体相关知识导航
文章目录 Android 音视频流媒体相关知识导航 相关博客专栏 RTP RTCP RTSP SRS SRT 等的含义 H264编码参数的设置 Zookeeper相关 ffmpeg 相关 SRS(Si ...
最新文章
- php 对象里还有哪些对象_PHP面向对象(OOP)之实例化对象的方法
- CloudFoundry命令行和Kubernetes命令行的Restful API消费方式
- pxe装机dhcp获取不到_小白三步装机版重装系统
- js方式调用php_javascript调用PHP和PHP调用javascript的方法
- ubuntu16.04下安装opencv出现libgtk2.0-dev配置失败问题解决方法
- docker删除所有镜像和容器
- adaptivitypara设置选0还是1_喝牛奶,选全脂还是低脂?家里人能不能喝同1种牛奶?...
- 小证明题 编译原理--题目原型:
- Unity 如何修改 particle system 的 start color 属性
- 路飞学城-Python开发集训-第2章
- cv2读取带中文路径方法
- 防止百度网盘和谐/暗中观察我的资源
- Android 平台视频播放器demo
- 奥维互动地图谷歌图源,通过自建Cloudflare Workers反代实现墙内访问 - DaPeng‘s Blog
- word应用:快速删除页眉横线
- 0x00007FF818BAD646 (ucrtbased.dll)处(位于 通讯录.exe 中)引发的异常: 0xC0000005: 写入位置 0x000000000000000C 时发生访问冲突。
- 记事本html特效,很漂亮的网页飘落特效代码
- Apache 网页与安全优化
- oracle水仙花,希腊神话中的水仙花和回声
- 2014 ACM-ICPC 亚洲地区赛 西安站小结