Mp4 для динамического адаптивного hls с несколькими битрейтами с использованием ffmpeg
Я попытался преобразовать MP4-видео в HLS для онлайн-трансляции, что я успешно сделал с помощью FFmpeg.
Команда:
ffmpeg -i /var/www/html/file_conversion/heli.mp4 -map 0 -profile:v baseline -level 3.0 -s 640x360 -c:v libx264 -b:v 500k -c:a libfdk_aac -b:a 320k -hls_list_size 0 -start_number 0 -hls_init_time 0 -hls_time 2 -f hls /var/www/html/file_conversion/hlstest2/heli.m3u8
Но сейчас я пытаюсь преобразовать одно и то же видео с несколькими битрейтами для динамической адаптивной потоковой передачи.
Есть идеи, как мне этого добиться?
1 ответ
У меня были те же сомнения, и я нашел эту статью: https://dev.to/nodir_dev/transcode-video-source-to-hls-playlist-format-for-video-on-demand-vod-streaming-3h99
После создания файлов перекодирования просто создайте файл *.m3u8 со следующим содержимым:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360
360_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=750000,RESOLUTION=854x480
480_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720
720_out.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3500000,RESOLUTION=1920x1080
1080_out.m3u8
теперь просто отправьте этот файл в потоки.
Моя папка HLS:
Я сделал перекодировку в двух разрешениях:1280x720 и 640x480.
- Автор статьи: Нодирбек Шарипов.