FFMPEG:两个较小的 IP 摄像机,以另一个摄像机为背景,流式传输到 YouTube

FFMPEG:两个较小的 IP 摄像机,以另一个摄像机为背景,流式传输到 YouTube

我想做这样的事:

          ---------------
          |  1 |    | 2 |
          |----|    |---|
          | Main Camera |
          ---------------

角落里有两个较小的摄像头,背景是另一个摄像头

我有类似的东西:

ffmpeg 
-i "rtsp://............" 
-i "rtsp://............"
-i "rtsp://............"
-f lavfi -i anullsrc  
-filter_complex "
[0:v] setpts=PTS-STARTPTS,scale=1920x1080,setsar=1[center]; 
[1:v] setpts=PTS-STARTPTS, scale=640x480,setsar=1[upperright];
[2:v] setpts=PTS-STARTPTS, scale=640x480,setsar=1[upperleft];  
[upperleft][upperright]hstack[base]" 
-map [base] -map 2 -f flv "rtmp://......................"

或者

ffmpeg
    -i 1.avi -i 2.avi -i 3.avi -i 4.avi
    -filter_complex "
        nullsrc=size=640x480 [base];
        [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];
        [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];
        [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];
        [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];
        [base][upperleft] overlay=shortest=1 [tmp1];
        [tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
        [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
        [tmp3][lowerright] overlay=shortest=1:x=320:y=240
    "
    -c:v libx264 output.mkv

但显然它不起作用,需要进行一些改变,但我对此不太有经验ffmpeg,所以有人可以帮助我吗?

答案1

我会使用 OBS Studio。它是免费的、开源的,可在存储库中找到,并且内置了流媒体支持。您可以将多个视频源叠加在一起(画中画或 PiP)等。

答案2

在此处输入图片描述

ffmpeg -i left -i right -i background -i anullsrc -filter_complex \
"[1:v]setpts=PTS-STARTPTS,scale=640:-1[left]; \
 [2:v]setpts=PTS-STARTPTS,scale=640:-1[right]; \
 [0:v][left]overlay=shortest=1[bg];[bg]overlay=shortest=1:x=W-w[v]" \
-map "[v]" -map 3:a -c:v libx264 -c:a aac -b:v <> -maxrate <> -bufsize <> -g <> -f flv rtmp://...

相关内容