linux服务器安装ffmpeg(未验证)
先到ffmpeg官网下载安装包,下载链接 http://ffmpeg.org/download.html
下载后上传到服务器,解压安装包
tar -jxvf ffmpeg-x.x.tar.bz2
进入目录
cd ffmpeg-x.x
编译安装
./configure --enable-shared && make && make install
如果编译报错,请加选项(报错会提示选项内容)
./configure --enable-shared --选项 && make && make install
安装完成之后 执行
ffmpeg -version
如果出现ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
编辑/etc/ld.so.conf文件加入如下内容
/usr/local/lib
保存退出后执行ldconfig命令
如果能够出现类似下列信息,说明ffmpeg安装成功。
ffmpeg version 2.5.11 Copyright (c) 2000-2016 the FFmpeg developers built on Apr 17 2017 16:47:15 with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11) configuration: --enable-shared libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100
php程序中使用ffmpeg生成视频第一帧图片
/*$file可以为"http://www.aaa.mp4",又可以为"/Uploads/2018/0828/aaa.mp4"; $time可不填,默认取0.01秒*/ function getVideoCover($file,$time) { if(empty($time))$time = 0.01;//默认截取第0.01秒第一帧,也可以传0 $bool = strpos($file,'http');//查找是不是http格式的地址,是的话也可以获取第一帧图片的 if($bool === false){ $file_name = $_SERVER['DOCUMENT_ROOT'].''.$file; }else{ $file_name = $file; } $return_name = '/Uploads/'.date('Y').'/'.date('md').'/'.md5('vsonter_'.time().mt_rand(1,99999)).'.png'; $save_name = $_SERVER['DOCUMENT_ROOT'].$return_name; $re = pathinfo($save_name); if (!file_exists($re['dirname'])) { recursiveMkdir($re['dirname']); } // $str = "ffmpeg -i ".$file_name." -y -f mjpeg -ss ".$time." -t 0.001 -s 320x240 ".$save_name; $str = "ffmpeg -ss ".$time." -i ".$file_name." -y -f mjpeg -t 0.001 ".$save_name; system($str,$result); if($result == 0){ return $return_name;// 返回的路径格式为 /Uploads/2018/0814/2354454853146134d7329a1c3ede99f4.png } }
注意:如果php调用system命令不生效,则在php.ini关闭禁用的system命令即可,即把disable_functions下的system函数删掉
vim /usr/local/php/etc/php.ini
disable_functions = passthru,exec,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru