ffmpeg와 병렬로 사용하는 Gnu가 원격 호스트에서만 ffmpeg를 실행하는 이유는 무엇입니까?

ffmpeg와 병렬로 사용하는 Gnu가 원격 호스트에서만 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 

example.mpg 파일을 가상머신(OK)으로 전송한 후, 원격 컴퓨터(가상)에서만 명령을 실행합니다! 그런데 이 줄은 -S virtual,로컬 컴퓨터에서도 병렬 실행이 필요하지 않습니까? 내 목표는 gnu를 사용하여 둘 이상의 PC에 로드/CPU 사용량을 병렬로 분산하는 것입니다. 예를 들어 로컬 PC에서는 50% 로드, 원격에서는 50% 로드가 가능합니까? 아니면 오래된 openmosix 클러스터처럼 좀 더 복잡한 것이 필요합니까?

답변1

-S virtual,:GNU 병렬 빌드 작업은 실제로 로컬 컴퓨터( 라고 함 :)와 서버( ) 모두에서 virtual생성됩니다 .

귀하의 예에서는 mpg 파일만 입력으로 제공합니다. 따라서 GNU Parallel은 하나의 작업만 실행합니다. 즉, GNU Parallel은 단일 mpg 파일을 마술처럼 여러 파일로 분할하여 처리하지 않습니다.

모든 코어를 사용하려면 최소한 입력과 동일한 수의 파일을 GNU Parallel에 제공해야 합니다.

답변2

기본적으로 GNU Parallel은 모든 서버에서 CPU 스레드당 하나의 작업을 실행합니다. 따라서 virtual4개의 스레드가 있는 경우 로컬 시스템에서 작업이 실행되도록 하려면 최소한 5개의 파일이 필요합니다.

를 사용하여 이 설정을 변경할 수 있습니다 -j1. 이 경우에는 두 개의 파일만 필요합니다.

관련 정보