最新消息: 新版网站上线了!!!

php利用安装ffmpeg-php扩展来获取对视频信息操作

最近在做视频模块,要求获取视频的相关信息,比如视频的时长,分辨率的长宽,还有就是视频帧数还有截图等,通过查找资料,最佳的方案就是安装ffmpeg-php这个PHP扩展能提供这样的功能接口。
  1. 资料参考: 
  2.  
  3. http://wiki.mediatemple.net/w/(dv):Installing_FFmpeg_and_FFmpeg-php 
  4.  
  5. http://www.mysql-apache-php.com/ffmpeg-install.htm 
  6.  
  7. #svn源地址 
  8.  
  9. https://ffmpeg-php.svn.sourceforge.net/svnroot/ffmpeg-php 
  10.  
  11. #可使用软件版本:ffmpeg-php-0.6.1  分支:/branches/ffmpeg-php/ffmpeg-php-0.6.1 
  12. #最新版本:ffmpeg-php-0.7.1  trunk/ffmpeg-php 编译报错 不可用 
安装顺序:
  1. 1.ffmpeg 
  2. 2.ffmpeg-devel 
  3. 3.ffmpeg-php 
安装ffmpeg ffmpeg-devel
操作系统:CentOS 6.2 minimal
由于默认的CentOS的软件仓库里没有FFmpeg、FFmpeg-PHP,所以安装第三方的软件仓库。
  1. vim /etc/yum.repos.d/dag.repo 
  2. #输入: 
  3. [dag] 
  4. name=Dag RPM Repository for Red Hat Enterprise Linux 
  5. baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag 
  6. gpgcheck=0 
  7. enabled=1 
  8. #gpgcheck 默认为0即可!设置gpgcheck=1会让yum检查每个下载的RPM的GnuPG签名。这么做是因为你需要适当的GnuPG key注册到您的RPM数据库。可以防止被欺骗. 
  9.  
  10. #安装 Install ffmpeg 等模块 
  11. yum -y install ffmpeg ffmpeg-devel 
安装php-ffmpeg
  1. #下载地址
  2. 这个安装错误己修复 可以正常安装
  3. wget http://img.kuitao8.com/uploads/2015/0916/20150916100916263.zip
  4. unzip 20150916100916263.zip
  5. tar zxvf **.tar
  6. cd 目录 
  7. 首先make clean下
  8. 再运行
  9. /usr/local/php/bin/phpize 
  10. ./configure --with-php-config=/usr/local/php/bin/php-config --enable-skip-gd-check &make
     

下一步
 

  1. make install 
  2. //然后 
  3. echo "extension=ffmpeg.so" >> /usr/local/php/etc/php.ini 
  4. //重启 
  5. service php-fpm restart 



安装成功


测试

 

  1. <?php 
  2. $movefile = "./4.mp4"
  3. $mov = new ffmpeg_movie($movefile); 
  4.     printf("file name = %s\n"$mov->getFileName()); 
  5.     printf("duration = %s seconds\n"$mov->getDuration()); 
  6.     printf("frame count = %s\n"$mov->getFrameCount()); 
  7.     printf("frame rate = %0.3f fps\n"$mov->getFrameRate()); 
  8.     printf("comment = %s\n"$mov->getComment()); 
  9.     printf("title = %s\n"$mov->getTitle()); 
  10.     printf("author = %s\n"$mov->getAuthor()); 
  11.     printf("copyright = %s\n"$mov->getCopyright()); 
  12.     printf("get bit rate = %d\n"$mov->getBitRate()); 
  13.     printf("has audio = %s\n"$mov->hasAudio() == 0 ? 'No' : 'Yes'); 
  14.     if ($mov->hasAudio()) { 
  15.         printf("get audio stream id= %s\n"$mov->getAudioStreamId()); 
  16.         printf("get audio codec = %s\n"$mov->getAudioCodec()); 
  17.         printf("get audio bit rate = %d\n"$mov->getAudioBitRate()); 
  18.         printf("get audio sample rate = %d \n"$mov->getAudioSampleRate()); 
  19.         printf("get audio channels = %s\n"$mov->getAudioChannels()); 
  20.     } 
  21.     printf("has video = %s\n"$mov->hasVideo() == 0 ? 'No' : 'Yes'); 
  22.     if ($mov->hasVideo()) { 
  23.         printf("frame height = %d pixels\n"$mov->getFrameHeight()); 
  24.         printf("frame width = %d pixels\n"$mov->getFrameWidth()); 
  25.         printf("get video stream id= %s\n"$mov->getVideoStreamId()); 
  26.         printf("get video codec = %s\n"$mov->getVideoCodec()); 
  27.         printf("get video bit rate = %d\n"$mov->getVideoBitRate()); 
  28.         printf("get pixel format = %s\n"$mov->getPixelFormat()); 
  29.         printf("get pixel aspect ratio = %s\n"$mov->getPixelAspectRatio()); 
  30.         $frame = $mov->getFrame(10); 
  31.         printf("get frame = %s\n"is_object($frame) ? 'true' : 'false'); 
  32.         printf("  get frame number = %d\n"$mov->getFrameNumber()); 
  33.         printf("  get frame width = %d\n"$frame->getWidth()); 
  34.         printf("  get frame height = %d\n"$frame->getHeight()); 
  35.     } 
  36.     echo "\n--------------------\n\n"

 

转载请注明:谷谷点程序 » php利用安装ffmpeg-php扩展来获取对视频信息操作