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

相关推荐
MediaTea28 分钟前
Pr 视频过渡:沉浸式视频 - VR 色度泄漏
音视频·vr
LNTON羚通40 分钟前
算法定制LiteAIServer摄像机实时接入分析平台烟火检测算法的主要功能
音视频·视频监控
EasyCVR6 小时前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
简鹿办公7 小时前
使用 FFmpeg 进行音视频转换的相关命令行参数解释
ffmpeg·简鹿视频格式转换器·ffmpeg视频转换
冷凝女子8 小时前
【QT】海康视频及openCv抓拍正脸接口
qt·opencv·音视频·海康
安步当歌9 小时前
【WebRTC】视频编码链路中各个类的简单分析——VideoStreamEncoder
音视频·webrtc·视频编解码·video-codec
顾北川_野9 小时前
Android CALL关于电话音频和紧急电话设置和获取
android·音视频
顶呱呱程序9 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
EasyCVR11 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min11 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders