2014-02-07 2 views
1

온라인 상태 인 mp4 파일의 Chromecast와 URL이 있습니다. 나는 또한 2Mbps 다운로드 연결이 있는데, 이는 애처 롭고 Chromecast에 직접 버퍼링을 너무 느리게 렌더링합니다. 그것이 지금까지 시도한 것입니다 :Chromecast PHP 버퍼 MP4

개발자 콘솔을 통해 간단히 location.href를 mp4의 온라인 URL로 설정했습니다. Chromecast는 20 초 동안 버퍼링되고 10 초 분량의 동영상을 재생 한 다음 다시 버퍼링됩니다. 따라서 콘솔을 통해 동영상을 일시 중지하고 5 분 동안 버퍼링했습니다. 다시 게임을 시작하면 약 15 초 동안 재생 한 다음 모든 진행을 잃어 버렸고 홈 화면으로 돌아와야했습니다.

mp4의 전체 다운로드가 완료되기를 기다리지 않으려 고합니다. 현재이 시도를하고 있습니다. mp4를 내 htdocs 디렉토리에있는 로컬 파일에 버퍼링 한 다음 Chromecast로 그 파일의 위치. 그러나 재생하는 대신 mp4 파일 (브라우저)을 열면 다운로드 프롬프트가 표시되고 Chromecast가 홈 화면으로 돌아갑니다.

나는 PHP에서 버퍼링을 구현하고는 이렇게 보입니다 :

$bufferSource = 'http://example.com/path/to/file.mp4'; 

$bufferedReader = fopen($bufferSource, 'r'); 

while(!($finished = feof($bufferedReader))){ 

    if($finished !== false){ break; } 

    //get onle line 
    $buffer = fgets($bufferedReader); 


    file_put_contents('buffer.mp4', $buffer, FILE_APPEND); 

} 

fclose($bufferedReader); 

가 나는 파일 크기가 내 컴퓨터에 성장하는 것을 지켜보고 수 PHP, 그 일을한다는 것을 알고 난을 열 수 있습니다 VLC 파일. '버퍼링 가능성'을 시뮬레이트하는 로컬 버퍼링 된 mp4 파일에 액세스 할 수있는 다른 PHP 스크립트가있을 수 있습니다. Chrome에서 다운로드 대화 상자를 표시하지 않지만 Chromecast와 마찬가지로 파일을 버퍼링합니까?

편집 : 한 가지 더. Chromecast를 PHP 스크립트로 연결하지 않습니다. 사실 직접 buffer.mp4 파일로 보내고 있습니다.

답변

1

Content-Type 헤더가 PHP 스크립트에 누락되었습니다. 원래 콘텐츠 형식 헤더는 서버에서 무엇

그림 밖으로 (아마 video/mp4)이처럼 프록시 스크립트로 보내 : 이것은 브라우저가 콘텐츠 형식을 검색하고 재생할 수

header('Content-Type: video/mp4'); 

직접 다운로드 할 수 있습니다 (지원되는 경우).

또한 휠 재발 명보다는 Nginx와 같은 실제 프록시 서버를 사용하는 것이 좋습니다. 이것은 훨씬 쉽고 안정적입니다.

+0

사실 저는 파일로 버퍼링하기 위해 PHP 스크립트 만 사용하고 있습니다. Chromecast에서는 PHP 스크립트에 액세스하지 않지만 제작 된 파일 자체에서는 스크립트의 파일 버퍼링으로 인해 헤더가 자동으로 포함됩니다. 따라서 서버 -> 클라이언트 및 로컬 서버 -> Chromecast는 별개의 독립적 인 두 개의 프로세스입니다. – arik

+0

@ arik-so 어느 쪽이든 당신의 문제는 같습니다. 로컬 서버가 올바른 콘텐츠 형식 헤더를 보내도록 구성되어 있지 않습니다. 사용중인 서버를 게시하려면 좀 더 구체적으로 안내 할 수 있습니다. – Brad

+0

XAMPP 로컬 서버를 사용하고 있습니다. 이 경우 내일 mp4 헤더를 보낸 후 파일에 액세스 할 다른 페이지를 만들려고합니다. – arik

0

미디어 요소 태그가있는 수신기를 사용할 수 있으며 소스를 서버의 mp4 파일로 지정할 수 있습니다. 자신의 수신자를 쓰지 않으려면 default 또는 Styled Media Receiver을 사용할 수 있습니다. URL을 보내려는 발신자가 필요합니다. github 사례를 확인하십시오.