美文网首页
音视频解码与播放

音视频解码与播放

作者: Itachi001 | 来源:发表于2022-04-17 15:12 被阅读0次

    音视频完整解码播放流程分析

    封装格式

    名称 推出机构 流媒体 支持的视频编码 支持的音频编码 目前使用领域
    AVI Microsoft Inc. 不支持 几乎所有格式 几乎所有格式 BT下载影视
    MP4 MPEG 支持 MPEG-2, MPEG-4, H.264, H.263等 AAC, MPEG-1 Layers I, II, III, AC-3等 互联网视频网站
    TS MPEG 支持 MPEG-1, MPEG-2, MPEG-4, H.264 MPEG-1 Layers I, II, III, AAC, IPTV,数字电视
    FLV Adobe Inc. 支持 Sorenson, VP6, H.264 MP3, ADPCM, Linear PCM, AAC等 互联网视频网站
    MKV CoreCodec Inc. 支持 几乎所有格式 几乎所有格式 互联网视频网站
    RMVB Real Networks Inc. 支持 RealVideo 8, 9, 10 AAC, Cook Codec, RealAudio Lossless BT下载影视
    ......

    流媒体协议

    名称 推出机构 传输层协议 客户端 目前使用领域
    RTSP+RTP IETF TCP+UDP VLC, WMP IPTV
    RTMP Adobe Inc. TCP Flash 互联网直播
    RTMFP Adobe Inc. UDP Flash 互联网直播
    MMS Microsoft Inc. TCP/UDP WMP 互联网直播+点播
    HTTP-FLV WWW+IETF TCP Flash 互联网直播
    HLS(http live stream) APPLE TCP/UDP Flash 互联网直播+点播

    视频编码格式

    名称 推出机构 推出时间 目前使用领域
    HEVC(H.265) MPEG/ITU-T 2013 使用较少
    H.264 MPEG/ITU-T 2003 各个领域
    MPEG2 MPEG 1994 数字电视
    VP9 Google 2013 不普及
    VP8 Google 2008 不普及
    VC-1 Microsoft Inc. 2006 微软平台
    ...... ...... ...... ......

    音频编码格式

    名称 推出机构 推出时间 目前使用领域
    AAC MPEG 1997 各个领域(新)
    AC-3 Dolby Inc. 1992 电影
    MP3 MPEG 1993 各个领域(旧)
    WMA Microsoft Inc. 1999 微软平台
    ...... ...... ...... ......

    YUV简介

    YUV定义:分为三个分量,

    “Y”表示明亮度也就是灰度值,而“U”和“V” 表示的则是色度饱和度,作用是描述影像色彩及饱和度,用于指定像素的颜色。

    H.264 I,P,B帧和PTS,DTS

    I frame :帧内编码帧,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。
    自身可以通过视频解压算法解压成一张单独的完整的图片。

    P frame: 前向预测编码帧,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;
    需要参考其前面的一个I frame 或者P frame来生成一张完整的图片。

    B frame: 双向预测内插编码帧,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;
    要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。

    PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来

    DTS:Decode Time Stamp。DTS主要是标识读入内存中的帧数据在什么时候开始送入解码器中进行解码。

    在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。

    DTS主要用于视频的解码,在解码阶段使用。PTS主要用于视频的同步和输出.在显示的时候使用。

    PCM

    通常所说的音频裸数据就是PCM(Pulse Codec Modulation脉冲编码调制)

    PCM数据涉及四个概念:
    1、sampleFormat(采样格式):可理解为一多少字节存储声音,典型的量化格式为16bit。
    2、sampleRate(采样率):这就不用说了吧,典型的采样率为44.1KHz。
    3、channel(声道数):为了造成立体声效果,数字声音分为左、右两个声道。
    4、比特率:对于数字音频而言,比特率是个关键概念。定义为:一秒时间内的比特数,用于衡量单位时间音频数据量的大小。

    FFmpeg核心模块

    libavformat

    用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavcodec 分析码流提供独立的音频或视频码流源。

    libavcodec

    用于各种类型声音/图像编解码;该库是音视频编解码核心,实现了市面上可见的绝大部分解码器的功能,libavcodec 库被其他各大解码器 ffdshow,Mplayer 等所包含或应用。

    libavfilter

    filter(FileIO、FPS、DrawText)音视频滤波器的开发,如水印、倍速播放等。

    libavutil

    包含一些公共的工具函数的使用库,包括算数运算 字符操作。

    libswresample

    原始音频格式转码

    libswscale

    原始视频格式转换)用于视频场景比例缩放、色彩映射转换;图像颜色空间或格式转换,如 rgb565,rgb888 等与 yuv420 等之间转换。

    FFmpeg解密流程

    相关文章

      网友评论

          本文标题:音视频解码与播放

          本文链接:https://www.haomeiwen.com/subject/ohokertx.html