在 ffmpeg 文档中
AVFrame
它说
此结构描述解码(原始)音频或视频数据。
对于音频数据,
AVFrame
中的样本采用什么格式?它们基本上看起来像原始 LPCM 样本吗?如果将音频数据解码为 AVFrame
(即通过 avcodec_send_packet() ... avcodec_receive_frame()
),无论数据包中最初采用什么编码(假设相同的采样率、采样格式等),数据包的音频数据看起来是否相同)?
基于问题解码后的音频数据如何存储在ffmpeg AVFrame中?似乎是这样,但我想知道这是否与LPCM相同,无论音频数据之前采用什么编码?
额外问题:如果与 LPCM 相同,为什么要使用 PCM 编码器(例如“”pcm_f32le”)将帧数据编码为
AVPacket
s?内部数据看起来相同吗?只是为了顺序使用带有 AVPacket
的函数,例如 av_interleaved_write_frame()
理论上,它可以是音频解码器输出的任何内容,例如DSD,但 ffmpeg 原始音频预计将由其他组件(例如过滤器、编码器。
您将使用 PCM 编码器,因为输出 PCM 格式或字节顺序可能不同。