У меня есть media.mp4
файл.
В настоящее время я преобразую его в список воспроизведения HLS с помощью этой команды:
ffmpeg -y -i \
"media.mp4" \
-g 48 -sc_threshold 0 \
-profile:v baseline -level:v 3.0 -pix_fmt yuv420p \
-map 0:0 -map 0:1 -map 0:0 -map 0:1 \
-map 0:0 -map 0:1 -map 0:0 -map 0:1 \
-map 0:0 -map 0:1 -map 0:0 -map 0:1 \
-c copy \
-s:v:0 256x144 -c:v:0 libx264 -b:v:0 200k -minrate:v:0 200k -maxrate:v:0 200k -bufsize:v:0 200k \
-s:v:1 426x240 -c:v:1 libx264 -b:v:1 400k -minrate:v:1 400k -maxrate:v:1 400k -bufsize:v:1 400k \
-s:v:2 640x360 -c:v:2 libx264 -b:v:2 700k -minrate:v:2 700k -maxrate:v:2 700k -bufsize:v:2 700k \
-s:v:3 854x480 -c:v:3 libx264 -b:v:3 1280k -minrate:v:3 1280k -maxrate:v:3 1280k -bufsize:v:3 1280k \
-s:v:4 1280x720 -c:v:4 libx264 -b:v:4 2560k -minrate:v:4 2560k -maxrate:v:4 2560k -bufsize:v:4 2560k \
-s:v:5 1920x1080 -c:v:5 libx264 -b:v:5 5120k -minrate:v:5 5120k -maxrate:v:5 5120k -bufsize:v:5 5120k \
-var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3 v:4,a:4 v:5,a:5" \
-master_pl_name "master.m3u8" \
-f hls \
-hls_playlist_type vod \
-hls_time 5 \
-hls_list_size 0 \
-hls_flags split_by_time+round_durations \
-start_number 1 \
-hls_segment_filename "av/%v/%02d.ts" \
"av/%v/prog_index.m3u8"
Я могу создавать только аудио и видео только версию с -an
и -vn
флагов, но он будет конвертировать файл 3 раза.
Есть ли способ создать все три версии только с одним преобразованием?
Я не мог найти способ конвертировать получившуюся master.m3u8
в версию только для аудио и видео. Также попытался создать converted_media.mp4
, а затем использовать его, чтобы просто скопировать аудио и видео потоки и просто создать 3 списка воспроизведения, но это тоже не сработало.
Любая помощь приветствуется.