gpt4 book ai didi

c - FFmpeg AVFrame 音频数据修改

转载 作者:太空狗 更新时间:2023-10-29 15:05:25 42 4
gpt4 key购买 nike

我想弄清楚 FFmpeg 如何在音频解码后将数据保存在 AVFrame 中。

基本上,如果我在 AVFrame->data[] 数组中打印数据,我会得到一些无符号的 8 位整数,它们是原始格式的音频。

据我对 FFmpeg doxygen 的了解,数据格式以 enum AVSampleFormat 表示,主要有 2 类:交错和平面。在interleaved类型中,数据全部保存在AVFrame->data数组的第一行,大小为AVFrame->linesize[0],而在planar类型中,每个音频文件的 channel 保存在 AVFrame->data 数组的单独一行中,数组的大小为 AVFrame->linesize[0]

是否有指南/教程解释数组中的数字对每种格式的含义?

最佳答案

每个 data 数组(平面)中的值都是根据指​​定格式的实际音频样本。例如。如果格式为 AV_SAMPLE_FMT_S16P,则意味着 data 数组实际上是 int16_t PCM 数据的数组。如果我们处理单声道信号 - 只有 data[0] 是有效的,如果是立体声 - data[0]data[1] 有效,依此类推。

我不确定是否有任何指南可以帮助您解释每个特定案例,但无论如何,所描述的方法都非常简单且易于理解。你应该稍微玩一下它,事情就会变得清晰起来。

关于c - FFmpeg AVFrame 音频数据修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330413/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com