2013-03-18 2 views
5

Мы стремимся уменьшить время выполнения сегментации/кодирования с wav до aac, сегментированного для потоковой передачи HTTP, используя ffmpeg для сегментации и создания плейлиста m3u8, используя все ядра нашей машины ,Параллельное кодирование сегментов только аудио в ffmpeg

В одном из экспериментов у меня был ffmpeg, который непосредственно сегментировал wav-файл в aac с помощью libfdk_aac, однако для завершения потребовалось довольно много времени.

Во втором эксперименте у меня был сегмент ffmpeg wav-файл как есть (wav), который был довольно быстрым (< 1 секунда на наших машинах), затем используйте GNU для повторного выполнения ffmpeg, вручную изменил файл .m3u8 без изменения продолжительности. Это выполнялось гораздо быстрее, однако при прослушивании выходного аудиосигнала можно было слышать пробелы «тишины».

Я изначально попытался использовать второй сценарий, используя mp3, и результат был все тот же. Хотя я читал, что хромой добавляет отступы во время кодирования (http://scruss.com/blog/2012/02/21/generational-loss-in-mp3-re-encoding/), означает ли это, что libfdk_aac также добавляет дополнение во время кодирования?

Может быть, это одна связан с этим вопросом: How can I encode and segment audio files without having gaps (or audio pops) between segments when I reconstruct it?

+0

Правильно ли я понимаю: вы сегментировали wav и затем кодировали каждый сегмент отдельно? Может ли быть, что выходные ts не соответствуют к правилам временного штампа - то есть к первой отметке времени каждого сегмента = последней отметке времени предыдущего сегмента + интервал кадра? – NiRR

+0

@NiRR прямо на месте ** вздох ** – NeverFall

ответ

3

Согласно section 4 of HLS Specification, мы имеем следующее:

Транспортного поток или аудио элементарного сегмент потока должен быть продолжения закодированных СМИ в конец сегмента с предыдущим порядковым номером , где значения в непрерывном ряду, такие как временные метки и непрерывные счетчики, продолжают бесперебойно

Различия «Безмолвие» 99,99% раз связаны с неправильными счетчиками/разрывами. Поскольку вы написали, что вы вручную изменили файл .m3u8, не меняя их продолжительности. Я выводил, что вы пытались отрезать аудио самостоятельно. Это невозможно.

Потоки HLS не могут иметь параллелизуемое создание из-за этих счетчиков. Они должны следовать последовательности [MPEG2-TS :-(]. Лучше получить более быстрый процессор.

+0

Это именно то, что я сделал ... он выглядит как получение более быстрого процессора - единственное решение на данный момент: - /. Однако мы переключились на другой подход. – NeverFall