Сегодня я обнаружил этот пост , рассказывающий мне о фрагментированных mp4s (fmp4s).
Используя документы ffmpeg , я добился большого прогресса.
Я запускаю это:
'/usr/bin/ffmpeg' '-y' '-i' '/myproject/storage/app/sample_media/2020-02-27/Sample Videos 5.mp4' \
'-c:v' 'libx264' '-s:v' '1920x1080' \
'-crf' '20' '-sc_threshold' '0' '-g' '48' '-keyint_min' '48' \
'-hls_list_size' '0' '-hls_time' '10' '-hls_allow_cache' '0' '-b:v' '4889k' \
'-maxrate' '5866k' '-hls_segment_type' 'fmp4' \
'-hls_fmp4_init_filename' '/myproject/public/storage/000000002/init.mp4' \
'-hls_segment_filename' '/myproject/public/storage/000000002/list_1080p_%04d.m4s' \
'-hls_key_info_file' '/myproject/hls_hls.keyInfo' '-strict' '-2' '-threads' '12' \
'/myproject/public/storage/000000002/list_1080p.m3u8'
И затем я использую hls. js на своей веб-странице, чтобы попытаться показать видео.
Сначала он не будет загружаться.
Но тогда я смогу загрузить видео правильно, если я обновлю sh страницу после внесения этого изменения в list_1080p.m3u8:
Измените:
#EXT-X-MAP:URI="/myproject/public/storage/000000002/init.mp4"
Кому:
#EXT-X-MAP:URI="init.mp4"
Как изменить команду ffmpeg, чтобы она знала абсолютный путь к сохранить init.mp4, но также знает, что записать в m3u8 только имя файла init.mp4
без какого-либо пути?
(я пробовал использовать -hls_fmp4_init_filename init.mp4
без абсолютного пути, но затем он создает init.mp4 в root, который также не работает. Мне нужно, чтобы init.mp4 каждого видео находился в отдельной папке.)