PHP 调取视频第一帧

背景:

  小程序项目中,需要使用到获取上传视频的第一帧作为封面图。查阅资料大部分介绍使用 ffmpeg 这个第三方应用。

centos下安装ffmpeg 是比较容易,这里不再赘述。

结合php 的系统函数调用来完成获取第一帧图片的方法。

  由于这个项目是给多客户安装使用,当时设想是否能用php扩展来解决这个问题。注:即使使用扩展,也依然需要依赖服务器环境中有ffmpeg .

一查ffmpeg就傻眼了,扩展已经多年没有更新了。尝试装了官网上多个php_ffmpeg 都在编译的时候出现错误。

尝试了两天后放弃此方法。

https://www.cnblogs.com/jkklearn/p/6737467.html

这有一篇教程,讲述安装php_ffmpeg 扩展的文章,题主也再多个版本安装才安装成功。想了想以后客户没错使用程序都得如此麻烦的安装,立马抛弃。

 

回到使用php系统命令调取shell语句来实现第一帧图片的方法。很多朋友遇到这个问题是 php系统命令调用shell语句失败,无返回。phpinfo中查看并没有警用系统调用函数。这里涉及到一个linux用户权限的问题。nginx 或者apache的用户组,并不是root。为了安全考虑,我们也不能使用root来运行nginx或者apche. 尝试使用程序的安装目录下bing/ffmpeg 来调用,发现是允许的。

以下贴出代码,供大家查阅。

$str = "/sbin/ffmpeg/bin/ffmpeg -i ".$file." -y -f mjpeg -ss 3 -t 1 -s 200x200 ffmpeg.jpg";                  
ob_start();         
passthru($str);         
$info = ob_get_contents();        
 ob_end_clean();

大家一起讨论,还原讨论,以上仅是个人愚见,一起学习。起步可能比别人低,前进的步伐可不能再慢。下一篇内容再会。

 

个人公众号(欢迎订阅~学习探讨日常项目经验):

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值