2

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

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.

1

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.

3
  • 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 .