我试图将第二个视频以堆叠的方式并排合并到第一个视频中,这是一项自私的工作。关键在于,该视频是视频通话的记录,第二个用户可能比第一个用户加入得晚。视频通话的累积记录必须反映出第二个用户比第一个用户加入得晚。为此,我使用以下代码:
DIFF=$(($start_ts-$BASEts))
DIFFms=`echo "scale=0;$DIFF/1000" | bc`
DIFFs=`echo "scale=4;$DIFF/1000000" | bc`
ffmpeg -i $a.webm -i b.webm -filter_complex \
"[0]pad=2*iw:1*ih[l];[1]setpts=PTS-STARTPTS+$DIFFs/TB[1v]; [l][1v]overlay=x=W/2[v]; \
[1]adelay=$DIFFms|$DIFFms[1a]; \
[0][1a]amix=inputs=2[a]" \
-map "[v]" -map "[a]" -vcodec libvpx -cpu-used -5 -deadline realtime finalOutput.webm
但是,这里抛出的错误是:
[Parsed_setpts_1 @ 0x55ada9df1dc0] [Eval @ 0x7ffff35acb60] Undefined constant or missing '(' in '/TB'
[Parsed_setpts_1 @ 0x55ada9df1dc0] Error while parsing expression 'PTS-STARTPTS+/TB'
[AVFilterGraph @ 0x55ada9d6c2a0] Error initializing filter 'setpts' with args 'PTS-STARTPTS+/TB'
Error initializing complex filters.
Invalid argument
我认为它根本无法读取 $DIFFs 变量。有人能帮我吗?