簡體   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