在我的情况下,我想使用ffmpeg-android git repo为android编译ffmpeg。要了解我的问题,您应该了解构建ffmpeg的基础知识。
我只使用音频文件,但这个问题可能会给你在其他问题的情况下开始。
我修改了FFmpeg的./configure
命令以避免使用gpl并使用(重要)--disable-everything
。
这会禁用所有内容。我需要覆盖两个音频文件。
但我遇到了一些问题。
因为我必须花几天时间寻找我必须结合的许多解决方案,所以我开始了这个Q& A.
答案 0 :(得分:1)
我添加到./configure:
--enable-filter=amix, aresample
。
规则1
您应该了解最需要的过滤器。在我的情况下,我也需要aresample
来编写输出文件。
<强>规则2 强>
确保您要使用的格式。
在我的情况下,我想处理和/或输出MP3和aac文件。
通过在互联网上搜索您的意愿来告知自己。
好的搜索字词:ffmpeg {aac, mp3, etc.} encoder
.||. decoder
.||. muxer
.||. demuxer
对于aac,我需要--enable-muxer=adts
和--enable-dexmuxer=adts,aac
以及--enable-bsf=adtstoasc
<强>规则3 强>
启用给定输入文件的协议(uri方案)。如果要使用/media/audios/myAudio.mp3中的输入,则必须添加文件协议:--enable-protocol=file
规则4
Addititional libraries:
对于mp3文件,使用--enable-libmp3lame
在互联网上搜索更多信息。
规则5
如果要将低质量音频文件与高质量音频文件组合在一起,输出可能会变得与低质量音频文件一样糟糕。您应该在使用ffmpeg时指定比特率。在互联网上搜索更多信息。
规则6
搜索互联网。您可能无法在几秒钟内找到解决方案,但如果您不停止,您可能会找到解决方案。检查编译控制台输出,检查您想要的每个解码器和编码器是否真的存在。 FFmpeg提供此信息。也许您使用了错误的名称来获得与编码器名称不同的文件格式。或者编码器的名称不是解码器。
规则7 您可以通过调用
获取所有支持的编码器和解码器以及复用器等的列表 ./configure --list-{what you want to list in plural}
示例:./confige --list-demuxers