I want to use ffmpeg using two pc, i know parallel can do it I use this cli

parallel --trc {.}.mkv -S virtual,: 'ffmpeg -y -i {} -vf yadif,crop=720:550:0:12,scale=640:352 -c:v libx264 -c:a aac -b:v 1500k -b:a 128k -metadata language=eng -metadata title="example" -aspect  16:9 {.}.mkv' ::: example.mpg 

It transfer the file example.mpg on virtual(OK) and then run the command only on the remote pc(virtual)! But the line -S virtual,: don't ask parallel to run even on local pc? My purpose is to use gnu parallel to distribute the load/cpu use on two or more pc, for example 50% of load on localpc, and 50% on remote, is possible? Or I need something more complex like the old good openmosix cluster?

2 Answers 2


-S virtual,: will indeed make GNU Parallel spawn jobs both on the local machine (called :) and the server (virtual).

In you example you only give one mpg-file as input. So given that, GNU Parallel will only run one job. In other words: GNU Parallel will not magically split your single mpg-file into multiple files and process those.

If you want to use all your cores, you should at least give GNU Parallel the same number of files as inputs.


By default GNU Parallel will run one job per CPU thread on all servers. So if virtual has 4 threads, you will need at least 5 files to be sure one job will be run on the local machine.

You can change this with -j1. In that case you only need two files.

  • I have tried with -j1 but no ffmpeg process on local machine, only one in remote
    – elbarna
    Dec 12, 2021 at 21:15
  • If you do not want ANY run on the local machine, remove ,:. : means local machine.
    – Ole Tange
    Dec 14, 2021 at 7:27
  • I want the opposite, the cpu load distributed with the local and the remote, is possible with parallel? Or I need a cluster like the old good "openmosix"?
    – elbarna
    Dec 15, 2021 at 20:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .