ffmpeg 音视频概念

编码,解码,转码

封装(mux):复用,按一定格式组织原音视频

街封装(demux):解复用,按一定格式解析出原始音视频流。  

                                原始的?  yuv? 不对吧,是不是解出编码后的音视频?

 

 

ES流:原始流,直接从编码器出来的数据流

PES流:ES形成的分组称为PES分组,用来传递ES的一种数据布局。相当于打了个包,有时间戳等等

TS流:ES形成的分组称为TS分组,是用来传递ES的一种数据布局。任一段丢了,不影响下面的数据

RTSP流:RTPS(Real Time Streaming Protocol)RFC2326,实时流传输协议,是TCP/IP协议体系中的一个 应用层协议

RTMP流:Real Time Messaging Protocol 实时消息传输协议,是adobe公司的协议

HLS流:HLS是Apple的动态码率自适应技术,主要用于PC和Apple终端的音视频服务,包括一个m3u8索引文件,TS媒体分片文件。

流媒体:采用流式传输方式在Internet播放的媒体格式

数字信号实际传送的是数据流,一般数据流包括以下三种:ES是原始码流,包含视频、音频或数据的连续码流。TS是传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个节目,适用于误码较多的环境。
大家都知道TS包是以0x47开始,是一个同步字节。而且每个包长都是188个字节。于是我们可以非常方便的同步TS流,比如说有丢包的情况。只要找连续的n个(比如说5个)188个长度的TS包,如果都是以0x47开始的话,那么基本上可以认为这些包是TS的合法包。PES是打包生成的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。PS是节目流,PS流与TS流的区别在于,PS流的包结构是可变长度的,而TS流的包结构是固定长度的。在MPEG-2系统中,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流。信息复合/分离的过程称为系统复接/分接,据传输媒体的质量不同,MPEG-2中定义了两种复合信息流:传送流(TS)和节目流(PS:ProgramStream)

TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度。 PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力,因而应用的环境也有所不同。TS码流由于采用了固定长度的包结构,当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。而PS包由于长度是变化的,一旦某一 PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。因此,在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS码流由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流基本上都采用了TS码流的包
编码器出来的是TS流,传输接口为asi口,编码器整个作用过程是把模拟信号变成ES,再打包成PES,再打包成TS流输出。复用器是把多路单节目或多节目TS流合称1路多节目TS流,再给调制器。数字卫星接收机出来的是TS流,也是asi接口,可能包含一路或多路节目,有的还同时有一路模拟信号视音频输出。模拟卫星接收机出来的是模拟视音频信号。 
RTP实时传送协议(Real-time Transport Protocol或简写RTP,也可以写成RTTP)是一个网络传输协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在用户数据报协议上的。 RTP包,前面是一个12字节的固定字节,然后是可选的n个CSRC(个数由前面12个字节的某个字段决定)。然后结下来可能存在extension包,字节个数也在extension(延长)的字段中决定。

 

2,基本模块

1,AVCodec 

2,AVFormat 

3,AVFilter 

4,SwrResample 

5,Swrscale  

基本流程:ffmpeg 音视频概念

 

ffmpeg 音视频概念

 

 

 

 

 

 

上一篇:package podman-1.0.0-2.git921f98f.module_el8.0.0+58+91b614e7.x86_64 requires


下一篇:58同城面试官:Java常用的主流框架,及其运用你能说说吗?