第二章 音视频-FFmpeg对应解析格式说明

第二章 音视频-FFmpeg对应解析格式说明

第一章 音视频-FFmpeg解码流程和对应结构参数意
第二章 音视频-FFmpeg对应解析格式说明
第三章 音视频-FFmpeg对应AVFrame解码处理思路和用途
第四章 音视频-FFmpeg实现播放器思维
第五章 音视频-FFmpeg实现播放器解封装、读AVPacket包
第六章 音视频-FFmpeg实现播放器解码和对应数据处理

音视频解码格式和容器格式

FFmpeg 支持广泛的音视频编解码器格式,包括但不限于以下几种常见的格式:

  1. 视频编解码器

    • H.264 / AVC
    • H.265 / HEVC
    • MPEG-2
    • MPEG-4 / DivX / Xvid
    • VP8 / VP9
    • AV1
    • Motion JPEG (MJPEG)
    • Apple ProRes
    • DNxHD / DNxHR
    • Theora
    • AVS
    • XDCAM
    • CineForm
    • 和许多其他专有和开放的视频编解码器。
  2. 音频编解码器

    • AAC
    • MP3
    • AC-3 / E-AC-3
    • Opus
    • Vorbis
    • FLAC
    • WMA
    • PCM
    • AMR
    • DTS
    • Apple Lossless
    • 和许多其他音频编解码器。
  3. 容器格式

    • MP4
    • MOV
    • AVI
    • MKV
    • FLV
    • MPEG-TS
    • WebM
    • WAV
    • OGG
    • 和许多其他常见和不常见的容器格式。

FFmpeg 还提供了许多过滤器和工具,可以对音视频数据进行处理、转码、过滤等操作。因此,FFmpeg 是一个功能强大且高度可定制的多媒体处理框架,能够满足各种不同的音视频处理需求。

AVFrame对应音视频格式

AVFrame 结构体中的数据格式取决于所表示的音视频帧的内容。在 FFmpeg 中,AVFrame 结构体中存储的数据通常是解码后的音视频帧数据,因此其数据格式取决于解码后的数据内容。

以下是一些常见的数据格式及其对应的存储方式:

视频帧数据格式

  1. YUV 格式

    • YUV420P:最常见的 YUV 格式之一,包括亮度(Y)和色度(U、V)三个平面,其中色度平面的采样率是亮度平面的四分之一。
    • YUV422P:与 YUV420P 类似,但色度平面的采样率是亮度平面的一半。
    • YUV444P:每个像素的亮度和色度分量都有独立的采样点,没有颜色抽样。
    • YUV410P、YUV411P:在垂直和水平方向上进行更多的颜色抽样,减少了色度分量的存储。
  2. RGB 格式

    • RGB24:每个像素使用 24 位(3 字节)表示,依次是红、绿、蓝三个分量,存储顺序通常是从左上角开始,从左到右、从上到下依次排列。
    • RGB32:与 RGB24 类似,但每个像素使用 32 位(4 字节)表示,通常最后一个字节用于填充 alpha 通道。
  3. 灰度图像

    • GRAY8:灰度图像,每个像素只有一个亮度分量,使用 8 位表示。
  4. 其他格式

    • BGR、BGRA:与 RGB 类似,但存储顺序颠倒,即蓝色分量在前。
    • ARGB、ABGR:与 RGB 类似,但带有 alpha 通道。

音频帧数据格式

  1. PCM(脉冲编码调制)

    • PCM 是最常见的音频数据格式之一,它直接表示原始音频采样值。PCM 格式的音频通常以帧为单位进行处理,每个帧包含多个采样点。
    • 常见的 PCM 格式包括:
      • AV_SAMPLE_FMT_U8:无符号 8 位整数。
      • AV_SAMPLE_FMT_S16:有符号 16 位整数。
      • AV_SAMPLE_FMT_S32:有符号 32 位整数。
      • AV_SAMPLE_FMT_FLT:单精度浮点数。
      • AV_SAMPLE_FMT_DBL:双精度浮点数。
  2. 压缩格式

    • AAC(Advanced Audio Coding)、MP3(MPEG-1/2 Audio Layer III)、Opus 等是常见的音频压缩格式,它们采用了各种压缩算法来减小音频数据的大小。
    • 这些格式通常在传输和存储时使用,可以减小带宽和存储空间的占用。
  3. 其他格式

    • AC-3(Dolby Digital)、DTS(Digital Theater Systems)、FLAC(Free Lossless Audio Codec)、Vorbis 等也是常见的音频格式,它们在特定的应用场景中有其优势。

AVFrame 结构体中的 data 数组存储了指向帧数据的指针,而 linesize 数组存储了每个数据平面的行大小。具体的数据格式和存储方式可以通过 format 字段来确定,它表示帧数据的像素格式或采样格式。常见的像素格式包括 AV_PIX_FMT_YUV420PAV_PIX_FMT_RGB24 等,而常见的采样格式包括 AV_SAMPLE_FMT_S16AV_SAMPLE_FMT_FLT 等。

总之,AVFrame 结构体的数据格式取决于所表示的音视频帧的内容和编解码后的数据格式。

相关推荐
毕设做完了吗?10 天前
视频相似度检测算法(带课设报告)
人工智能·算法·机器学习·音视频
语音之家10 天前
2025年CCF先进音频技术竞赛
人工智能·音视频
CJ点10 天前
FFmpeg命令全解析:三步完成视频合并、精准裁剪、英伟达显卡加速
ffmpeg·显卡·合并·amd·英伟达·裁剪
音视频牛哥10 天前
音视频全链路开发实践:基于SmartMediakit的架构设计与应用实战
音视频·大牛直播sdk·rtsp播放器·rtmp播放器·安卓rtmp播放器·rtmpplayer·linux rtsp
十年编程老舅10 天前
音视频流媒体高级开发-学习路线
ffmpeg·音视频·音视频开发·音视频编解码·c++音视频·流媒体服务器·音视频学习路线
weisian15110 天前
一款强大的音视频处理工具--FFmpeg-2--常用音频处理示例
音视频·mpeg-2
9527华安10 天前
国产安路FPGA实现MIPI视频解码转HDMI输出,基于SC500摄像头,提供TD工程源码和技术支持
fpga开发·音视频·csi·mipi·dphy·安路fpga·sc500
niech_cn10 天前
微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}
微信小程序·小程序·音视频
扫地僧98510 天前
免费1000套编程教学视频资料视频(涉及Java、python、C C++、R语言、PHP C# HTML GO)
java·c++·音视频
dualven_in_csdn10 天前
创世新布控球 国标
音视频