Every system has its limits. I hit mine quite regularly when I start converting videos from one format into another. One is quite fine, but when I have to to this a couple of times, I usually use something like this :

$ ffmpeg -i .... && ffmpeg -i .... && ffmpeg -i .....

and so on, and so on. This gets quite messy after a while. My alternative would be

for video in *.mkv; do ffmpeg -i $video ......; done

That works as well, but is not dealing quite well with complex naming of the files.

A kind of task queue would have been nice. Something where you just at tasks or processes into and they get executed as soon as one if finished.

It turns out that there is something like this: TaskSpooler.

It does eactly that: I queues tasks and executes them in order.

$ ts ffmpeg -i .....
1
$ ts ffmpeg -i .....
2
$ ts ffmpeg -i .....
3

Neither does it depend on the current shell you’re in, nor does it lock away the added task. You can access the tasks, delete or re-order them.

It does not seem like this application has already been packaged, so on Fedora I had to compile it myself:

$ mkdir build
$ cd build
$ ../autogen.sh
$ make
$ sudo make install

I started already spreading this tool over to multiple machines i use. It really was a nobrainer to safely run a task in the background without loosing control or accidentally killing it by closing the current shell (which I do a lot).