Я хочу сделать что-то вроде этого:
---------------
| 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
, таким образом, кто-либо мог помочь мне?
Я бы использовал OBS Studio. Он бесплатный, с открытым исходным кодом, доступен в репозиториях и имеет встроенную поддержку потоковой передачи. Вы можете накладывать друг на друга несколько видеоисточников (картинка в картинке или PiP) и т. Д.
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://...
Введите соответствующие значения для каждого экземпляра <>
. См. Wiki FFmpeg: Живая Потоковая передача для большего количества информации и примеров.
Что касается 2x2 сетка видит Вертикально или горизонтально складывает несколько видео с помощью ffmpeg?