Я совершенно новичок в кодировании и параметрах видео и только что узнал о требованиях Apple HLS.
До сих пор мне удавалось заставить что-то работать для моего приложения iOS. Тем не менее, я считаю, что весь процесс очень медленный и ручной. Теперь, когда мне приходится повторять это еще для нескольких локалей (видео-переводы), я не могу представить, что есть лучший способ.
Чтобы иметь контроль над битрейтом, я использую HandBrake для создания нового файла .mp4 с соответствующей настройкой видеокодера для каждого желаемого битрейта (192k, 400k, 1m и т. д.). ЗАТЕМ я перехожу к созданию плейлистов. Это само по себе занимает несколько минут — есть ли лучший способ? tsrecompressor
казалось близким, но он просто транслирует на локальный порт и не сохраняет плейлисты.
Затем я использую набор инструментов командной строки Apple (mediafilesegmenter
, variantplaylistcreator
, mediastreamvalidator
, hlsreport
) для создания списков воспроизведения, объединения в основной список воспроизведения, проверки и т. д. Я полагаю, что эту часть можно несколько автоматизировать с помощью сценария. Я видел, как другие используют FFMPEG, но я думаю, что последние 3 инструмента Apple все равно должны применяться последовательно.
Видите ли вы что-нибудь, что можно явно оптимизировать?
Какова ваша конечная цель здесь? Просто экспериментируете со сжатием видео? Или вы пытаетесь создать сервис?
@szatmary спасибо за понимание. Я не решался использовать ffmpeg, так как Apple рекомендовала использовать их набор инструментов, но если мне нужно сделать больше из них, я мог бы использовать ffmpeg. Приятно знать, что транскодирование видео происходит медленно.
@ШрикантК. Я просто пытался настроить потоковую передачу HLS для видео, которые обслуживает мое приложение (иначе мы нарушили бы требования Apple). Пока мы поддерживаем только две локали, поэтому я просто пошел по этому пути.
Из чтения - похоже, вы создаете разные mp4 для каждого размера, а затем потоки HLS?
С FFMPEG вы можете создавать все потоки/плейлисты HLS без предварительного создания всех mp4. Это сократит ~ 50% кодирования, которое вы делаете :)
Существуют также сервисы, которые могут создавать хост и доставлять ваши потоки HLS для вас, экономя ваше время на создание видео (я работаю на один — api.video).
Не уверен, что вы имеете в виду под «оптимизированным» здесь. Но вы можете написать скрипт (у ручного тормоза есть инструмент командной строки) или просто использовать ffmpeg, чтобы сделать все (есть миллион примеров того, как это сделать в Интернете, если вы их ищете). Транскодирование видео происходит медленно, с этим ничего нельзя поделать, кроме как использовать аппаратный ускоритель (опять же, Google может подсказать, как это сделать).