Итак, с моего веб-сервера я хотел бы использовать FFMPEG для перекодирования медиафайла для использования с тегом HTML <audio>
или <video>
. Достаточно легко?
Преобразование должно выполняться в режиме реального времени, когда клиент HTTP запросил преобразованный файл. В идеале файл будет передан обратно HTTP-клиенту, поскольку он транскодируется (а не потом в конце, так как это может занять некоторое время, прежде чем любые данные начнут отправляться обратно).
Это было бы хорошо, за исключением того, что в современных браузерах аудио-или HTML-тег HTML5 запрашивает мультимедийный файл в нескольких HTTP-запросах с заголовком Range
. Подробнее см. этот вопрос.
В этом вопросе, связанном выше, вы можете видеть, что Safari запрашивает странные фрагменты файла, включая окончание нескольких байтов. Это создает проблему в том, что веб-серверу нужно дождаться завершения преобразования, чтобы доставить конечные байты файла в соответствии с запросом Range
.
Итак, мой вопрос, правильно ли я понял? Есть ли лучший способ доставить транскодирование контента в тег <audio>
или <video>
, который не связан с ожиданием завершения всего преобразования? Спасибо заранее!