检测安装 yasm
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make && make install
安装ffmpeg
下载ffmpeg压缩包,并解压
wget http://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz
tar xf ffmpeg-4.3.1.tar.xz
进入目录,设置安装目录并安装
cd ffmpeg-4.3.1/
./configure --prefix=/usr/local/ffmpeg
make && make install
配置ffmepg的环境变量
vi /etc/profile
输入 ‘i’ 开始编辑
# 在最后添加PATH环境变量
export PATH="$PATH:/usr/local/ffmpeg/bin"
保存,并结束编辑
esc
# 输入
:wq
# 设置环境变量生效
source /etc/profile
查看ffmepg版本
ffmpeg -version
Demo:PHP获取视频的第一帧作为封面图
// 文件命名规则:登录会员id-视频地址的md5加密
$file_path = time() . ".jpg";
get_cover_by_video('视频地址', '图片的绝对路径', $return_val);
if ( $return_val != 0 ) { // 如果false,那么就是获取失败
throw new Exception('视频封面获取失败,请重试');
}
if ( !function_exists('get_cover_by_video') ) {
/**
* 通过 ffmpeg 获取视频的第一帧,存储为图片
*
* @param string $video_path 视频地址
* @param string $cover_file_path 图片存储地址
* @param $output 检测失败与成功:空数组则失败,0:成功
*/
/**
* @param string $video_path 视频地址
* @param string $cover_file_path 图片存储地址
* @param null $return_val 0.表示成功
* @param null $output
* @param string $ffmpeg_path ffmpeg的环境变量
*/
function get_cover_by_video(string $video_path, string $cover_file_path, &$return_val = null, &$output = null, string $ffmpeg_path = '/usr/local/ffmpeg/bin/ffmpeg')
{
// -s 286x160 是设置图片尺寸(放在 -f rawvideo 后面)
//-L license
//-h 帮助
//-fromats 显示可用的格式,编解码的,协议的...
//-f fmt 强迫采用格式fmt
//-I filename 输入文件
//-y 覆盖输出文件
//-t duration 设置纪录时间 hh🇲🇲ss[.xxx]格式的记录时间也支持
//-ss position 搜索到指定的时间 [-]hh🇲🇲ss[.xxx]的格式也支持
//-title string 设置标题
//-author string 设置作者
//-copyright string 设置版权
//-comment string 设置评论
//-b bitrate 设置比特率,缺省200kb/s
//-r fps 设置帧频 缺省25
//-s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:
//Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
//-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
//-croptop size 设置顶部切除带大小 像素单位
//-cropbottom size –cropleft size –cropright size
//-padtop size 设置顶部补齐的大小 像素单位
//-padbottom size –padleft size –padright size –padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
//-vn 不做视频记录
//-bt tolerance 设置视频码率容忍度kbit/s
//-maxrate bitrate设置最大视频码率容忍度
//-minrate bitreate 设置最小视频码率容忍度
//-bufsize size 设置码率控制缓冲区大小
//-vcodec codec 强制使用codec编解码方式。如果用copy表示原始编解码数据必须被拷贝。
//-sameq 使用同样视频质量作为源(VBR)
//-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
//-passlogfile file 选择两遍的纪录文件名为file
$command = $ffmpeg_path . ' -v 0 -y -i "' . $video_path . '" -vframes 1 -ss 1 -vcodec mjpeg -f rawvideo -aspect 16:9 ' . $cover_file_path . ' ';
exec($command, $output, $return_val);
}
}
评论/回复