2016-08-11 5 views
0

주문형 비디오 기능이 포함 된 장고 앱이 있습니다. 그것은 Azure Media Services (AMS)에 의해 제공됩니다. 사용자가 비디오를 업로드하면 먼저 Azure 저장소 BLOB에 비디오를 저장 한 다음 AMS php sdk를 사용하는 PHP 스크립트를 사용하여 해당 비디오를 인코딩하고 AMS에서 호스팅되는 스트리밍 URL을 준비합니다.Azure Media Services (PHP SDK/Django 프로젝트)에서 업로드 된 비디오의 크기를 얻는 방법

내 문제는 다음과 같습니다. 비디오를 얻으려면 어떻게해야합니까? AMS에서 해상도가 낮은 형식으로 비디오를 인코딩 할 수 있도록 높이와 너비를 알아야합니다. 파이썬에서 치수를 가져올 수 없다. 비디오 파일을 먼저 로컬 서버 (내 웹 서버가 실행 중임)에 업로드하지 않기 때문이다. 내 옵션은 무엇입니까? 제발 조언.

+0

사용자가 비디오 업로드에 응용 프로그램을 사용하지 않으므로 약간 혼란 스럽습니까? 업로드 진행 중에 측정 기준을 가져올 수없는 이유는 무엇입니까? 또한 PHP 스크립트의 작업 흐름을 말할 수 있습니까? –

+0

@ GaryLiu-MSFT : PHP 스크립트는 다음 예제에서 가져온 것입니다. http://southworks.com/blog/2015/12/09/new-microsoft-azure-media-services-sdk-for-php-release- available-with-new-features-and-samples/업로드 할 때 JS를 통해 크기를 가져 오는 옵션이 하나 있습니다. 그것은 내가 아직 탐구하지 않은 것입니다. –

답변

0

PHP 용 AMS SDK를 사용하여 AMS 작업을 만들고 비디오 자산 파일이 필요합니다. PHP 모듈 http://getid3.sourceforge.net/을 사용하면 PHP 프로세스 중 비디오 자산 정보를 쉽게 얻을 수 있습니다.

당신은 PHP 모듈 http://getid3.sourceforge.net/를 다운로드하고 PHP 애플리케이션의 폴더로 추출, 당신은 비디오 자산의 크기 얻기 위해 다음 코드를 사용할 수 있습니다 :

require_once('./getid3/getid3.php'); 
$filename="<video_path>"; 
$getID3 = new getID3; 
$ThisFileInfo = $getID3->analyze($filename); 
var_dump($ThisFileInfo['asf']['video_media']); 

더 이상의 우려로 주시기 바랍니다 저에게 알려주세요. 푸른 저장 여기

에 RemoteFile을을 사용하여

업데이트는 코드 샘플, 당신은 푸른 저장에 모양의 SAS URL을 사용할 수 레버리지입니다. 이 파일을 서버 폴더로 다운로드하고 정보를 검색 한 다음 템플릿 파일을 삭제합니다.

$remotefilename = '<SAS Url>'; 
if ($fp_remote = fopen($remotefilename, 'rb')) { 
    $localtempfilename = tempnam('/tmp', 'getID3'); 
    if ($fp_local = fopen($localtempfilename, 'wb')) { 
     while ($buffer = fread($fp_remote, 8192)) { 
      fwrite($fp_local, $buffer); 
     } 
     fclose($fp_local); 
     // Initialize getID3 engine 
     $getID3 = new getID3; 
     $ThisFileInfo = $getID3->analyze($localtempfilename); 
     // Delete temporary file 
     unlink($localtempfilename); 
    } 
    fclose($fp_remote); 
    var_dump($ThisFileInfo); 
} 

+0

게리에게 감사드립니다. 우리는 그것을 시험 할 것이다. –

+0

문제는 서버에 파일이 없습니다. 나는 이것을 Azure Media Server에 인코딩하는 Azure 블롭에 업로드합니다. 이것은'$ getID3-> analyze ($ filename);'와 같이 파일 이름을 전달할 수 없습니다. 여기에 대안이 있습니까? –

+0

원격 버전 업데이트 –