Трек на 46 минут долго молчал: отдаём перекодированный звук, пока ffmpeg его ещё пишет
Habr ·

Сервер перекодирует длинный трек в Opus и отдаёт его только целиком. Пока ffmpeg пишет файл, клиент молчит: на 46-минутной записи это 19 секунд тишины. Экономный режим, в котором человек ждёт быстрой загрузки, грузится дольше оригинала. ▎ ▎ Разбираю, как отдавать файл, пока ffmpeg его ещё пишет, и сохранить при этом кеш и один прогон ffmpeg на все запросы. Почему не подошёл пайп, где прячется гонка на последнем чтении, что делать с переименованием на Windows и почему M4A без фрагментации не играет с первых байтов. Читать далее
Сервер перекодирует длинный трек в Opus и отдаёт его только целиком. Пока ffmpeg пишет файл, клиент молчит: на 46-минутной записи это 19 секунд тишины. Экономный режим, в котором человек ждёт быстрой загрузки, грузится дольше оригинала. ▎ ▎ Разбираю, как отдавать файл, пока ffmpeg его ещё пишет, и сохранить при этом кеш и один прогон ffmpeg на все запросы. Почему не подошёл пайп, где прячется гонка на последнем чтении, что делать с переименованием на Windows и почему M4A без фрагментации не играет с первых байтов. Читать далее