关注bash脚本:
#!/bin/bash
#-_-_-_--- CONFIGURATION ---_-_-_-
CAMERA_COUNT=2
SRC_WIDTH=320
SRC_HEIGHT=240
MARGIN=320
#-_-_-_--- END CONFIGURATION---_-_-_-
CHARS=( {A..Z} )
FULL_WIDTH=$((SRC_WIDTH * CAMERA_COUNT))
FFMPEG="ffmpeg "
for ((i = 0; i < CAMERA_COUNT; i++))
do
FFMPEG+="-f flv -i rtmp://127.0.0.1:1935/live/PanoView${CHARS[i]} "
done
FFMPEG+="-filter_complex \"nullsrc=size=$((SRC_WIDTH * CAMERA_COUNT))x${SRC_HEIGHT} [base]; [base][0:v] overlay [tmp1]; "
for ((i = 1; i < CAMERA_COUNT - 1; i++))
do
FFMPEG+="[tmp${i}][${i}:v] overlay=x=$((SRC_WIDTH * i)) [tmp$((i + 1))];"
done
FFMPEG+="[tmp$((CAMERA_COUNT - 1))][$((CAMERA_COUNT - 1)):v] overlay=x=$((SRC_WIDTH * (CAMERA_COUNT - 1)))\" -f flv -b:v 1M -an -r 25 rtmp://127.0.0.1:1935/live/test"
$FFMPEG
echo $FFMPEG
最后一个回声的输出:
ffmpeg -f flv -i rtmp://127.0.0.1:1935/live/PanoViewA -f flv -i rtmp://127.0.0.1:1935/live/PanoViewB -filter_complex "nullsrc=size=640x240 [base]; [base][0:v] overlay [tmp1]; [tmp1][1:v] overlay=x=320" -f flv -b:v 1M -an -r 25 rtmp://127.0.0.1:1935/live/test
当我在脚本中的FFMPEG变量中执行复合命令时,收到错误消息:
[AVFilterGraph @ 0x7fffed837620]没有这样的过滤器:'“nullsrc'
初始化复杂过滤器时出错。
无效的参数
但是,如果我复制最后有脚本输出的复合代码,粘贴并执行它,一切都按预期工作。可能是什么原因?