У меня есть видео следующим образом
video time
======= =========
Area 1:
video1a 0-2000
video1b 2500-3000
video1c 3000-4000
Area 2:
video2a 300- 400
video2b 800- 900
Area 3:
video3a 400- 500
video3b 700- 855
Area 4:
video4a 400- 500
video4b 800- 900
По сути, это выходы камер безопасности, которые должны отображаться в 4 областях:
Пока у меня есть следующее:
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.mp4
Но есть две вещи, которые мне не хватает:
- Выше указано только для 4 видеофайлов, мне нужен способ добавить дополнительные файлы в каждую область (например, video1b должен воспроизводиться в соответствующее времяпосле video1a в той же области)
- Как указать время начала / окончания, как показано выше для каждого файла?