本文目录一览:
有谁在phpstudy下安装过ffmpeg的php扩展
在官网上找了ffmpeg的php扩展来装,发现无法加载扩展,查看后得知官网的php扩展版本是vc6,而php5.4是vc9编译的。在网上找了个php5.4的对应的ffmpeg的php扩展,地址是:
求大神帮忙解决php-mpeg扩展问题
装php-ffmpeg扩展,ffprobe对象是可以侦测大多数媒体格式信息的。 目前也这样最简单。。 我学过mp4/3gp/flv、mkv、avi的格式,读信息就是要多写一堆文件操作函数而已多花几天,但这样最直接不需要挂扩展。还是用php-ffmpeg省事。不重复发明轮子。
怎样在windows下配置ffmpeg-php
首先介绍下我使用的集成环境wamp。
PHP: php5.2.6
Apache: apache2.2.8
- 下载ffmpeg-php
- 解压ffmpeg-php-win32-all.zip 后有下面几个文件:
- avcodec-51.dll
- avformat-51.dll
- avutil-49.dll
- php_ffmpeg.dll
- pthreadGC2.dll
- 将四个文件拷贝到windows\system32文件夹下面(小插曲:之前自己再配置时候按照网上的文章只拷贝两个文件 avcodec-51.dll, avformat-51.dll到这个文件,结果发现并不能配置成功。后来将后面avutil-49.dll, pthreadGC2.dll全部拷贝过去就成功了,很有可能这四个文件是有一定关联使用的。)
avcodec-51.dll, avformat-51.dll, avutil-49.dll, pthreadGC2.dll
- 然后需要到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
- 重新启动wamp后使用phpinfo()函数看到一下信息配置: //我两个环境一个apache一个IIS,iis不用重启就生效了,apache没试不知道, add by aboc
以上就表明ffmpeg在php环境中配置成功了。ffmpeg ffmpeg-php version 0.5.2.1 libavcodec version Lavc51.43.0 libavformat version Lavf51.12.2 ffmpeg-php gd support enabled
- 下面我们建立一个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(); ?>
- 执行后如果拿到视频的一些信息如下就表示环境配置成功了,那我们就可以开始开发我们的视频转换了。
执行结果:
视频截图的话如下方法: //add by abocgetDuration: 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
$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" />';