查看: 310|回复: 0

[PHP] PHP+FFMPEG获取视频预览图

[复制链接]

0

主题

0

帖子

0

元宝

新手上路

Rank: 1

积分
2
发表于 2018-12-9 12:22:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 t924417424 于 2018-12-9 12:35 编辑
直接贴效果图




PHP实现此类功能,是需要借助ffmpeg这个程序的,直接百度下载安装即可
实现代码:

  1. <?php
  2.         $mp4 = $_GET['m'];
  3.         $out = base64_encode(substr($mp4,-16));
  4.         //$out = time().".jpg";
  5.         function get_between($input, $start, $end) {
  6.             $substr = substr($input, strlen($start)+strpos($input, $start),(strlen($input) - strpos($input, $end))*(-1));
  7.         return $substr;
  8.     }

  9.         $cmd = ".\\ffmpeg\\ffmpeg -v 0 -y -i .\\public\\uploads\".$mp4."  -q:v 2 -f image2 .\\public\\uploads\\tmp\".$out;
  10.         system($cmd);
  11.     $img = file_get_contents(".\\public\\uploads\\tmp\".$out);
  12.     header("Content-Type: image/jpeg;text/html; charset=utf-8");
  13.     echo $img;
复制代码



代码功能解读:
传入参数"m"来接受视频文件地址(只支持服务器本地视频),截取视频文件名称后16个字符进行base64编码后用于输出。
使用system函数调用ffmpeg程序进行视频帧获取并输出到我们的图片文件夹,命名就是我们的base64编码后的内容,此功能是为了防止单页面同时调用接口的时候图片处理不及时导致的预览图重复问题,同时也能缓解同一个视频生成过多预览图的问题。
之后通过file_get_contents函数将图片文件读入变量,并设置文件头标识为图片,直接将存入内容的变量echo出来即可显示视频的对应缩略图。

  1. 文件结构
  2. │  img.php

  3. └─ffmpeg
  4.     │  avcodec-57.dll
  5.     │  avdevice-57.dll
  6.     │  avfilter-6.dll
  7.     │  avformat-57.dll
  8.     │  avutil-55.dll
  9.     │  ffmpeg.exe
  10.     │  postproc-54.dll
  11.     │  swresample-2.dll
  12.     │  swscale-4.dll
  13.     │
  14.     └─fonts
  15.        fonts.conf
复制代码
刮刮卡:

点击下载程序

上一篇:火端搜索程序伪静态规则
下一篇:QQ群关键词采集群信息 可筛选进群验证消息 自动入群支持...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /5 下一条

返回顶部