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