我尝试在 FFmpeg 中捕获 48 kHz 的音频,代码如下:
AVInputFormat* ifmt = av_find_input_format("dshow");
CHECK_POINTER_RETURN_VALUE(ifmt, false)
pFmtCtx = avformat_alloc_context();
CHECK_POINTER_RETURN_VALUE(pFmtCtx, false)
AVDictionary *param = nullptr;
std::string sr = std::to_string(48000);
av_dict_set(¶m, "sample_rate",sr.c_str(), 0);
int error = avformat_open_input(&pFmtCtx, ffName.c_str(), ifmt, ¶m);
if (error != 0) {
char buf[2014];
av_strerror(error, buf, 1024);
LOG(ERROR)<<"open audio device failed,err is "<<buf;
return false;
}
但是“avformat_open_input”返回失败,err 显示“I/O 错误”,如果采样率为 44100,则一切正常。
现在 FFmpeg 不支持捕获 48 kHz 音频了吗?