我将这个绑定库用于FFMpeg:https://github.com/gperozzo/XamarinAndroidFFmpeg
我的目标是混合两个音频文件。
String s = "-i " + "test.wav" + " -i " + test2.mp3 + " -filter_complex amix=inputs=2:duration=first " + "result.mp3";
Device.BeginInvokeOnMainThread(async () =>
{
await FFMpeg.Xamarin.FFmpegLibrary.Run(Forms.Context, s);
});
所以我有两个输入文件:一个是.mp3,另一个是.wav。
我还尝试了next命令:
String s= "-i "+ "test.wav" +" -i "+ "test2.mp3" + " -filter_complex [0:0][1:0]concat=n=2:v=0:a=1[out] -map [out] " + "result.mp3";
String s = "-i " + "test.wav" + " -i " + "test2.mp3" + " -filter_complex [0:a][1:a]amerge=inputs=2[aout] -map [aout] -ac 2 " + "result.mp3";
1)我可以混合两种不同的音频格式(在我的例子中是.mp3和.wav),或者它们应该是等价的吗? 2)正确的混合命令行是什么?
提前谢谢。
发布于 2018-06-16 04:26:03
1)我可以混合两种不同的音频格式(在我的例子中是.mp3和.wav)吗?
是。输入格式并不重要,因为它将在馈送到滤波器之前完全解码为PCM音频,但您必须了解如何混合各种输入通道以创建输出的通道布局。有关更多信息,请阅读有关amerge和amix过滤器的文档。
2)混合的正确命令行是什么?
您使用amerge的命令应该有效:
ffmpeg -i test.wav -i test2.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2 result.mp3
或者使用amix:
ffmpeg -i test.wav -i test2.mp3 -filter_complex "[0:a][1:a]amix=inputs=2:duration=shortest[aout]" -map "[aout]" result.mp3
https://stackoverflow.com/questions/50873573
复制相似问题