目录
1、常见的视频压缩格式有Xvid,H264,MPEG1,MPEG2。
2.1 在使用FFmpeg API之前,需要先注册API,然后才能使用API。当然,新版本的库不需要再调用下面的方法。
2.3 查找音视频流信息,通过下面的接口与AVFormatContext中建立输入文件对应的流信息。
2.4 读取音视频流,采用av_read_frame来读取数据包,读出来的数据存储在AVPacket中,确定其为音频、视频、字幕数据,最后解码,或者存储。
一、背景知识
在数字媒体的世界里,音视频文件的编码和封装格式是确保媒体能够被正确存储、传输和播放的关键。本文将详细介绍音视频编码和封装格式,帮助你理解它们在媒体处理中的作用和重要性。
二、常见的视频封装标准
封装格式定义了如何存储音频、视频和其他数据(如字幕)的结构。封装格式不压缩数据,但它们包含的编码数据可能是压缩的。常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等⽂件其实只能算是⼀种封装标准。
-
AVI (Audio Video Interleave): 微软开发的早期视频封装格式,兼容性良好,但对于现代高清视频支持不足。
-
MP4 (MPEG-4 Part 14): 最流行的封装格式之一,可以包含H.264或H.265编码的视频和AAC或MP3编码的音频。
-
MKV (Matroska Video): 一种开源封装格式,支持多种音频和视频编码,非常适合于包含丰富媒体内容的复杂项目。
-
MOV: 由苹果公司开发,是QuickTime媒体播放器的默认格式,与MP4类似,但优化了苹果设备。
-
WMV (Windows Media Video): 微软开发的封装格式,常与Windows Media Audio(WMA)结合使用。
二、常见视频封装的组成
⼀个完整的视频⽂件是由⾳频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是⾳频编码格式。
1、音频编码
(1).MP3 (MPEG Audio Layer III): 最普遍的音频压缩格式,以较小的文件大小提供合理的声音质量。
(2).AAC (Advanced Audio Coding): 与MP3相比,它提供更好的音质和压缩率,被广泛用于Apple设备。
(3).WAV (Waveform Audio File Format): 一种未压缩的音频格式,提供高质量的音频数据,但文件较大。
(4).FLAC (Free Lossless Audio Codec): 无损压缩的音频格式,可以在不损失任何数据的情况下减小文件大小。
(5).OGG (Ogg Vorbis): 一种开源的音频压缩格式,通常提供比MP3更好的压缩率。
2、视频编码
(1).H.264/AVC (Advanced Video Coding): 目前最常用的视频压缩标准,提供了良好的压缩率和高质量的视频。
(2).H.265/HEVC (High Efficiency Video Coding): H.264的继承者,提供更高的数据压缩率,对4K和8K视频支持更好。
(3).VP9: 由Google开发,是一种开源视频编码格式,主要用于Web视频。
(4).AV1: 最新的开源视频编码格式,由Allia