视音频技术零基础学习笔记(一)

        这段时间一直在看视音频技术这块,不过纯小白想入门遇到各种困难。。。直到前几天,发现了雷霄骅博士的视频,感觉终于找到了一条正确学下去的路!真是非常感谢雷博士!这里附上雷博士的Blog~

        我想把我跟随雷博士学习的学习笔记放上来,一方面当个记录,另一方面也希望帮到觉得看视频太耗费时间的朋友~


总体概述

总体任务

      ffmpeg + SDL 实现播放器

      ffmpeg 实现H.264视频码流->YUV
      SDL 实现YUV->屏幕

视频播放器原理

            视音频技术零基础学习笔记(一)_第1张图片

            (1)封装格式:把视频和音频打包起来封装成一个文件
            (2)解封装格式:把视频和音频封开
            (3)视音频压缩数据:视频流被称为码流,是压缩过的,还不能被显示

            (4)视频像素数据:YUV类似于RPG
            (5)音频采样数据:PCM
            (6)视音频同步相对复杂,这里先不讲

常用播放器和信息查看工具

            单项详细分析:可以可视化,播发器不同阶段的数据
            UltraEdit: 把视频文件用二进制方式先实现出来,这次并不会用到
            MediaInfo: 看视频文件的封装格式、视频和音频编码格式等信息。可以用文本查看更清楚

封装格式

            视频码流和音频码流按照一定的格式存储在一个文件中。
            Elecard Format Analyzer:封装格式分析工具
                  如(1)MPEG-TS:按包存储(包大小1888B),没有文件头,所以部分损坏时,其它部分还可以正常播放
                     (2)FLV: 则有文件头,那么头损坏,整个文件无法播放
                  分析工具会给出打开的文件按封装格式存储的层级结构,如moov是存储视频主体的单元

视频编码数据

            作用:将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
                  这部分是最核心的部分,H.264是最主流的,HEVC(H.265)最先进但还再研发中
            H.264简介
                    用NALU(Network Abstract Layer Unit)存储一帧画面。整个文件是由一系列不等长NALU组成

                    可将图像数据压缩100倍以上
            视频编码分析工具:Elecard Stream Eye
                        红色的帧:不参考其它帧,只对静态图片压缩
                        蓝色的帧:参考它前面的帧
                        绿色的帧:前后的帧都会参考

音频编码数据

            作用:将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。
                        用处较少,比如WAV格式是未压缩的,但也不会大太多。
            AAC取代了MP3,占有最大市场;AC-3支持声道多,多用于电影。

            AAC可以压缩10多倍。

视频像素数据

            作用:保存了屏幕上每个像素点的像素值。
            格式:常见的像素数据格式有RGB24,RGB32(如BMP就是不压缩的RGB),YUV420P,YUV422P,YUV444P等。
            压缩编码中一般使用的是YUV格式的像素数据,最为常见的格式为YUV420P
            YUV:

                        把亮度信息和其它信息分开存储(除非特别清晰,否则一般都为YUV420P)
                        人眼对亮度信息更敏感,色度信息不敏感,所以对UV采用更狠的压缩方式
            存储格式:先存所有像素点的Y,再存U,最后存V,UV是Y的四分之一
            特点:数据体积很大

            查看工具:YUV Player
                        由于YUV文件没有头信息,所以需要设置分辨率以及格式等信息

音频采样数据

            作用:保存了音频中每个采样点的值(PCM格式)
            特点:体积大。体积=总时间*采样率*采样精度*声道数
            音频采样数据查看工具:Adobe Audition
                        一般:采样率为44100Hz,采样精度为16bit或32bit
            PCM格式:如果是双声道,则左右左右...这么存。

你可能感兴趣的:(视频编解码)