Pull to refresh

Comments 13

Все так. В вашем посте описывается решение для стримминга. А тут скорее описан подход для статики, начиная с основ технологии. Хотелось показать, что в HLS нет никакой магии, а сделать это проще на элементарном примере с ffmpeg.

согласен, а цена за отдачу трафика не кусается на яндексе? По-моему она кусачая, даже очень.

Вот про это хотелось рассказать в следующем посте. Сейчас в превью есть CDN https://cloud.yandex.ru/services/cdn, цены на трафик оттуда ниже чем непосредственно из Yandex Object Storage.

Степень «кусачасти» цен оценивать не берусь. Если сравнивать с публично доступными ценами конкурентов, которые я смог найти, то выглядит весьма привлекательно.

На aws легко построить пайплайн который будет брать видео, разбивать его, создавать плейлисты.. и более того в случае необходимости отдавать dash или mss

Надеюсь, я смог вас убедить, что сегодня для распространения видеоконтента через интернет стоит смотреть в сторону HLS.

Не смогли, так как отсутствует сравнение с MPEG-DASH

Кстати, HLS с недавних пор получил поддержку fMP4, так что с помощью того же ffmpeg можно сгенерировать одновременно HLS и MPEG-DASH с переиспользованием одних и тех же сегментов

Вы правы, но сравнение их может потянуть на отдельный пост. Моя же цель была рассказать, что обычный MP4 одним файлом — не лучшая идея.
Одним из аргументов в пользу HLS может служить нативная поддержка этого формата браузерами: https://caniuse.com/?search=hls. В остальном это довольно схожие по функциональности и подходу форматы, имеющие примерно одинаковую поддержку сторонними плеерами.

А можете порекомендовать хороший туториал как этого добиться? Я пока нашёл вот этот, но там не fMP4 (т.е. HLS и DASH кодируются отдельно): https://blog.zazu.berlin/internet-programmierung/mpeg-dash-and-hls-adaptive-bitrate-streaming-with-ffmpeg.html

Ещё натыкался на GPAC/MP4Box, но там тоже не понятно.

Вот это да! Теперь чтобы смотреть видео нужен Javascript. Прогресс

А можно ли как-то работать с видео файлами на s3 через ffmpeg?

На сколько я знаю, ffmpeg умеет сам получать доступ к файлам по HTTP(S). Нам нужно лишь сформировать ссылку. Если речь идет про бакет без публичного доступа, то можно воспользоваться предподписанной ссылкой. Например, так из сомандной строки.

ffmpeg -i "$(aws s3 presign s3://MY_BUCKET/MY_FILE --expires 5)"

Ну или формировать ее при помощи SDK на вашем любимом языке программирования.

Sign up to leave a comment.

Articles