音视频技术

版权声明:本文为卫伟学习总结文章,转载请注明出处!

其实老早就想写一些关于音视频学习的文章了,但由于各方面的原因迟迟都没有开始。目前工作上设计到音视频技术,笔者也得慢慢学习研究了。音视频这块技术涉及到的细节也比较多,需要有一定的 c/c++ 基础。我自己学习时看过大量的文章和资料,这里推荐雷霄骅的专栏,虽然雷神的文章永远停留在那一刻,但其无私奉献的精神永远值得我们每一个人学习。

目前市面上我们所熟悉的音视频广泛应用大致有:直播类:音视频会议、教育直播、娱乐/游戏直播等。短视频:抖音、快手、小咖秀等。网络视频:优酷、腾讯视频、爱奇艺等。以及视频通话、视频监控等方面。他们之间有很多的共性像音视频编解码、视音频同步等,因此我们首先来看下这些共性内容。假设我们现在要播放一个本地视频,需要经过哪些步骤呢?当然这里不是说集成 ijkplayer 或者 ExoPlayer 等开源库,目前只给一个 SurfaceView 和一个视频文件,在此基础上实现一个视频播放。我们先来看一个简单的流程图:

基于上面这个图,我们再来看一些具体的细节:

解封装

将输入的封装格式的数据(文件),分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,具体可以参考下面这张表,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV 格式的数据,经过解封装操作后,输出 H.264 编码的视频码流和 AAC 编码的音频码流。

名称 推出机构 支持的视频编码 支持的音频编码
AVI Microsoft Inc. 几乎所有格式 几乎所有格式
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,
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
音视频解码

将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含 AAC,MP3,AC-3 等等,视频的压缩编码标准则包含 H.264,MPEG2,VC-1 等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如 YUV420P,RGB 等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如 PCM 数据。

视频编码

视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。主要的编码方式有 HEVC(H.265),H.264,MPEG4,MPEG2,VP9,VP8,VC-1 等等。

音频编码

音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。主要的编码方式有 AAC,AC-3,MP3,WMA 等等。

FFmpeg

整个音视频技术学习的核心就在协议和编解码,其中最复杂重要的部分当属编解码了。FFMPEG是一个非常优秀的多媒体框架,可以运行在Linux,Mac,Windows等平台上,能够解码,编码,转码,复用,解复用,过滤音视频数据。初学习音视频技术,还是建议大家基于一些第三方的开源库来实现功能,等时机成熟了再去了解底层的源码和算法。我选的是一个常用的同时也是大家比较熟悉的开源库 FFmpeg。所以后面基于 FFmpeg + NDK 来开发音视频,等有了一定的经验再去阅读源码学习算法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,941评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,397评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,345评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,851评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,868评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,688评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,414评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,319评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,775评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,945评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,096评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,789评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,437评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,993评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,107评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,308评论 3 372
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,037评论 2 355

推荐阅读更多精彩内容