-
AVStream(媒体流):
- 作用:
AVStream
结构体表示音频或视频媒体流,包含了该媒体流的详细信息,如编解码器类型、时基(时间基准)、帧率、分辨率等。 - 使用场景: 在解封装(Demuxing)和解码(Decoding)过程中,
AVStream
用于存储和传递媒体流的信息,以便正确解封装和解码。
- 作用:
-
AVInputFormat(输入封装格式):
- 作用:
AVInputFormat
结构体表示输入媒体流的封装格式,包含了封装格式的相关信息,如文件扩展名、解封装器的函数指针等。 - 使用场景: 在 FFmpeg 中,输入封装格式用于打开媒体文件,并将媒体文件解封装成原始的音视频流,以供后续解码或处理。
AVInputFormat
通常用于描述一个媒体文件的封装格式。
- 作用:
-
AVOutputFormat(输出封装格式):
- 作用:
AVOutputFormat
结构体表示输出媒体流的封装格式,包含了封装格式的相关信息,如文件扩展名、编封装器的函数指针等。 - 使用场景: 在 FFmpeg 中,输出封装格式用于将解码后的音视频数据封装为一个新的媒体文件。
AVOutputFormat
通常用于描述生成的媒体文件的封装格式。
- 作用:
在实际使用中,AVStream
通常是通过 AVFormatContext
结构体的 streams
数组获取的,它存储了一个媒体文件中所有的媒体流。AVInputFormat
和 AVOutputFormat
通常通过 FFmpeg 中的函数(如 av_find_input_format
和 av_guess_format
)来获取。
总的来说,AVStream
表示媒体流的详细信息,而 AVInputFormat
和 AVOutputFormat
表示输入和输出的媒体文件的封装格式信息。在音视频处理中,这些结构体协同工作,确保正确地解封装、解码和封装。