bash 병렬 인코딩 및 업로드

bash 병렬 인코딩 및 업로드

저는 ffmpeg를 사용하여 특수 형식으로 비디오를 인코딩하기 위한 bash 스크립트를 작성하고 있습니다. 생성된 영상을 저장하기 위해 인코딩이 완료되는 대로 영상을 업로드하고 싶습니다. 따라서 내 스크립트에서 병렬 처리를 사용하고 싶습니다.

간단한 예:

 #!/bin/bash

 uploading() {
 upload $1
 }

 encoding() {
 ffmpeg video video_encoded

 uploading $video_encoded
 }

인코딩이 업로드 기능보다 빠르면 새로운 백그라운드 프로세스가 생성됩니다. 이것은 내가 원하는 것이 아닙니다. 원하는 동작은 업로드 프로세스가 아직 살아 있는 경우 인코딩 기능이 필수 매개변수(예: 비디오 경로)를 일종의 대기열에 저장하여 마지막 업로드 기능이 대기열이 비어 있는지 확인하고 푸시하는 것입니다. 팝프레스 필요합니다.

bash에서 그런 일이 가능합니까?

먼저, 감사합니다!

답변1

두 개의 스크립트가 있습니다. 하나는 비디오 인코딩 관리용이고 다른 하나는 업로드용입니다. 인코딩이 완료되면 파일이 있는 스풀 디렉터리를 사용합니다(비디오 자체만 필요한 경우 심볼릭 링크를 사용하고, 추가 정보를 저장해야 하는 경우 텍스트 파일을 사용합니다).

업로드 스크립트는 n초마다 업로드할 새 파일이 있는지 스풀 디렉터리를 확인해야 합니다. 업로드가 성공적으로 완료되면 업로드 스크립트는 스풀 디렉터리에서 파일을 삭제합니다.

메인/인코딩 스크립트에서 업로드 스크립트를 생성합니다. 모든 파일이 성공적으로 업로드되면 제거 프로그램 스크립트를 안전하게 종료할 수 있습니다(스풀 디렉터리는 비어 있습니다. 비어 있지 않은 디렉터리는 업로드가 아직 완료/성공하지 않았음을 의미합니다).

관련 정보