使用avformat_Open_input打开原始音频

Open raw audio with avformat_open_input

本文关键字:原始 音频 input avformat Open 使用      更新时间:2023-10-16

我想使用avformat_open_input()raw(LINEAR16,48000khz)音频文件填充ffmpeg.formatCtx。

我试着通过自己的AVInputFormat,但没有成功。

这就是我过去打开文件的方式。

std::string fn = "file:" + this->file.path;
int r = avformat_open_input(&ffmpeg.formatCtx, fn.c_str(), nullptr, nullptr);

尝试使用av_find_input_format((查找所需的格式,但未成功为0。

在没有输入格式的情况下,ffmpeg将文件确定为mp3

有什么方便的方法来处理这种情况吗

在avformat_open_input中完成的主要任务是:

  • 为AVFormatContext分配内存并填充AVFormatContext
  • 尝试猜测输入文件的格式,输入文件的编解码器参数

因为您只有原始音频数据,所以需要为AVFormatContext分配内存,并自行填充AVFormatContext。

否则,原始音频数据不需要解复用和解码,我认为您不应该使用avformat_open_input。