我是php的新手。我最近在我的mac上安装了php,我正在尝试设置ffmpeg-php以根据需要将各种视频转换为flv或其他格式。我使用了这个教程FFmpeg Mac Installation并且我使用终端进行ffmpeg工作,但是,当我尝试使用php编码电影时,我收到错误。在我的apache error_log文件中,它表示flv文件旁边的权限被拒绝(如下所示)。
FFmpeg版本0.6,版权所有(c) 2000-2010 FFmpeg开发商
建立于2010年12月30日08:36:24与gcc 4.2.1(Apple Inc. build 5646)(第1点)配置: - prefix = / usr / local --enable-shared --disable -mmx --enable-libmp3lame --enable-gpl --enable-libfaad --enable-zlib --enable-libvorbis --enable-libfaac --enable-nonfreelibavutil 50.15。 1 / 50.15。 1
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。 0
似乎流1编解码器帧速率不同于 集装箱框架率:1200.00(1200/1) - > 30.00(30/1)
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自 '/Users/myApple/Sites/AdHere/test.mov':
元数据:
major_brand:qt
minor_version:537199360
compatible_brands:qt
持续时间:00:00:02.04,开始: 0.000000,比特率:1109 kb / s
流#0.0(eng):音频:aac,44100 Hz,立体声,s16,97 kb / s
流#0.1(eng):视频:h264,yuv420p,640x480,1027 kb / s,30.15 fps,30 tbr,600 tbn,1200 tbc
/Users/myApple/Sites/AdHere/movteststuff.flv: 许可被拒绝
我不知道问题是什么。我使用以下PHP代码:
<?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');
?>
我能够看到各种参数,如文件名,帧高,帧宽,这让我相信ffmpeg-php有点工作,但也许我只是在exec()命令中做错了。有人有主意吗。我一直在努力设置ffmpeg很长一段时间。
谢谢!
-Jon
答案 0 :(得分:0)
最有可能的是,运行PHP的用户没有对相关目录的写访问权。检查目标目录的权限,并确保它与执行PHP脚本的用户匹配。
答案 1 :(得分:0)
这只是权限问题......
将ffmpeg设为777权限。