第二章 音视频-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 结构体的数据格式取决于所表示的音视频帧的内容和编解码后的数据格式。

相关推荐
芯橦31 分钟前
【瑞昱RTL8763E】音频
单片机·嵌入式硬件·mcu·物联网·音视频·visual studio code·智能手表
9527华安2 小时前
FPGA实现PCIE视频采集转HDMI输出,基于XDMA中断架构,提供3套工程源码和技术支持
fpga开发·音视频·pcie·xdma·ov5640·hdmi
yunhuibin4 小时前
ffmpeg面向对象——拉流协议匹配机制探索
学习·ffmpeg
speop5 小时前
【笔记】I/O总结王道强化视频笔记
笔记·音视频
cuijiecheng201810 小时前
音视频入门基础:FLV专题(13)——FFmpeg源码中,解析任意Type值的SCRIPTDATAVALUE类型的实现
ffmpeg·音视频
Envyᥫᩣ11 小时前
《ASP.NET Web Forms 实现视频点赞功能的完整示例》
前端·asp.net·音视频·视频点赞
HJ_SDK18 小时前
探索私有化聊天软件:即时通讯与音视频技术的结合
音视频
jndingxin1 天前
OpenCV视频I/O(8)视频采集类VideoCapture之从视频源中读取一帧图像函数read()的使用
人工智能·opencv·音视频
SEU-WYL1 天前
基于深度学习的视频生成
人工智能·深度学习·音视频
小神.Chen1 天前
YouTube音视频合并批处理基于 FFmpeg的
ffmpeg·音视频