2017.10.26开始学习FFMPEG音视频编解码,通过学习雷霄骅文章

来源:互联网 发布:玉溪软件 编辑:程序博客网 时间:2024/06/05 18:25

学习笔记:

一.

1.查看媒体信息的工具:MediaInfo。MediaInfo是一个专门查看视音频格式的工具

2.音视频技术主要包含几点:

             1.封装技术

             2.音视频编解码技术

             3.关于网络传输的:流媒体协议技术

3.食品播放器播放网络上的一个视频文件需要经过以下几个步骤:

             1解协议(处理后为不带网络协议的音视频数据)

             2.解封装(处理后为压缩的音视频流编码数据)

             3.音视频解码(处理后为原始数据)

             4.音视频同步(同步处理后的音视频原始数据)

二.

音视频数据处理入门:

1. 6种不同类型的音视频数据处理方法

RGB/YUV像素处理,PCM音频采样数据,H.264视频码流数据,AAC音频码流数据,FLV封装格式数据,UDP/RTP协议数据


RGB/YUV像素处理:

        YUV科普:YUV与RGB类似是一种颜色编码方法,将亮度(Y)与色度(UV)分离,没有色度一样可以显示图像,只不过是黑白的。

        YUV码流的存储格式与采样方式密切相关,主流的采样方式有三种:YUV4:4:4(每一个Y共用一组UV分量)      YUV4:2:2 (每两个Y共用一组UV分量)     YUV4:2:0(每4个Y共用一组UV分量)

        YUV420P与YUV420在存储格式上的区别:  YUV420P(平面格式)------->YYYYYYYY  U U  V V;YUV420:----------->YUVYUVYUV。

        YUV420P像素数据周围加上边框:理解了pic[j*w+k]=255;的意思;因为YUV420P是平板的存储结构,所以存储会先存下所有Y,再存下所有U,最后存下所有V,那么把Y分量置成255,那就是先把数组中从0开始,即j等于0,一直到宽度为j*w为止,符合要求的的k置为255,紧接着从数组中w位置开始,即j等于1开始,一直到宽度为j*w为止,符合要求的k置为255,依次这种方法做操作..........................................

        PSNR为最基本的视频质量评价方法;PSNR的取值范围通常在20-50以内,数值越高表示两张图片越接近,表示受损图像质量越好

        RGB24存储格式为1:1:1,即:RGB RGB RGB RGB

        RGB24格式像素数据封装为BMP图像:

                               BMP文件由3部分组成:BITMAPFILEHEADER=>BITMAPINFOHEADER=>RGB像素数据;因此RGB像素数据封装成BMP文件,只需做两步:

                               1.RGB像素数据前加文件头

                               2.RGB像素数据的每个‘R’和‘B’位置互换(因为BMP采用的是小端的存储方式)

        PCM音频采样数据处理方法:

                               PCM16LE双声道音频采样数据:采样格式:16LE,16代表采样位数是16bit,所以一个声道的采样值为2个字节,LE代表小端存储。左声道右声道间隔采样值为间隔存储,每个采样值占用2byte空间。

       PCM16LE格式的采样数据取值范围为:-32768到32767,PCM8格式的采样数据取值范围为:0到255;

       对于单声道文件,采样数据为8位的短整数,即2^8=256 ,0到255;对于双声道文件,采样数据为16位的整数,即:2^16=65536,即:-32768到32767。

       因此,PCM16LE转换为PCM8,首先会将-32768到32767转换成-128到127;然后将-128到127转换为0到255。

       16位的采样数据是通过short int存储的,而8位的采样数据是通过unsigned char存储的。

       











原创粉丝点击