2017-10-31 11 views
0

이것은 과제를위한 것입니다. 나는 당신이 나에게 답을 제안하는 것을 원하지 않습니다. 난 그냥 누군가가 올바른 방향으로 나를 가리 키도록, 아마도 두 줄의 샘플 코드가 필요합니다.리눅스 & C : mp4 파일을 기록하는 동안 다중 프로세스 프로그램에서 파일 읽기 우선 순위를 설정하는 방법

내 프로그램 내에서 녹음 mp4 파일의 우선 순위를 설정하는 방법을 알아야합니다. 요점 :

나는 3 대의 카메라 (1-HD 및 2 대의 아날로그 카메라)에서 동시에 녹음을 시도하고 각 녹음 시간이 60 초인 후 타르 파일을 만들려고합니다.

그래서 일련의 레코드가 완료된 후, 나는 그 파일을 돌보고 있습니다. 그렇게함으로써 나는 HD 카메라에서만 프레임 스킵을 경험하고 있으며, 2 대의 아날로그 카메라는 괜찮습니다. 앞으로 나는 녹화에 우선 순위를 설정하고 그 파일을 들려주기 위해 낮은 우선 순위를 설정하기로 결정했습니다.

프레임 건너 뛰기를 무시하고 우선 순위를 설정하는 방법을 제안 해주세요.

어떤 도움/지침은 감사합니다 :)

+0

우선 순위 조정을해도 문제가 해결되지 않을 것으로 생각됩니다. 코드/디자인이 필요합니다. –

답변

0

당신은 아마 리눅스 스케줄러를 공유하는 표준 라운드 로빈 시간을 사용하여이 작업을 수행하기 위해 투쟁 할 것이다. 한 가지 방법은 비디오 인코딩 스레드에 대해 "실시간"스케줄러 정책을 사용하고 표준 스케줄러를 사용하여 스레드의 파일을 tar하는 것입니다. sched_setscheduler을 참조하십시오.

+0

확신하지 못함 - OP가 대부분 I/O를 수행하고있는 것으로 의심됩니다. –

+0

파일 보관 처리가 시작될 때까지 프레임이 끊어지지 않으므로 캡처 된 스레드를 SCHED_RR 또는 SCHED_FIFO로 실행하면 삭제 된 프레임을 처리하고 처리하는 동안 비디오 캡처 스레드가 전환되지 않습니다. 이는 보관 프로세스가 처리 시간이 부족하여 다음 파일을 보관할 준비가되기 전에 완료하지는 못하지만 실험을 실행하지 않고도 말하기가 불가능하다는 것을 의미합니다. –