在 ASP.Net 中,我使用 FFMPEG 将 Flash 媒体服务器上的 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
这些工具(FFMEG/SoX)是根据我最好的研究选择的,但不是必需的。任何可行的解决方案都将允许 ASP.Net 服务输入两个 FMS flv,并使用开源或免费工具创建组合 MP3。
编辑:
我能够使用delay
SOX 中的开关来抵消文件。
sox -M student.wav teacher.wav combined.mp3 delay 2.8
如果有人有比组合 FFMPEG/SOX 解决方案更好的方法,我会留下这个问题。