启动多个FFmpeg会话

时间:2013-09-10 07:58:49

标签: linux ubuntu ffmpeg ubuntu-12.04

我想在for循环中启动多个FFmpeg会话。这是我的剧本:

# start recording for all cams
for i in `seq 1 ${CAM_NO}`
do
    /home/aydu/bin/ffmpeg -f video4linux2 -i /dev/video${i} -y -c:v libx264 -r 5 -s 320x240 -vf format=gray $DIR/CAM${i}_${DTIME}.avi -r 1/5 -vf format=gray -f image2 -updatefirst 1 $DIR/webcam${i}.jpeg
done

问题是会话不按顺序启动。例如,当且仅当第一个进程停止,关闭,结束或终止时,第二个进程才会启动。

如何开始多个会话?

1 个答案:

答案 0 :(得分:2)

如果要并行运行进程,则需要在进程执行行的末尾放置一个&符号&,以通知shell它希望它在后台运行。

例如,此命令按顺序运行五个进程(大约十秒):

$ date;for i in 1 2 3 4 5;do sleep 2;done;date
Tue, Sep 10, 2013  4:05:32 PM
Tue, Sep 10, 2013  4:05:43 PM

然而这个只需要两秒钟,因为它们并行运行:

$ date;for i in 1 2 3 4 5;do sleep 2 & done;wait;wait;wait;wait;wait;date
Tue, Sep 10, 2013  4:05:45 PM
[1] 6116
[2] 4940
[3] 7040
[4] 6944
[5] 3592
[1]   Done                    sleep 2
[2]   Done                    sleep 2
[3]   Done                    sleep 2
[4]-  Done                    sleep 2
[5]+  Done                    sleep 2
Tue, Sep 10, 2013  4:05:47 PM
相关问题