繁体   English   中英

FFMPEG音频解码:从短到浮点样本缓冲区的高效转换

[英]FFMPEG audio decoding: efficient conversion from short to float sample buffer

我正在使用FFMPEG avcodec_decode_audio来解码各种类型的音频输入文件。 得到的样品是SHORT类型。

这些样本用另一个库处理,该库需要FLOAT输入格式的样本。 最后,为了回放(在Android上),我需要再次将FLOAT样本转换回SHORT:

short* inputSamples = ...;
float* tmpBuffer = new float[nrInputSamples];
for (int i=0; i<nrInputSamples; i++)
  tmpBuffer[i] = inputSamples[i]/32767.0f;

//process audio here

for (int i=0; i<nrInputSamples; i++)
  inputSamples[i] = tmpBuffer[i]*32767.0f;

有没有更有效的方法来执行此操作(例如强制ffmpeg将音频解码为FLOAT样本)?

问候,

使用ffmpeg库中包含的'swresample'库,它适用于此类情况。 您可以在其代码存储库中找到有关如何执行此操作的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM