当前位置:网站首页>音视频学习路线及学习资料推荐
音视频学习路线及学习资料推荐
2022-06-22 01:16:00 【it5101】
前言
前面的文章学习了一些关于C/C++和NDK相关的知识点,那么现在就来简单的入门一些关于音视频的相关概念,万层高楼平地起,还是从最基础开始。
正文
查看音视频文件的封装格式
这里要明确一个概念,就是封装格式,比如我们熟悉的mp4、avi等,这些是封装格式,而不是什么音频或者视频编码格式,具体看下图:

使用MediaInfo工具
前面我们使用播放器通过查看属性来分析音视频文件的内容,这里可以使用一个软件叫做MediaInfo来做同样的事,这样可以更快、更清晰地查看文件信息,看下图:

通过MediaInfo查看的音视频信息如下:

视频播放器原理
对于播放播放器的原理,其实就对应着音视频的生成过程,主要包括封装技术、视频压缩编码技术、音频压缩编码技术,如果考虑网络传输的话,还包括流媒体协议技术。

看上图,我们就能看出播放器的大致原理。

这里给做了个总结,主要就是了解一下基本步骤,以及常见的格式。
流媒体协议
既然上图给我们说明了一些基本步骤和协议,那就分别了解一些,先看一些主要流媒体协议。

这里主要就这2个方向,其中RTSP+RTP经常用于IPTV领域,因为其采用UDP传输音视频,支持组播,效率高,缺点就是网络不好的情况下会丢包。所以互联网网络环境的不稳定性,所以互联网视频服务经常采用TCP作为其流媒体传输层协议,所以像RTMP、HTTP这类协议广泛用于互联网音视频服务之中。
封装格式
封装格式在前面也说了,就是把视频码流和音频码流按照一定的格式存储在一个文件中。
| 名称 | 推出机构 | 是否支持流媒体 | 支持的视频编码 | 支持的音频编码 | 目前使用领域 |
|---|---|---|---|---|---|
| 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 | 支持 | Sorenson, VP6, H.264 | MP3, ADPCM, Linear PCM, AAC等 | 互联网视频网站 |
| MKV | CoreCodec | 支持 | 几乎所有格式 | 几乎所有格式 | 互联网视频网站 |
| RMVB | Real Networks Inc. | 支持 | RealVideo 8, 9, 10 | AAC, Cook Codec, RealAudio Lossless | BT下载影视 |
这里就罗列了一些常用的,这里只有AVI是不支持流媒体的,也就是不能边下边播,有的封装格式支持的音视频多,有的支持的格式少,这里具体细节不一一细说了,后面有机会再说。
视频编码
视频编码的作用就是将像素数据(RGB、YUV等)压缩成视频码流,从而降低视频的数据量。
如果视频不经过压缩编码的话,体积非常大,一部电影都有上百G的大小,所以视频编码是非常重要的技术。
下面还是罗列一些最常用的视频编码:
| 名称 | 推出机构 | 推出时间 | 使用领域 |
|---|---|---|---|
| HEVC(H.265) | MPEG/ITU-T | 2013 | H.265目的是在有限的带宽下传输更高质量的网络视频,仅需要原来一半的带宽可以播放相同质量的视频,是4K、8k等超高清领域的主要使用地方 |
| H.264 | MPEG/ITU-T | 2003 | H.264是目前使用最广泛的一个视频编解码协议 |
| VP9 | 2013 | VP9目前不稳定,用于替代VP8 | |
| VP8 | 2008 | VP8是WebRTC的默认视频编解码器 |
音频编码
音频编码的主要作用就是将音频采样数据比如PCM等压缩成音频码流,从而降低音频的数据量。音频编码也是非常重要的技术,但是一般情况下音频的数据远小于视频的数据,所以即使使用稍微落后的音频编码标准,导致音频数据量增加一点,也不会对音视频的总数据量产生大的影响。
下面也是罗列一些常用的音频编码:
| 名称 | 推出机构 | 推出时间 | 使用领域 |
|---|---|---|---|
| AAC | MPEG | 1997 | AAC目前使用到各个领域 |
| AC-3 | Dolby Inc. | 1992 | 电影 |
| MP3 | MPEG | 1993 | 各个领域(旧),大部分被AAC替代 |
网络视频服务平台对比
目前网络音视频服务主要有2种,一种就是直播平台,比如网络电视台、各种直播APP等,还有就是点播平台,可以根据用户的需要播放相应的视频节目,比如视频网站等。
其中直播平台主要架构就是RTMP+FLV+H.264+AAC这个技术方案,而点播平台一般都是HTTP+FLV+H.264+AAC这个架构,这些知识点到后面更深入的学习我们将进一步了解。
总结
这篇文章主要就是大概介绍一些关于音视频的基础和常见名称,有个印象即可,后面将更多的分析。
最后给大家推荐一些学习资料:
非常全面的视频学习资料:点这里
边栏推荐
- 产业互联网时代,并不存在真正意义上的中心
- BSV上的委托合约(3)
- Commission contract on BSV
- 阿里,腾讯,百度软件测试工程师推荐——软件测试模型之瀑布模型
- 【第 02 章 基于形态学的权重自适应图像去噪技术-全套系统MATLAB智能驾驶深度学习】
- NOIP 提高组 初赛 三、问题求解 习题集NOIP1995-NOIP2018
- 第 03 章 基于多尺度形态学提取眼前节组织-全套系统MATLAB智能驾驶深度学习
- 第 08 章 基于知识库的手写体数字识别MATLAB深度学习应用实战
- Curl requests at the server command line
- 亚马逊测评浏览器,亚马逊测评风控核心知识点
猜你喜欢

测试用例设计方法——因果图法
![[number theory] leetcode1010 Pairs of Songs With Total Durations Divisible by 60](/img/cc/ca70945b1bb2f57093bbae721ca635.png)
[number theory] leetcode1010 Pairs of Songs With Total Durations Divisible by 60

Function test - Introduction to MySQL database

第 25 章 基于小波变换的数字水印技术

SQL operation: with expression and its application

【第 04 章 基于Hough变化的答题卡识别】

【第 26 章 基于最小误差法和区域生长的医学影响分割系统--matlab深度学习实战GUI项目】

Brief introduction to jpom: simple and light low intrusive online construction, automatic deployment, daily operation and maintenance, and project monitoring software

打造跨境电商成功范式:亚马逊云科技助力卖家布局下一个增长点

Divide the list into boxes and draw a histogram through pyechart
随机推荐
【第 20 章 基于帧间差法进行视频目标检测--MATLAB软件深度学习应用】
Amazon evaluation browser, core knowledge points of Amazon evaluation risk control
【第 13 章 基于霍夫曼图像压缩重建--Matlab深度学习实战图像处理应用】
Processing of the scenario of more or less delivery by suppliers in SAP mm import purchase business
heidisql 插入数据老是出错,怎么办
2011. variable value after operation
【第 10 章 基于不变矩的某网站数字验证码识别MATLAB深度学习实战应用案例】
数电期末笔记
打造跨境电商成功范式:亚马逊云科技助力卖家布局下一个增长点
亚马逊测评浏览器,亚马逊测评风控核心知识点
全行业数字化转型加速,到底什么存储会更吃香?
Localdatetime format time
Packet capturing tool: Fiddler, a necessary skill for Software Test Engineer
Apache Doris实时数据分析保姆级使用教程
pyechart 绘制词云图
Winform项目控制台调试方式
LocalDateTime格式化时间
"Good morning, good afternoon, good night" game jam
acwing 835. Trie字符串统计
MySql DUMP 自动备份数据库 Shell 脚本