繁体   English   中英

Libav API:过滤+转导

[英]Libav API: Filtering + Transconding

我需要处理几个音频文件(MP3 和 WAV)的列表并将它们混合以生成要包含到 mp4 文件中的音频 stream(AAC 编解码器/fltp)(使用 Libav API)。

目前,我可以混合输入文件列表以使用过滤器成功生成 WAV 文件,但是当我尝试创建 MP4 文件时,我总是收到此错误消息:“资源暂时不可用”(当然,我尝试了几种音频编解码器/fmt 值使其在没有运气的情况下工作)。

我的实验性实施的基本版本就在这里

我正在检查 FFMPEG 源代码附带的AAC 转码示例,它完美地提供了我需要的结果。

(我在这个例子中遇到的唯一问题是它不包含任何过滤过程。我试图扩展它但我以史诗般的方式失败了......此外,代码的工作流程看起来很混乱)

所以,这是我的问题:我可以尝试使用过滤器获得与 transcode_aac 相同的结果吗? 我想保留已经使用过滤器实现的混合功能,而不必在我的工作流程中进行重大更改以生成 MP4 文件的音频 stream。 欢迎任何想法或建议!

PS:我正在考虑使用resample 过滤器来解决我的问题,但文档说:“它并不意味着可以直接使用”。 所以,我想知道:是否有任何干净简单的方法可以将其作为我工作流程的一部分来实施?

经过大量研究,我能找到的最佳方法是:

  • 创建一个方法来使用过滤器混合您需要的所有音频文件,然后使用 WAV 格式导出 output 文件(使用问题帖子中的audio_mixer 源代码)。
  • 创建一个方法,使用问题帖子中描述的AAC 转码示例将上一步中生成的 WAV 文件转码为 MP4 文件。

PS:我知道将转码过程作为过滤器包括在内将是一个非常奇特的解决方案,但我找不到任何关于如何做到这一点的参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM