提示💡
MP4、FLV、TS → 音视频或字幕 ES 流(NALU)
引言
解封装是整个播放器当中的重要环节,它起到的承上启下的关键作用。当拿到一个封装格式的文件时,播放器要如何解析并识别?后续文章将为你揭晓答案!
mux
及 demux 基本介绍
mux
为 Multiplex
的缩写,封装之意,而 demux 即为解封。
通过 muxing(混流),可以将视频流、音频流甚至是字幕流合并到一个单独的文件中,作为一个信号进行传输。等传输完毕,就可以通过 demux(分离) 将里面的视频、音频或字幕分解出来各自进行解码和播放。
在理解demux之前,需要知道一些基本知识:
ES(Elementary Stream):单独的一路视频、一条音频、一个字幕或者单个的附加数据。一般来说,多媒体文件有一个视频 ES、一个音频 ES 和一个字幕 ES(字幕并不是所有视频都有)。一般 ES 流是以 NAL 的(想了解 NAL 不要着急,后续解码章节将为你解释)形式存在的。
为什么要demux
demux是视频播放中的重要流程。
多媒体(Multimedia)是多种媒体的综合,一般包括文本,声音和图像等多种媒体形式。同样多媒体文件是一个将多种媒体封装在一起的复杂文件,在多媒体文件开始播放的时候,需要把图像、声音、字幕(可能不存在)等基本流分离出来,这个分离的行为和过程就是解封装(demux)。
而分离出来的各个基本流(ES)分别送给视频解码器、音频解码器等解码后才能得到图像声音。
Demux发生的过程:
demux的使用
宏观角度上说,解封装之后获得图像、声音、字幕(可能不存在)等基本流,而后基本流可以通过解码器进行解码。
demux图解:
总结
无论是何种播放器,需要播放多媒体文件时,必须先对容器封装格式进行解封装(demux),解封后解码才可播放。
想了解更多关于解码的知识,可以学习下一章解码,下一章将带你进入解码世界