gpt4 book ai didi

FFmpeg - 具有 4 个区域和不同播放时间的多个视频

转载 作者:行者123 更新时间:2023-12-04 22:55:30 25 4
gpt4 key购买 nike

我有以下视频

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之后的相应时间播放)
  • 如何为每个文件指定如上所示的开始/结束时间?
  • 最佳答案

    利用

    ffmpeg
    -i video1a -i video2a -i video3a -i video4a
    -i video1b -i video2b -i video3b -i video4b
    -i video1c
    -filter_complex "
    nullsrc=size=640x480 [base];
    [0:v] setpts=PTS-STARTPTS+ 0/TB, scale=320x240 [1a];
    [1:v] setpts=PTS-STARTPTS+ 300/TB, scale=320x240 [2a];
    [2:v] setpts=PTS-STARTPTS+ 400/TB, scale=320x240 [3a];
    [3:v] setpts=PTS-STARTPTS+ 400/TB, scale=320x240 [4a];
    [4:v] setpts=PTS-STARTPTS+2500/TB, scale=320x240 [1b];
    [5:v] setpts=PTS-STARTPTS+ 800/TB, scale=320x240 [2b];
    [6:v] setpts=PTS-STARTPTS+ 700/TB, scale=320x240 [3b];
    [7:v] setpts=PTS-STARTPTS+ 800/TB, scale=320x240 [4b];
    [8:v] setpts=PTS-STARTPTS+3000/TB, scale=320x240 [1c];
    [base][1a] overlay=eof_action=pass [o1];
    [o1][1b] overlay=eof_action=pass [o1];
    [o1][1c] overlay=eof_action=pass:shortest=1 [o1];
    [o1][2a] overlay=eof_action=pass:x=320 [o2];
    [o2][2b] overlay=eof_action=pass:x=320 [o2];
    [o2][3a] overlay=eof_action=pass:y=240 [o3];
    [o3][3b] overlay=eof_action=pass:y=240 [o3];
    [o3][4a] overlay=eof_action=pass:x=320:y=240[o4];
    [o4][4b] overlay=eof_action=pass:x=320:y=240"
    -c:v libx264 output.mp4
    shortest选项应应用于处理最晚结束的流的叠加层。

    关于FFmpeg - 具有 4 个区域和不同播放时间的多个视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50515833/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com