linux部署支持psd等文件预览,视频缩略图/视频转码

2023-04-18 15:39:41 浏览数 (1)

环境要求

  • 操作系统: CentOS 7 、Ubtntu 14 、Debian 8 、RedHat 7 ;推荐CentOS 7.4
  • 建议服务器内存4G以上;
  • 删除php禁用函数:exec,shell_exec,proc_open,proc_close。

一、安装转换工具软件

1. Linux下,安装ImageMagick 及FFmpeg等依赖组件

代码语言:javascript复制
# CentOS下安装
yum install ImageMagick dcraw ghostscript ffmpeg libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel freetype zlib
# 安装ffmpeg(视频缩略图,视频转码)
curl http://doc.kodcloud.com/tools/psd/install.sh | sh

#其他Ubuntu,Redhat安装
apt-get install ImageMagick dcraw ghostscript ffmpeg libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel freetype zlib

# 安装完成后测试(没有报错说明安装成功)
convert && dcraw && ffmpeg
1.1 CentOS8下安装
代码语言:javascript复制
# 1.安装ImageMagick
sudo dnf install epel-release
sudo dnf config-manager --set-enabled PowerTools
sudo dnf update
sudo dnf install ImageMagick ImageMagick-devel
sudo dnf groupinstall "Development Tools"
sudo dnf install git

# 如果有包含ffmpeg的源,可以直接安装ffmpeg; 如果缺少依赖报错可以编译安装;
yum install ffmpg

# 2.编译安装ffmpeg依赖的转码库libx264
git clone https://code.videolan.org/videolan/x264.git
cd x264 && ./configure --disable-asm --enable-shared --enable-static
make && make install
mkdir /usr/share/x264 && cp ./x264.pc /usr/share/x264/
export PKG_CONFIG_PATH=/usr/share/x264
ldconfig

# 3.编译安装ffmpeg
cd ../
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --disable-x86asm  --enable-pthreads --enable-libx264 --enable-gpl --enable-pic --enable-shared
make && make install

echo "/usr/local/lib/" >> /etc/ld.so.conf
ldconfig

# 4.安装dcraw
dnf install dcraw

2. Mac下安装

代码语言:javascript复制
#通过brew,未安装brew则先安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# 安装ImageMagick
brew install ImageMagick dcraw ghostscript ffmpeg libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel freetype zlib

# 安装完成后测试(没有报错说明安装成功)
convert && dcraw && ffmpeg

二、修改php.ini 超时时间及内存限制

由于超过20M的psd,ai等文件,转换时可能会比较耗时间,所以建议php的超时时间及内存限制给大点(也可以不做调整)

代码语言:javascript复制
max_execution_time = 1200
max_input_time = 1200
memory_limit = 512M

修改保存后,需要重启web服务器才能生效. ffmpeg 视频转码是否正常,可以手动尝试转换一个文件,试试看有无报错(依赖库及解码器是否正常), eg: ffmpeg -i input.avi output.mp4

0 人点赞