2011-11-19 17 views
0

내 사이트에서 ffmpeg 오디오 변환이 작동하지 않습니다. 아이디어는 파일이 사이트에 업로드 될 때 변환되어야한다는 것입니다.ffmpeg 오디오 변환이 작동하지 않습니다.

나는 오디오 파일의 형식을 결정하는 내 업로드 양식이있어 :

if(isset($_POST['audio']) && $_POST['audio'] != ''){ 
       $ext1 = substr($_POST['audio'], -4); 

이 MP3로 M4A 변환 내가 함께 왔어요 최고 :

if(isset($_POST['audio']) && $_POST['audio'] != ''){ $file = $_POST['audio'];  if($ext1==".m4a"){ $call="/usr/local/bin/ffmpeg -i ".$file." -ab 192k -f -acodec mp3";} 
$convert = (popen("start /b ".$call, "r")); pclose($convert); 

문제는 변환되지 않는다는 것입니다. ffmpeg 경로가 맞습니다.

이제는 내 머리 위로 끝날 수도 있지만 간단한 해결책이 있다면 듣고 싶습니다.

EDIT. 이와

:

if(isset($_POST['audio']) && $_POST['audio'] != ''){ 
    $file = $_POST['audio']; 
        $ext1 = substr($_POST['audio'], -4); /*get the last 4 chars*/ 
        $mp3 = echo 'mp3'; 
if($ext1=".m4a"){ 
"/usr/local/bin/ffmpeg -i \"". $file . "\" -ab 192k -y -f mp3 \"".ext1.$mp3."\""; 
} 
} 

나는 변환 자체 돈에 맞다 생각하지만, 제출시 양식은 무한히로드합니다. 그래서 나는 전환이 일어나고있는 것으로 추측하고있다. 그러나 그것이 언제 끝나는 지 형태는 알지 못한다. 그것에 대한 아이디어가 있습니까?

답변

1

사운드 프로세싱의 스위스 군용 나이프 인 SoX를 사용하십시오. 매우 사용하기 쉽습니다.

이것은 PHP 라이브러리가 아닌 명령 행 도구이므로 PHP에서 사용하려면 쉘 명령을 실행하고 코드에서 결과를 얻어야합니다. 몇 가지 프로젝트에서 사용했습니다. PHP와

예 :

삭스 크로스 플랫폼 다른 형식으로 컴퓨터 오디오 파일의 다양한 포맷을 변환 할 수 있습니다 (윈도우 등 리눅스, 맥 OS X,) 명령 줄 유틸리티입니다. 또한 이러한 사운드 파일에 다양한 효과를 적용 할 수 있으며, 추가 보너스로 SoX는 대부분의 플랫폼에서 오디오 파일을 재생하고 녹음 할 수 있습니다.

SoX는 매우 성숙한 프로젝트입니다! 여기 http://sox.sourceforge.net/

내가 당신을 위해 봤 몇 가지 예입니다 : http://www.thegeekstuff.com/2009/05/sound-exchange-sox-15-examples-to-manipulate-audio-files/

+0

나도 삭스를 사용, 매우 유용한 프로그램 여기 링크입니다. – Flinth

관련 문제