2011-12-03 3 views
0

나는 내 서버 폴더에있는 .avi 비디오 파일을 ffmpeg-PHP를 사용하여`.flv '형식으로 변환하려고합니다. ffmpeg-PHP를 "설치"하려는 나의 시도는 "ffmpeg-php-0.6.0.tbz2"아카이브의 내용을 별도의 폴더에 추출하는 것이 었습니다. 변환 스크립트를 실행 한 후ffmpeg-PHP를 초보자 용으로 리눅스에 설치하는 방법은 무엇입니까?

<?php 

// Set our source file 
$srcFile = "/videos/clip.avi"; 
$destFile = "/videos/clip.flv"; 
$ffmpegPath = "/install"; //where I extracted "ffmpeg-php-0.6.0.tbz2" 

// Create our FFMPEG-PHP class 
$ffmpegObj = new ffmpeg_movie($srcFile); 

// Save our needed variables 
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth()); 
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight()); 
$srcFPS = $ffmpegObj->getFrameRate(); 
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000); 
$srcAR = $ffmpegObj->getAudioSampleRate(); 

function makeMultipleTwo ($value) 
{ 
    $sType = gettype($value/2); 

    if($sType == "integer") 
    { 
    return $value; 
    } else { 
    return ($value-1); 
    } 
} 

// Call our convert using exec() 
exec($ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile); 

?> 

: 나는 참조에게 "는 FFmpeg-PHP-0.6.0.tbz2"에서 추출 된 파일의 디렉토리 위치를 사용하고 비디오 변환 스크립트는

이 변환 스크립트입니다 "ffmpeg_movie '클래스가 [conversion script location]에 없습니다."

ffmpeg-PHP 페이지에 대한 지침을 읽었지만 나에게 맞는 것은 아닙니다. ffmpeg-PHP를 설치하기 위해 리눅스 코드를 어떻게 실행합니까?

tar -xjf ffmpeg-php-X.x.x.tbz2 

cd ffmpeg-php-X.x.x/ 
phpize 

./configure && make 

sudo make install 

저는 리눅스가 설치된 상태에서 Inmotion의 공유 호스팅 서비스를 사용하고 있다고 생각합니다.

+0

이 슈퍼 무의미와 같지 않은가? 어쨌든 변환을 위해 cmdline 도구를 사용하고 있다는 뜻입니다. 그렇다면 왜 PHP 바인딩이 필요할까요? - 아니, 공유 호스팅에서 컴파일 할 수는 없습니다. – mario

답변

2

공유 호스팅을 사용하는 경우 PHP 확장을 빌드 할 수 있도록 쉘 액세스 권한이 있어야합니다. 호스팅이 공유되므로, php 구성 (php.ini)을 수정하여 ffmpeg 확장자를 자동으로로드 할 수 없습니다.

쉘 액세스 권한이 있고 스크립트를 컴파일 할 수있는 기능 (공유 호스팅에서 항상 일반적인 것은 아님)이있는 경우 확장 프로그램을 빌드하고 홈 디렉토리의 .so 파일을 어딘가에두고 dl() 함수를 사용하여로드해야합니다 스크립트에서 주문형 라이브러리.

일부 호스트는 dl() 또는 스크립트 컴파일 기능을 비활성화 할 수 있습니다. 쉘 액세스 권한이없는 경우 운이 없으며 호스트 만이이를 설치할 수 있습니다.

+0

셸 액세스 권한이 있다고 가정하면 확장 프로그램은 어떻게 작성합니까? – user701510

+0

확장 기능의 빌드는 phpize로 시작하는 방향입니다. './configure'에 접두사를 설정하여 홈 디렉토리를 구축해야합니다. 즉 ./configure --prefix =/home/myuser/ffmpg 또는 이와 비슷한 것입니다. 'make install'을 실행하면 접두사 디렉토리에 확장 프로그램이 설치됩니다. – drew010

+0

나는 그것의 요지를 얻는다. 하지만 코드를 어디에서 어떻게 정확하게 실행합니까? 나는'exec()'를 사용하여 PHP 파일을 만들고 그 행들을 실행합니까? – user701510