gpt4 book ai didi

ffmpeg 如何使用 AV_SAMPLE_FMT_FLT 从 AVFrame 获取 PCM float

转载 作者:行者123 更新时间:2023-12-04 23:21:40 24 4
gpt4 key购买 nike

我有一个通过解码器获得的 AVFrame,其格式为 AVSampleFormat::AV_SAMPLE_FMT_FLT .我的问题是我想转换存储在里面的数据

avFrame->data; // returns uint8_t *
到 [-1, +1] 之间的浮点数组。我看到 avFrame->data;返回 uint8_t *我如何使用它来获取音频每个 channel 的浮点 pcm 数据?
我尝试了以下方法:
auto *floatArrPtr = (float *)(avResampledDecFrame->data[0]);

for (int i = 0; i < avResampledDecFrame->nb_samples; i++) {
// TODO: store interleaved floats somewhere
floatArrPtr++;
}
但我不确定这是否是获取数据的正确方法

最佳答案

auto *floatArrPtr = (float *)(avResampledDecFrame->data[0]);

for (int i = 0; i < avResampledDecFrame->nb_samples * avResampledDecFrame->channels; i++) {
// TODO: do as you please with data
floatArrPtr[i];
}

关于ffmpeg 如何使用 AV_SAMPLE_FMT_FLT 从 AVFrame 获取 PCM float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64937604/

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