개발 Q&A

제목 shell_exec ffmpeg가 실행되지 않는 이유가 뭘까요...
카테고리 PHP
글쓴이 madman 작성시각 2017/04/27 16:37:00
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12138   RSS

본의 아니게 비슷한 질문을 계속 드리게 되네요.. 양해 부탁드립니다. ㅠㅠ

 

제목에서 언급했지만 ffmpeg 속성을 shell_exec 명령어로 실행하고자 하는건데요. 

먼저 아래와 같이 예를 들어 소스단에서 실행시키면 

 

$output = shell_exec('find -name *.mp3 > /home/www/common/media_put_file/mp3List.txt ');
echo '<pre>'.$output.'</pre>';

 

해당 경로로 mp3List.txt 파일도 잘 들어가지고 목록도 채워져있습니다. 

 

그런 의미에서 원래 목적이던 두개의 음원 병합을 해보기 위해 아래와 같이 소스로 실행시켜보면 

 

	 $AFile = '/A/www/common/upload/A.mp3';  //A 서버의 A 음원
	 $BFile = '/B/www/common/upload/B.mp3'; //B 서버의 B 음원
	 $CFile = '/C/www/common/media_put_file/new.mp3';

	 $output = shell_exec('ffmpeg -i concat:"{$AFile}|{$BFile}  ${CFile}');

 

아무런 반응이 없네요.

이거 말고도 동영상으로 비슷한 테스트를 해봐도 문제는 ffmpeg가 소스단에서 실행이 되지 않는다는건데.. 어떻게 해줘야할지 막막하네요. putty로 콘솔창을 열어서 ffmpeg를 실행시키면 잘 되는데 말입니다. 경로를 잘못 잡은건지, 아니면 ffmpeg를 설치해야하는건지..  조언 주실 수 있을까요? 이거 생각보다 사람 미치게 만드네요.. 

 다음글 드레그엔드롭 (4)
 이전글 서로 다른 디비 서버에 흩어져 있는 정보를 가져오고 집... (5)

댓글

변종원(웅파) / 2017/04/27 17:31:17 / 추천 0

다른 서버의 파일을 웹주소로 접근이 안될거구요. 위처럼 하려면 각 서버들이 nfs로 연결되어 있거나

다른 서버의 파일을 현재 서버로 가져와야 가능합니다. 웹접근과 로컬접근을 혼동하지 마세요

kaido / 2017/04/28 09:08:04 / 추천 0

여담입니다만...

아마존 S3의 경우엔 저런것도 가능 ( ..)

웹 접근해서 가져오는 파일을 로컬처럼 처리가 가능합니다.