Linux ffmpeg安装方法2018-11-02 00:42:14

( 1人已投票,[高质量] )
分享: ╬收藏
31.3K

关健词:centos 6.10/PHP ffmpeg

许多人在初次安装ffmpeg进行视频处理的时候总是不顺利,本人试过以后确实有许多坑,给后面安装的同志们包括一些linux命令用不熟悉的童鞋参考,祝你们顺利

首先下载tar包,当前的最新版本是4.0.2下载链接:http://ffmpeg.org/download.html

下载下来传到服务器上去,比如/mnt文件夹内

下面进行解压:tar -jxvf ffmpeg-x.x.tar.bz2    //x.x.x为对应的版本,名称一定要一致

如果提示找不到文件,说明没有跳转到目录,如果你用的是putty连接工具(雪炭网搜"putty"),连接后输入: cd /mnt

这样就能找到文件了

解压完成后进入目录

cd ffmpeg-x.x

编译安装

./configure --enable-shared && make && make install


注意:如果这句提示:yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild

解决方法:

安装yasm编译器。安装方法如下:

在http://www.tortall.net/projects/yasm/releases下面找到适合自己平台的yasm版本。然后进行安装。举例如下:

1)下载:wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

如果下载时间一直超时,自己去平台下载,然后向上面我说的方法放到mnt文件夹里解压

2)解压:tar zxvf yasm-1.3.0.tar.gz

3)切换路径: cd yasm-1.3.0

4)执行配置: ./configure

5)编译:make

6)安装:make install

到这里yasm就更新了,可以继续执行ffmpeg安装了。


编译安装时间会很久,可能要十来分钟,静心等待

安装完成进行测试:ffmpeg -version


注意:如果提示ffmpeg: error while loading shared libraries:libavdevice.so.58:cannot open shared object file:no such file or directory

说明ffmpeg未找到相关依赖包,解决方法如下:

先执行:find / -name libavdevice.so.58    //注意,这个58的名字,就是上面提示时候的名字,要查找它要求的包地址,不然无返回内容的!

我这边提示的是:/usr/local/lib/libavdevice.so.58

有不会用vim的,这里提示下简单的操作:

在第一个界面中,按下i键,会进入编辑界面且左下有个insert字样,这样,你上下左右调整位置,在下面随便哪一行输入刚上显示的文件夹路径("/usr/local/lib"),完成后按ESC键退出编辑模式,接着输入":wq”然后回车以退出并保存刚刚输入的内容。这样就保存好了,(查看的话,可以这样cat /etc/ld.so.conf,内容是不是在里面了Linux ffmpeg安装方法

最后一步,输入刷新一下 ldconfig,如果执行 ldconfig: command not found 需要export PATH=”$PATH:/sbin”

接着执行:ffmpeg -version  版本信息就出来了


ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers

built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-23)

configuration: --enable-shared

libavutil      56. 14.100 / 56. 14.100

libavcodec     58. 18.100 / 58. 18.100

libavformat    58. 12.100 / 58. 12.100

libavdevice    58.  3.100 / 58.  3.100

libavfilter     7. 16.100 /  7. 16.100

libswscale      5.  1.100 /  5.  1.100

libswresample   3.  1.100 /  3.  1.100


到这里,跳过这些坑,ffmpeg就算安装完成了


附两段PHP常用代码:

//生成缩略图并保存在路径下
function getVideoCover($file,$name) {
  $cmd = "ffmpeg -i $file -y -f image2 -ss 00:00:01 -vframes 1 /var/www/html/test.jpg 2>&1";
  $res = exec($cmd,$arr,$status);
var_dump($arr);
var_dump($status);
}
define('FFMPEG_PATH', '/usr/ffmpeg -i "%s" 2>&1');
function getVideoInfo($file) { 
 $command = sprintf(FFMPEG_PATH, $file); 
 ob_start();
 passthru($command);
 $info = ob_get_contents();
 ob_end_clean();
                                                            
 $data = array();
 if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
  $data['duration'] = $match[1]; //播放时间
  $arr_duration = explode(':', $match[1]);
  $data['seconds'] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //转换播放时间为秒数
  $data['start'] = $match[2]; //开始时间
  $data['bitrate'] = $match[3]; //码率(kb)
 }
 if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
  $data['vcodec'] = $match[1]; //视频编码格式
  $data['vformat'] = $match[2]; //视频格式
  $data['resolution'] = $match[3]; //视频分辨率
  $arr_resolution = explode('x', $match[3]);
  $data['width'] = $arr_resolution[0];
  $data['height'] = $arr_resolution[1];
 }
 if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
  $data['acodec'] = $match[1]; //音频编码
  $data['asamplerate'] = $match[2]; //音频采样频率
 }
 if (isset($data['seconds']) && isset($data['start'])) {
  $data['play_time'] = $data['seconds'] + $data['start']; //实际播放时间
 }
 $data['size'] = filesize($file)/(1024*1024); //文件大小M
 return $data;
}

注意,路径要与自己的一致!看第一个函数里的提示部分就会知道

如果不知自己的ffmpeg在哪里,可以命令查询 whereis ffmpeg


下一篇:没有了



头像

snowcoal
  • php
  • ffmpeg
  • centos

本文标签:

phpffmpegcentos

收藏到我的私密空间

标题:Linux ffmpeg安装方法

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限