使用FFmpeg将PNG叠加层添加到多输出HLS M3U8

时间:2018-06-28 17:39:33

标签: ffmpeg

我已经敲了两天了。我目前可以输出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 :(得分:1)

您需要将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:vcrf一起使用时无效,但是maxratebufsize会起作用。)