本文目录一览:
- 1、有谁在phpstudy下安装过ffmpeg的php扩展
- 2、PHP 'ffmpeg' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 3、php5.4.16安装ffmpeg
- 4、怎样在windows下配置ffmpeg-php
- 5、求大神帮忙解决php-mpeg扩展问题
- 6、php扩展ffmpeg-php安装出错
有谁在phpstudy下安装过ffmpeg的php扩展
在官网上找了ffmpeg的php扩展来装,发现无法加载扩展,查看后得知官网的php扩展版本是vc6,二php5.4是vc9编译的。在网上找了个php5.4的对应的ffmpeg的php扩展,地址是:
PHP 'ffmpeg' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
LZ,system()是执行外部程序的函数,如果你要按扩展去使用它的话,不能这么用。
ffmpeg扩展的文档地址:
若你要用system()的方法去运行FFMPEG的话(不推荐这样做),你应该首先下载一个ffmpeg
地址:
然后写成这样
system("FFMPEG安装路径/ffmpeg.exe -i 1111.amr out.mp3");
php5.4.16安装ffmpeg
可以直接写exec函数调用ffmpeg命令行工具。
记得之前的php-ffmpeg扩展也是同样包装了一下ffmpeg。
怎样在windows下配置ffmpeg-php
首先介绍下我使用的集成环境wamp。
PHP: php5.2.6
Apache: apache2.2.8
1.下载ffmpeg-php
2. 解压ffmpeg-php-win32-all.zip 后有下面几个文件:
avcodec-51.dll
avformat-51.dll
avutil-49.dll
php_ffmpeg.dll
pthreadGC2.dll
3. 将四个文件拷贝到windows\system32文件夹下面(小插曲:之前自己再配置时候按照网上的文章只拷贝两个文件 avcodec-51.dll, avformat-51.dll到这个文件,结果发现并不能配置成功。后来将后面avutil-49.dll, pthreadGC2.dll全部拷贝过去就成功了,很有可能这四个文件是有一定关联使用的。)
avcodec-51.dll, avformat-51.dll, avutil-49.dll, pthreadGC2.dll
4. 然后需要到apache\bin文件下找到php.ini文件下允许使用dll文件加入extension=php_ffmpeg.dll 并允许 extension=php_gd2.dll, extension=php_gettext.dll这两个
改动后如下(去掉前面的分号就代表允许执行)
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_ffmpeg.dll
5. 重新启动wamp后使用phpinfo()函数看到一下信息配置: //我两个环境一个apache一个IIS,iis不用重启就生效了,apache没试不知道, add by aboc
ffmpeg
ffmpeg-php version 0.5.2.1
libavcodec version Lavc51.43.0
libavformat version Lavf51.12.2
ffmpeg-php gd support enabled
以上就表明ffmpeg在php环境中配置成功了。
6. 下面我们建立一个php的页面来测试是不是可以使用ffmpeg的一些函数功能。建立testvideo.php文件
代码如下:
?php
extension_loaded('ffmpeg'); //可不要
$ffmpegInstance = new ffmpeg_movie('C:\wamp\www\top10.mp4'); //这里要用绝对路径
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();
?
7.执行后如果拿到视频的一些信息如下就表示环境配置成功了,那我们就可以开始开发我们的视频转换了。
执行结果:
getDuration: 811.13336181641
getFrameCount: 12167
getFrameRate: 15
getFilename: C:\wamp\www\top10.mp4
getComment:
getTitle:
getAuthor:
getCopyright:
getArtist:
getGenre:
getTrackNumber: 0
getYear: 0
getFrameHeight: 240
getFrameWidth: 320
getPixelFormat: yuv420p
getBitRate: 269769
getVideoBitRate:
getAudioBitRate:
getAudioSampleRate: 48000
getVideoCodec: mpeg4
getAudioCodec: mpeg4aac
getAudioChannels: 2
hasAudio: 1
视频截图的话如下方法: //add by aboc
$ff_frame = $ffmpegInstance-getFrame(rand(1,$ffmpegInstance-getFrameCount())); //随机截取某一帧
$gd_image = $ff_frame-toGDImage();
imagejpeg($gd_image,'t.jpg');
imagedestroy($gd_image);
echo 'img src="t.jpg" /';
求大神帮忙解决php-mpeg扩展问题
装php-ffmpeg扩展,ffprobe对象是可以侦测大多数媒体格式信息的。
目前也这样最简单。。
我学过mp4/3gp/flv、mkv、avi的格式,读信息就是要多写一堆文件操作函数而已多花几天,但这样最直接不需要挂扩展。还是用php-ffmpeg省事。不重复发明轮子。
php扩展ffmpeg-php安装出错
php里配置ffmpeg扩展模块,但是没加载成功,去下个包装下吧
参考下