Добавьте наложение PNG к мульти выходу HLS M3U8 с помощью FFmpeg - PullRequest
0 голосов
/ 28 июня 2018

Я бьюсь головой уже 2 дня. В настоящее время я могу вывести 3 M3U8 "HLS" выходы с измененным размером, но теперь мне нужно добавить оверлей к каждому выходу. Размер наложенного изображения также необходимо изменить. Я предполагаю, что изображение должно быть применено к источнику, а затем могут быть сгенерированы 3 выхода. Я читал, что -vf нельзя использовать, поскольку есть 2 входа. Вот то, что я в настоящее время использую, который работает.

Как я могу добавить наложение изображения?

ffmpeg -hide_banner -y -i input.mov^
 -vf scale=w=640:h=360:force_original_aspect_ratio=decrease  -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod  -b:v 800k -maxrate 856k -bufsize 1200k -b:a 96k -hls_flags single_file^
 360p.m3u8  
 -vf scale=w=1280:h=720:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 2800k -maxrate 2996k -bufsize 4200k -b:a 128k -hls_flags single_file 720p.m3u8^
 -vf scale=w=1920:h=1080:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 5000k -maxrate 5350k -bufsize 7500k -b:a 192k -hls_flags single_file 1080p.m3u8

Любой совет будет принят с благодарностью.

Заранее спасибо.

1 Ответ

0 голосов
/ 28 июня 2018

Вам нужно использовать filter_complex для оверлейного фильтра, а затем разбить результат на 3 и масштабировать каждую копию:

ffmpeg -hide_banner -y -i input.mov -i image.png
       -filter_complex "[0][1]overlay,split=3[a][b][c];[a]scale=w=640:h=360:force_original_aspect_ratio=decrease[a];[b]scale=w=1280:h=720:force_original_aspect_ratio=decrease[b];[c]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[c]"
       -map "[a]" -map 0:a -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 800k -maxrate 856k -bufsize 1200k -b:a 96k -hls_flags single_file 360p.m3u8
       -map "[b]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 2800k -maxrate 2996k -bufsize 4200k -b:a 128k -hls_flags single_file 720p.m3u8
       -map "[c]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 5000k -maxrate 5350k -bufsize 7500k -b:a 192k -hls_flags single_file 1080p.m3u8

(Если кодировщик h264 имеет x264, b:v не действует при использовании с crf, но maxrate и bufsize do.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...