2011-07-31 4 views
2

그래서 나는 2 개의 서비스를 실행하고, 하나는 실시간으로 파일을 트랜스 코딩하고 (ffmpeg), 다른 하나는 http (nginx)를 통해이를 노출시킨다. 현재 내가 가지고있는 문제는 ffmpeg가 트랜스 코딩을 시작할 때 nginx를 통해 파일에 액세스 할 때 작성된 바이트 중 일부만 다운로드된다는 것입니다.nginx 스트림에 현재 기록중인 다운로드 용 파일을 가질 수 있습니까?

질문 : nginx를 설정하여 현재 작성중인 파일을 스트리밍하여 필기가 끝날 때까지 스트리밍 할 수 있습니까? 이제 로컬 컴퓨터에 전체 파일이 생깁니 까?

자체가이 작업을 수행 할 수 있습니다에 의해 당신이

답변

0

내가 Nginx에 믿을 수 없어 감사드립니다. 코드 변환 진행 상황을 모니터하고 요청을 chunked transfer encoding과 함께 제공 할 수있는 응용 프로그램 (php, perl, python 등)이 필요합니다. 기본적으로 클라이언트와의 연결을 유지하고 더 많은 데이터를 제공합니다.

0

나는 매우 비슷한 문제가있었습니다. ffmpeg가 여전히 파일을 트랜스 코딩하는 동안 스트리밍을 시작하는 방법을 모르지만 여기에 수정이있었습니다.

시스템 호출을 만든 PHP 스크립트가있었습니다 (거의 모든 언어로 작성할 수 있지만). 스크립트는 임시 파일에 ffmpeg 쓰기를했습니다. ffmpeg를 호출하기 전에 동시성 문제를 제거하기 위해 임시 파일이 있는지 여부를 확인했습니다. 그렇다면 실제 파일이 존재할 때까지 기다렸습니다.

변환이 완료되면 임시 파일의 이름이 실제 파일로 변경되고 http 요청이 변환 된 파일로 리디렉션됩니다.

관련 문제