Как исправить EXT-X-MAP: URI в m3u8 при указании абсолютного имени hls_fmp4_init_filename с помощью ffmpeg? - PullRequest
0 голосов
/ 29 февраля 2020

Сегодня я обнаружил этот пост , рассказывающий мне о фрагментированных 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 каждого видео находился в отдельной папке.)

...