Gnu-Parallel
為什麼我的 gnu 與 ffmpeg 並行只在遠端主機上執行 ffmpeg?
我想在兩台電腦上使用 ffmpeg,我知道並行可以做到我使用這個 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
它在虛擬(OK)上傳輸文件 example.mpg,然後僅在遠端 pc(虛擬)上執行該命令!但是這條線
-S virtual,
:即使在本地電腦上也不要要求並行執行?我的目的是使用 gnu 並行在兩台或多台 pc 上分配負載/cpu 使用,例如 localpc 上 50% 的負載,遠端上 50% 的負載,可能嗎?或者我需要更複雜的東西,比如舊的好 openmosix 集群?
-S virtual,:
確實會在本地機器(稱為:
)和伺服器(virtual
)上生成 GNU Parallel 生成作業。在您的範例中,您只提供一個 mpg 文件作為輸入。因此,鑑於此,GNU Parallel 將只執行一項工作。換句話說:GNU Parallel 不會神奇地將您的單個 mpg 文件拆分為多個文件並處理這些文件。
如果您想使用所有核心,您至少應該給 GNU Parallel 提供與輸入相同數量的文件。
預設情況下,GNU Parallel 將在所有伺服器上的每個 CPU 執行緒執行一個作業。因此,如果
virtual
有 4 個執行緒,則至少需要 5 個文件才能確保在本地電腦上執行一項作業。您可以使用 更改此設置
-j1
。在這種情況下,您只需要兩個文件。