ffmpeg 프로세스 우선순위를 설정하는 방법을 찾으려고 합니다. 서버는 수신 비디오를 다른 해상도로 변환하며, 새 비디오는 기존 프로세스보다 우선순위가 더 높고 더 빠르게 변환되어야 합니다.
이는 SJF(Shortest Job First) 또는 LIFO(Last In First Out) 알고리즘과 유사하게 작동해야 합니다.
ffmpeg로 할 수 있는 방법이 있나요?
나는 다음과 같은 프로세스를 생성합니다.
ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1
메모:
이미 기반 솔루션을 테스트했습니다 nice
. 작동하지 않는 것 같습니다. 우선순위가 10과 -10인 2개의 ffmpeg 프로세스를 생성했고, 이전에 생성된 프로세스가 더 일찍 완료되었습니다.
답변1
당신은 단순히 전화nice
niceness 값과 함께 프로세스를 호출하기 전에.
의 매뉴얼 페이지에서는 nice
프로세스가 얼마나 '좋은'지 정확히 파악하는 방법을 보여줍니다. 즉, 낮은 값 == 덜 좋고 우선순위가 높습니다.
nice --5 "ffmpeg -i...."
-5의 좋은 값으로 ffmpeg를 시작하여 -1의 좋은 값을 가진 것보다 우선순위가 높습니다.
일반적으로 0이 기본값이며, 이보다 높은 값은 기본 우선순위보다 낮다는 의미입니다.