1

我对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-nonfree

libavutil 50.15。1 / 50.15。1
libavcodec 52.72。2 / 52.72。2
库格式 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)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/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赫兹、立体声、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。

谢谢!

-乔恩

4

2 回答 2

0

只是权限问题...

将 ffmpeg 设为 777 权限。

于 2014-02-06T04:34:30.473 回答
0

最有可能的是,运行 PHP 的用户没有对相关目录的写入权限。检查目标目录的权限并确保它与执行 PHP 脚本的任何用户匹配。

于 2011-01-12T06:49:23.807 回答