Xamarin Android 将音频文件与 FFMpeg 合并
Xamarin Android merge audio files with FFMpeg
我正在为 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);
});
所以我有 2 个输入文件:一个是 .mp3,另一个是 .wav。
我也尝试了下一个命令:
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) 正确的混合命令行是什么?
提前致谢。
1) Could I mix two different audio formats (in my case .mp3 & .wav)?
是的。输入格式无关紧要,因为它会在馈送到过滤器之前完全解码为 PCM 音频,但您必须了解各种输入通道将如何混合以创建输出通道布局。阅读有关 amerge and amix 过滤器的文档以获取更多信息。
2) What is the correct command line for the mixing?
您使用 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
我正在为 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);
});
所以我有 2 个输入文件:一个是 .mp3,另一个是 .wav。
我也尝试了下一个命令:
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) 正确的混合命令行是什么?
提前致谢。
1) Could I mix two different audio formats (in my case .mp3 & .wav)?
是的。输入格式无关紧要,因为它会在馈送到过滤器之前完全解码为 PCM 音频,但您必须了解各种输入通道将如何混合以创建输出通道布局。阅读有关 amerge and amix 过滤器的文档以获取更多信息。
2) What is the correct command line for the mixing?
您使用 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