前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音视频学习整理

音视频学习整理

原创
作者头像
帅气的程序员
修改2020-08-23 22:40:34
1.6K0
修改2020-08-23 22:40:34
举报
文章被收录于专栏:Android开发之路Android开发之路

| 导语 整理了一些音视频编解码中常用的几个参数知识。

一. 码率

1. 定义

码率又叫比特率/码流,是编码器(视频/音频)每秒输出的数据大小,单位是bps(Bit Per Second),一般取kbps/Mbps,是编解码中最重要的参数。

2. 影响码率因素

视频:分辨率,帧率,图像压缩程度,色彩空间(RGB)等

音频:声道数量,采样率,采样精度(8Bit/16Bit)

例子:

一个视频(720*480, 30p, 24位真彩色)

最大码率(不考虑图像压缩):720*480*24*30=248Mkps

一般视频的码率在5Mbps~10Mbps,音频码率在100kbps~500kbps

3. 码率的影响

清晰度:码率越大,压缩越小,图像还原更好,更清晰

文件大小:码率越大,文件越大

网络带宽:码率越大,单位时间传输的数据量越大,占用带宽越大

cpu/内存/缓存等:码率越大,需要越大的硬件资源

可见清晰度和其他点是相矛盾的,所以设置码率需要根据场景来权衡分析。

4. 编码模式

VBR(Variable Bitrate)

动态比特率 也就是没有固定的比特率,压缩软件在压缩时根据音视频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式;

CBR(Constant Bitrate)

常数比特率 指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,而且音质相对于VBR和ABR不会有明显的提高。

ABR(Average Bitrate)

平均比特率 是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。

例子:

Elecard StreamEye可以用来查看视频帧的信息,下面看看VBR和CBR的差别。

VBR

CBR

VBR vs CBR

优点

缺点

适合场景

VBR

整体压缩率高,占用空间小,质量高

码率波动起伏大

媒体存储

CBR

码率稳定,压缩快

占用空间大,质量不稳定

流式播放(直播)

5. 码率设置

H.264(也叫AVC或X.264)的文档中,视频的建议码率如下:

Android Mediacodec设置码率模式(默认VBR):

BITRATE_MODE_CBR //CBR

BITRATE_MODE_VBR //VBR

BITRATE_MODE_CQ //Constant quality mode

注意的是,不同系统平台的codec对码率模式的支持可能不一样,一般用默认模式即可,如果需要根据场景做更加精细化的设置,需要对兼容性做测试。

二. Profile & Level

1. Profile

定义:画质级别(或规格),不同级别的压缩效率和性能不同。

H264有4种基本Profile:baseline, extended, main, high

1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;

2、Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;

3、Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced), 也支持CAVLC 和CABAC 的支持;

4、High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;

根据应用领域的不同,Baseline profile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。

AAC:9种Profile

  1. MPEG-2 AAC LC低复杂度规格(Low Complexity)
  2. MPEG-2 AAC Main主规格
  3. MPEG-2 AAC SSR可变采样率规格(Scaleable Sample Rate)
  4. MPEG-4 AAC LC低复杂度规格(Low Complexity),现在的手机比较常见的MP4文件中的音频部分就包括了该规格音频档案,,最常用,通用性好
  5. MPEG-4 AAC Main主规格
  6. MPEG-4 AAC SSR可变采样率规格(Scaleable Sample Rate)
  7. MPEG-4 AAC LTP长时期预测规格(Long Term Predicition)
  8. MPEG-4 AAC LD低延迟规格(Low Delay)
  9. MPEG-4 AAC HE高效率规格(High Efficiency)

Android官方文档说明:https://developer.android.com/guide/topics/media/media-formats?hl=zh-cn

视频:

音频:

可见,Android官方文档也没有列出所有Profile参数,且不同系统版本支持程度也不一样,一般用默认值即可,需要精细化设置的话需要做兼容性测试。

看看iOS的支持程度:

2. Level

定义:即档次,每一个档次设置不同的参数(如取样速率、图像尺寸、编码比特率等),得到对应的编解码器性能的不同level。

关于Level的资料比较少,引用网上的一张表来说明不同Level的区别:

实际使用过程中,Level一般需要和Profile配合起来使用,两种结合起来会决定最终的码率,相比之下,比较简单的做法是根据实际场景的带宽程度,设置合适的码率即可,如果需要更加精细化的设置,可以通过Profile和Level来控制码率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 码率
    • 1. 定义
      • 2. 影响码率因素
        • 3. 码率的影响
          • 4. 编码模式
            • 5. 码率设置
            • 二. Profile & Level
              • 1. Profile
                • 2. Level
                相关产品与服务
                实时音视频
                实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档