本课程主要从
- 音视频采集
- 音视频编码
- 音视频协议封装传输
- 音视频协议解封装
- 音视频解码
- 音视频播放
关于Jessibuca
- 官网地址:jessibuca.com
- Demo: Demo
- Doc:Doc
- Github地址:Github
关于JessibucaPro
- 地址:JessibucaPro
- Demo: Demo
- AI:AI
- 插件:插件
第五章:音视频解码
音视频的解码主要是将音频(aac/g711/mp3/opus)解码成裸的音频pcm格式的数据,视频(h264/h265)解码成yuv数据。
音频
音频的主要格式有:aac、g711、mp3、opus
aac
AAC 是新一代的音频有损压缩技术,音频文件格式有 ADIF 和 ADTS:
ADIF
Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。
ADTS
Audio Data Transport Stream。是 AAC 音频的传输流格式。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。
总的来说,ADTS 可以在任意帧解码,也就是说它每一帧都有头信息。ADIF 只有一个统一的头,所以必须得到所有的数据后解码。
解码
在web端 ,如果想要解码aac格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将aac格式的数据解码成pcm数据。
web端播放
可以通过audio标签来播放aac in mp4格式的文件。
<video src="./test.mp4"></video>
g711a/u
解码
在web端 ,如果想要解码g711a/u格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将g711a/u格式的数据解码成pcm数据。
播放
目前web端不支持播放opus格式的音频。
mp3
解码
在web端 ,如果想要解码mp3格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将mp3格式的数据解码成pcm数据。
web端播放
可以通过audio标签来播放mp3格式的文件。
<audio src="./test.mp3"></audio>
opus
解码
在web端 ,如果想要解码opus格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将opus格式的数据解码成pcm数据。
web端播放
目前web端不支持播放opus格式的音频。
视频
视频的主要格式有:h264、h265
h264
解码
在web端 ,如果想要解码h264格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将h264格式的数据解码成yuv数据。
web端播放
可以通过video标签来播放 H.264 and MP3 in MP4或者H.264 and AAC in MP4格式的文件。
<video src="./test.mp4"></video>
h265
解码
在web端 ,如果想要解码h265格式的数据,需要借助ffmpeg 和webassembly 技术将c/c++的代码编译成.wasm文件,来将h265格式的数据解码成yuv数据。
web端播放
可以通过video标签来播放 H.265 and MP3 in MP4或者H.265 and AAC in MP4格式的文件。
<video src="./test.mp4"></video>
h265 格式视频需要硬件支持