项目中遇到视频列表要显示图片问题,这个问题就抛给了后端,没办法只能去研究一下,发现直接npm fluent-ffmpeg这个包,会提示找不到ffmpeg,查了下资料,发现服务器还必须安装ffmpeg,,好了,下面开始ffmpeg安装路程。。。
1.先去ffmpeg官网下载源码包 ffmpeg-3.4.1.tar.bz2
2.解压安装包 tar-xjvf ffmpeg-3.4.1.tar.bz2
3.进入解压后的文件夹,注意这个时候不能直接编译,会报错yasm/nasm 包不存在或者很旧,所以这里安装一下yasm即可,下载地址是:http://yasm.tortall.net/Download.html 进入后下载1.3.0的源码包
4.tar -xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install
5.安装成功之后继续回到ffmpeg解压后的目录,执行下面命令编译并安装:
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
过程有点长,耐心等待。。。
6.检查是否安装成功:
/usr/local/ffmpeg/bin/ffmpeg --version
报错如下:
/usr/local/ffmpeg/bin/ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory
提示库文件找不到。
修改文件/etc/ld.so.conf 内容增加/usr/local/ffmpeg/lib/
vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib/
使修改生效
ldconfig
执行 /usr/local/ffmpeg/bin/ffmpeg --version
7.这样就安装好了ffmpeg,但是代码执行中还是提示找不到ffmpeg,这个时候就要把ffmpeg的路径添加到环境变量中
export PATH=/usr/local/ffmpeg/bin/:$PATH
修改profile文件:
#vi /etc/profile
在里面加入:
export PATH="$PATH:/usr/local/ffmpeg/bin"
修改.bashrc文件:
# vi /root/.bashrc
在里面加入:
export PATH="$PATH:/usr/local/ffmpeg/bin"
得重启服务器才能生效
8.最后在代码中就可以实现截取图片了
var exec= require('child_process').exec
exec("ffmpeg -ss 00:00:01 -i "+imgurl+" -y -f image2 -t 0.001 videos.jpg", function() {
})