c++ - 使用 avformat_open_input 打开原始音频

标签 c++ audio ffmpeg libavformat

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

我试图通过自己的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。

    关于c++ - 使用 avformat_open_input 打开原始音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709378/

    相关文章:

    c++ - 给定 vector 和角度的 Ogre 相机方向

    c++ - main() 首先在这里定义

    c++ - 从大型 github 项目链接共享库

    c++ - 是否有一个用于ifstream和ofstream的宏,或一种缩短ifstream/ofstream的方法?

    javascript - 如何使用 Jquery 制作防止右键单击将目标另存为...的 .MP3 音频播放器

    php - 使用php播放asx或pls格式

    matlab - 如何获得函数内的语句以随机选择的顺序执行?

    python - 将使用 FFmpeg 截取的屏幕截图保存到 Amazon S3 存储桶中

    ffmpeg - CMAKE ExternalProject_Add 添加不需要的双引号

    ffmpeg - 每30秒就是剪一个视频3s