Я работаю над веб-приложением, которое требует потоковой передачи и синхронизации нескольких аудиофайлов. Для этого я использую API веб-аудио по тегам аудио HTML5 из-за важности синхронизации звука.
В настоящее время я использую функцию сегментации FFMPEG для кодирования и сегментации аудиофайлов на более мелкие фрагменты. Причина, по которой я сегментирую их, заключается в том, что я могу начать потоковую передачу с середины файла, а не с начала (иначе я бы просто разделил файлы с помощью разделения UNIX, , как показано здесь. Проблема в том, что когда я соединяю аудио сегменты вместе, Я слышу всплывающий звук между сегментами.
Если я кодирую сегменты с использованием кодировки PCM (pcm_s24le) в файле .wav, воспроизведение будет плавным, что наводит меня на мысль, что кодировщик заполняет либо начало, либо конец файла. Поскольку я буду иметь дело с множеством разных аудиофайлов, использование .wav потребует слишком большой полосы пропускания.
Я ищу одно из следующих решений проблемы:
- Как я могу легко сегментировать закодированные аудиофайлы,
- Как я могу заставить кодировщик НЕ заполнять аудиокадры с помощью ffmpeg (или другой утилиты) или
- Как лучше транслировать звук (начиная с произвольного времени трека) без использования тега audio?
Системная информация
- Пользовательский сервер node.js
- После загрузки аудиофайла node.js передает данные в кодировщик ffmpeg.
- Необходимо использовать кодировку, поддерживаемую HTML5 Web Audio API
- Сервер отправляет звуковые фрагменты по одному через сокет WebSockets
Заранее спасибо. Я старался быть как можно более ясным, но если вам нужны разъяснения, я буду более чем готов их предоставить.