在 SOX 中使用偏移混合音轨

Lar*_*mie 5 audio flv mp3 ffmpeg sox

在 ASP.Net 中,我使用 FFMPEG 将 Flash Media Server 上的 flv 文件转换为需要混合到单个 MP3 文件中的 wav。我最初完全使用 FFMPEG 进行了尝试,但最终放弃了混合步骤,因为我认为不可能将仅音频轨道合并到单个结果文件中。我愿意犯错。

我现在使用 FFMPEG 访问 FLV 文件并将音轨提取到 wav,以便SOX可以混合它们。问题是我必须将其中一个音轨偏移几秒钟,以便它们同步。每个文件都是学生和老师之间对话的一半。例如,teacher.wav 可能需要在 student.wav 之后 3.3 秒开始。我只能弄清楚如何将两个曲目同时开始的 SOX 文件混合在一起。

在这一点上,我最好的尝试是:

ffmpeg -y -i rtmp://server/appName/instance/student.flv -ac 1 student.wav 
ffmpeg -y -i rtmp://server/appName/instance/teacher.flv -ac 1 teacher.wav 

sox -m student.wav teacher.wav combined.mp3 splice 3.3
Run Code Online (Sandbox Code Playgroud)

这些工具 (FFMEG/SoX) 是根据我的最佳研究选择的,但不是必需的。任何可行的解决方案都将允许 ASP.Net 服务输入两个 FMS flv 并使用开源或免费工具创建组合的 MP3。

编辑: 我能够使用delaySOX 中的开关来抵消文件。

sox -M student.wav teacher.wav combined.mp3 delay 2.8
Run Code Online (Sandbox Code Playgroud)

如果有人有比 FFMPEG/SOX 组合解决方案更好的方法,我将问题悬而未决。

bla*_*lah 1

就其价值而言,这应该可以通过-itsoffset和 的amix组合来实现,但是 的错误-itsoffset阻止了它。 如果它有效,该命令将如下所示:

ffmpeg -i student.flv -itsoffset 3.3 -i teacher.flv -vn -filter_complex amix out.mp3
Run Code Online (Sandbox Code Playgroud)