首页 > 解决方案 > 我正在使用 ffmpeg 使用过滤器图将图像覆盖在实时流之上,但是当输入分辨率发生变化时,覆盖消失

问题描述

我进行了研究,发现某些过滤器图形选项不适应不断变化的分辨率。 https://lists.ffmpeg.org/pipermail/libav-user/2012-October/002920.html 这是我正在使用的命令。每当我的输入视频从纵向变为横向时,叠加层就会消失。我真的很感激这里的任何帮助。

ffmpeg  -i rtmp://127.0.0.1:1935/show/$2 -i $overlayUrl  -filter_complex "[1][0]scale2ref=iw:ih[ovr][base];[base][ovr] overlay=0:0, split=4[a][b]" -async 1 -vsync -1 -map 0:a -map "[a]" -c:v libx264 -c:a aac -b:v 256k -b:a 32k -s 640x360 -tune zerolatency -r 60 -preset  veryfast -crf 23 -f flv rtmp://$rtmpoutput/$2_low -map 0:a -map "[b]" -c:v libx264 -c:a aac -b:v 768k -b:a 96k -s 640x480 -tune zerolatency -r 60 -preset veryfast -crf 23 -f flv rtmp://$rtmpoutput/$2_mid code here

标签: ffmpegoverlayhttp-live-streaming

解决方案


FFmpeg 在输入属性更改时重新初始化过滤器图。图像输入是一帧长并且已经被消耗。

循环图像。

ffmpeg -i rtmp://127.0.0.1:1935/show/$2 -loop 1 -i $overlayUrl ...

推荐阅读