2011-01-12 2 views
1

나는 PHP에 대해 아주 익숙하다. 나는 최근에 내 맥에서 PHP를 설치하고 fvmpeg-php를 설정하여 다양한 비디오를 flv 또는 원하는 다른 포맷으로 변환하려고합니다. 이 튜토리얼 FFmpeg Mac Installation을 사용했고 터미널을 사용하여 ffmpeg를 얻었습니다. 그러나 PHP를 사용하여 영화를 인코딩하려고하면 오류가 발생합니다. 내 아파치 error_log 파일에 flv 파일 옆에 권한이 거부되었습니다 (아래 참조). GCC 4.2.1로 2010년 12월 30일 8시 36분 24초에 내장localhost에서 ffmpeg-php 사용 권한이 거부되었습니다.

는 FFmpeg 버전 0.6, 저작권 (C) 2000-2010는 FFmpeg 개발자
(애플사가 5646을 구축) (점 1) 설정 : --prefix =/usr/local - 사용 가능 공유 - 사용 불가 -mmx - 사용 가능 libmp3lame - 사용 가능 gpl - 사용 가능 libfaad - 사용 가능 -zlib - 사용 가능 libvorbis - 사용 가능 - libfaac - 사용 가능 - nonfree

libavutil 50.15. 1/50.15. libavcodec 52.72. 2/ 52.72. 2
libavformat 52.64. 2/52.64. 2
libavdevice 52. 2. 0/52. 2. 0
libswscale 0.11. 0/0.11. > 30.00 (30/1)
입력 # 0 에서 MOV, MP4, M4A, 3GP, 3G2, MJ2 '- 1200.00 (1분의 1,200) : 0
스트림 1 코덱의 프레임 레이트 컨테이너 프레임 레이트 상이 보인다 /Users/myApple/Sites/AdHere/test.mov '
메타 데이터
major_brand : QT
는 minor_version에 537,199,360
compatible_brands : QT
는 시간 : 00 : 00 : 02.04이 시작 : 0.000000 , 비트 레이트 : 1,109 kb/s
스트림 # 0.0 (eng) : 오디오 : aac, 44100 Hz, 스테레오, s16, 97 kb/s
스트림 # 0.1 (eng) : 비디오 : h264, yuv42 0P, 640 × 480, 1,027킬로바이트/S, 30.15 FPS,
/Users/myApple/Sites/AdHere/movteststuff.flv TBC (30) TBR, 600 TBN, 1200 : 허가가 난 아무 생각이

을 거부 무엇을 문제는. 나는 다음과 같은 PHP 코드를 사용하고 있습니다 : 그는 FFmpeg - PHP 작업의 종류 믿고 날 리드 파일 이름, frameHeight에, framewidth 같은 다양한 매개 변수를 볼 수 있어요

<?php 
extension_loaded('ffmpeg') or die('Error in loading ffmpeg'); 

$ffmpegInstance = new ffmpeg_movie('test.AVI'); 
echo "getDuration: " . $ffmpegInstance->getDuration() . 
"<br>getFrameCount: " . $ffmpegInstance->getFrameCount() . 
"<br>getFrameRate: " . $ffmpegInstance->getFrameRate() . 
"<br>getFilename: " . $ffmpegInstance->getFilename() . 
"<br>getComment: " . $ffmpegInstance->getComment() . 
"<br>getTitle: " . $ffmpegInstance->getTitle() . 
"<br>getAuthor: " . $ffmpegInstance->getAuthor() . 
"<br>getCopyright: " . $ffmpegInstance->getCopyright() . 
"<br>getArtist: " . $ffmpegInstance->getArtist() . 
"<br>getGenre: " . $ffmpegInstance->getGenre() . 
"<br>getTrackNumber: " . $ffmpegInstance->getTrackNumber() . 
"<br>getYear: " . $ffmpegInstance->getYear() . 
"<br>getFrameHeight: " . $ffmpegInstance->getFrameHeight() . 
"<br>getFrameWidth: " . $ffmpegInstance->getFrameWidth() . 
"<br>getPixelFormat: " . $ffmpegInstance->getPixelFormat() . 
"<br>getBitRate: " . $ffmpegInstance->getBitRate() . 
"<br>getVideoBitRate: " . $ffmpegInstance->getVideoBitRate() . 
"<br>getAudioBitRate: " . $ffmpegInstance->getAudioBitRate() . 
"<br>getAudioSampleRate: " . $ffmpegInstance->getAudioSampleRate() . 
"<br>getVideoCodec: " . $ffmpegInstance->getVideoCodec() . 
"<br>getAudioCodec: " . $ffmpegInstance->getAudioCodec() . 
"<br>getAudioChannels: " . $ffmpegInstance->getAudioChannels() . 
"<br>hasAudio: " . $ffmpegInstance->hasAudio(); 

exec('ffmpeg -i /Users/myApple/Sites/AdHere/test.mov /Users/myApple/Sites/AdHere/movteststuff.flv'); 



?> 

,하지만 어쩌면 내가 뭔가를하고있는 중이 야 exec() 명령에서 잘못되었습니다. 누구나 아이디어가 있습니다. 나는 꽤 오랫동안 ffmpeg를 설정하는 데 어려움을 겪고있다.

감사합니다.

-Jon

답변

0

대부분의 경우 는 PHP가로 실행하는 사용자는 해당 디렉토리에 대한 쓰기 권한이 없습니다. 대상 디렉토리의 권한을 확인하고 PHP 스크립트를 실행하는 모든 사용자와 일치하는지 확인하십시오.

+0

와우, 그렇게 생각합니다. 너는 최고야! – user572271

0

그냥 권한 문제입니다 ...

은 777 권한으로는 FFmpeg을 확인합니다.