ffmpeg学习1 音视频基本概念

1、音视频基本概念

1.1、编码(encode)

         官方说法:通过特定的压缩技术,将某个视频的视频流格式转换成另一种视频格式的视频流方式。

         通俗的说法:他就是一种算法,是一种减少字节的算法,编码的目的就是较少字节,数据在网络上传输,会受到贷带宽的限制,比如数据1000M,带宽只有100M,因此需要编码,将1000M的数据进行压缩,然后在100M的带宽上传输。

        编码(encode)是一种减少字节的算法,它的输入是图片,图片是由像素点组成的,图片是像素的集合。

        视频:YUV420/422(视频格式)--->H264(编码算法)

                   RGB888(视频格式)-->H264(编码算法)

                   YUV420(视频格式)--->h263(编码算法)

                   H264的I帧,P帧,B帧,GOP

                   GOP实际上就是一组数据,一组数据中的关键帧是I帧,还有PS,PPS的信息。

                   encode编码图片序列对应的就是H264视频流

        音频:PCM(原始)(图片格式)---->AAC(编码算法)

                   PCM(原始)(图片格式)---->G726(编码算法)

                   PCM(原始)(图片格式)---->G711(编码算法)

 

1.2、解码(decode)

         官方说法:通过特定的解压缩技术,将某个视频格式的视频流转换成另一种格式的视频流方式

         通俗的说法:有encode就有decode,原来都是图片,但是经过encode以后,就不是一幅幅的图片,而是压缩后的数据,我们需要将压缩后的数据转化成encode之前的图片,核心就是还原

       视频:H264(编码算法)--->YUV420/422(视频格式)

                  H264(编码算法)---> RGB888(视频格式)

                   h263(编码算法)--->YUV420(视频格式)

        音频:AAC(编码算法)--->PCM(原始)(图片格式)

                   G726(编码算法)--->PCM(原始)(图片格式)

                  G711(编码算法)---> PCM(原始)(图片格式)

1.3、转码(transcode)

      官方说法: 视频转码技术将视频信号从一种格式转换成另一种格式

      通俗的说法:比如我有一个高清的视频源1080p的,但是由于带宽不够,就需要通过转码的方式转化成VGA640p*480p的,一般来讲通过修改分辨率

       视频:改变分辨率(resolution)  分辨率就是像素的宽*高  1920p * 1080p

                 改变帧率(frame rate) 1秒钟会改变多少次,正常人眼的识别是15帧/秒,帧率越高动画月流畅

                 改变比特率 等编码参数   影响文件大小,影响带宽的传输

       音频:  改变采样率(sample rate)  音频是一个连续的信号,需要量化,需要采用很多点,比如采样8000个点比采样1000个点播放肯定更好。采样率越高,音频播放质量越好。

                 改变通道数(channels)   音频双通道,单通道

                 改变位宽(sample format)  ffpmeg中定义的位宽,16位,32位,8位,位宽越多越精确,但是传输的数据量就越大。

1.4、封装(mux)    

               复用,按一定的格式组织原始音视频流,其实就是在原始的音视频流加入了一些额外字段,例如头和尾部信息,用来表示音视频能够播放多长时间,音视频何时开始何时结束,音视频能够有多少个包

1.5、解封装(demux)    

               解复用,按一定的格式解析出原始音视频流,mux相当于穿衣服,demux相当于脱衣服。

1.6、ES流:

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

1.7、PES流:packet ES流

             ES形成的分组称为PES分组,是用来传递ES的一种数据布局。就是ES流打成的包,一组ES流。这一组ES流里面会有时间戳信息。

            分割打包的ES流,加入了PES头。PES包是可变长度的,PES头中最重要的部分是显示时间标记(Presentation Time Stamp, PTS)和解码时间标记(Decode Time Stamp, DTS),有了PTS和DTS,再加上节目时钟参考PCR,解码器就能从TS流中重建视频流;

1.8、TS流:

        在MPEG-2标准中,有两种不同类型的码流输出到信道:一种是节目码流(Program Stream, PS),适用于没有误差产生的媒体存储,如DVD等存储介质;另一种是传送流(Transport stream, TS),适用于有信道噪声产生的传输,目前TS流广泛应用于广播电视中,如机顶盒等。

     传送流(Transport stream, TS)每一个包是188个字节的TS流,TS流的好处就是可以被任意的截断,如果中间传输丢失了,不会影响后面的数据,顶多就是出现马赛克。

    传输流。固定包长度为188B,TS流固定包长度的好处是便于找到帧的起始位置,易于从包丢失中恢复,适合于有误码的环境。     

      https://www.cnblogs.com/jiayayao/p/6832614.html

1.9、RTSP流:RTSP(Real Time Streaming Protocol)

      RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议。其实是一个控制协议,源端有一个RTSP流,目的端想要接受这个RTSP流,目的端需要开启IP,PORT和请求数据。

1.10、RTMP流

       Real Time  Messaging Protocol(实时消息传输协议),是adobe公司的协议。本质上讲RTMP和RTSP流没有区别,控制有区别。很多直播网站都是RTMP的流。

1.11、HLS流:

       HLS是Apple的动态码流自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u8索引文件,TS媒体分片文件。         好处就是播放器的兼容性很强。

1.12、   服务端:

        服务端是为客户端服务的,像客户端提供资源,保存客户端数据。

 1.13、客户端:

          也可以成为用户端,与服务器相对应,为客户提供本地服务的程序。

1.14、流媒体:

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

 1.15、推模式:

           当通知消息来之时、把所有相关信息都通过参数的形式“推给”观察者。

 1.16、拉模式:

           当通知消息来之时,通知的函数不带任何相关的信息,而是要观察者主动去“拉”信息

 1.17、实时流:

            Real Time stream 实时传输的音视频流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值