使用 avformat_open_input 打开原始音频

Open raw audio with avformat_open_input

我想使用 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。