FLV - это формат контейнера, аналогичный, например, mp4, а HLS - это потоковый протокол, который может передавать видео-контейнер с сервера на клиент.
Проще говоря, просматривая необработанное видео икак он «оборачивается» или изменяется перед потоковой передачей:
«сырое» видео -> кодированное видео (egh264) -> контейнер (например, FLV, mp4) -> фрагментированный контейнер (например, фрагментированный MP4) -> протокол потоковой передачивключая индекс и сегменты или фрагменты видео (например, HLS, DASH)
Общий способ ffmpeg для преобразования из избранного в mp4:
ffmpeg -i yourVideo.flv yourVideo.mp4
Однако, если ваше FLV-видео установлено недавно и кодер имеет формат h.264, который, вероятно, является наиболее часто поддерживаемым кодеком, вам может потребоваться преобразовать только контейнер, а не кодировку.Это меньше обработки, так что, как правило, хорошая вещь.Вы можете указать ffmpeg сделать это, используя параметр 'copy' - пример здесь:
Вы также можете использовать ffmpeg для создания индекса HLSи сегментируйте файлы из mp4:
ffmpeg -I yourVideo.mp4 -c: v h264 -flags + cgop -g 30 -hls_time 1 yourVideo.m3u8
Подробнееподробности можно найти в документации ffmpeg здесь: http://ffmpeg.org/ffmpeg-all.html#hls-2
Стоит помнить, что даже если ваше видео имеет кодировку h.264, в спецификации h.264 есть разные профили и опции, поэтому вам все равно понадобитсячтобы проверить, поддерживает ли ваше целевое устройство (устройства) формат кодирования, используемый вашим видео.