我正在使用FFMPEG从Flash Media Server上的FLV文件中提取音频轨道并将其转换为WAV格式,以便后续使用SOX进行混合。问题在于,我必须将其中一个音频轨道向后偏移几秒钟,以使它们同步。每个文件都是学生和老师之间对话的一半。例如,teacher.wav可能需要在student.wav之后3.3秒开始。我只能找到让两个音轨同时开始混合的SOX方法。
我目前的最佳尝试是:
从ASP.Net开始,我使用FFMPEG将Flash Media Server上的FLV文件转换为WAV文件,然后使用SOX进行混合。由于我认为无法将仅包含音频的轨道组合成单个结果文件,因此我放弃了仅使用FFMPEG进行混合的尝试。但我很希望自己是错的。
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。
编辑:
我能够使用 SOX 中的 delay
开关来偏移文件。
sox -M student.wav teacher.wav combined.mp3 delay 2.8
我将保留这个问题,以防有人提出比使用FFMPEG/SOX组合方案更好的解决方案。