Из ASP.Net я использую FFMPEG для преобразования FLV-файлов на Flash Media Server в WAV-файлы, которые мне нужно смешать в один MP3-файл.Первоначально я попытался сделать это полностью с помощью FFMPEG, но в итоге отказался от шага микширования, потому что не считаю возможным объединить только аудиодорожки в один файл результатов.Я бы хотел ошибиться.
Сейчас я использую FFMPEG для доступа к файлам FLV и извлечения звуковой дорожки в wav, чтобы SOX мог их микшировать.Проблема в том, что я должен сместить одну из звуковых дорожек на несколько секунд, чтобы они синхронизировались.Каждый файл - это половина разговора между учеником и учителем.Например, teacher.wav может потребоваться начать через 3,3 секунды после student.wav.Я могу только выяснить, как смешивать файлы с 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 и создавать объединенный MP3-файл с использованием открытых или бесплатных инструментов.
РЕДАКТИРОВАТЬ: Мне удалось сместить файлыиспользуя переключатель delay
в SOX.
sox -M student.wav teacher.wav combined.mp3 delay 2.8
Я оставляю вопрос открытым, если у кого-то есть лучший подход, чем комбинированное решение FFMPEG / SOX.