Ищу Ogg / Opus - PullRequest
       59

Ищу Ogg / Opus

0 голосов
/ 18 октября 2018

У меня есть аудиофайлы ogg-opus, каждый из которых содержит одну дорожку (моно) и фиксированную частоту дискретизации (16 кГц).Я пытаюсь реализовать поиск по ним для потоковой передачи.Например, я хочу знать смещение байтов, чтобы частично загрузить файл (с диапазоном HTTP) и воспроизвести только первые 10 секунд, или, скажем, со второго 10 до второго 15. То есть мне нужно получить смещение байтов при любом заданном значении.временная позиция.

Есть ли способ сделать это без загрузки / декодирования всего файла в этом случае?

1 Ответ

0 голосов
/ 20 октября 2018

Я не верю, что есть точный способ определения точного смещения байтов, требуемого для определенного времени, но libopus.op_pcm_seek() можно использовать для декодирования, когда у вас есть байты.Между изменяющимися битрейтами, размерами страниц и длительностью пакетов файлов Opus, кажется, требуются некоторые догадки и динамические вычисления.Я пытаюсь сделать то же самое, и несколько человек попросили меня реализовать это в OpusStreamDecoder.Вы могли бы взглянуть на лежащий в его основе opus_chunkdecoder.c и запрос конкретной функции, в котором указано, как этого можно достичь:

https://github.com/AnthumChris/opus-stream-decoder/issues/1

...