php用ffmpeg扩展截取视频第一帧的方法

  1. windows 或linux上要安装ffmpeg扩展,安装方法可以自行百度
  2. 通过执行外部命令的方式exec()实现,如果是本地视频很方便,$tempfiles就是完整的视频路径;如果是post过来的视频(仅限.mp4格式),无法用临时文件(.tmp)进行截取,本人的用了个笨方法,先传到本地来,获取到.mp4的视频路径,再执行命令,如果有其他方法欢迎留言分享^^
    /**
     * 截取视频第一帧
     *
     * @param  $file  	视频文件
     * @param  $time    第几帧
     * @param  $dir     临时目录
     * @param  $size    截图尺寸
     */
    function getVideoCover($file,$time,$dir,$size) {
        $time = $time ? $time : '1'; 		//默认截取第一秒第一帧
        $size = $size ? $size : '348*470';	
        $fileName = getImgName();    
    
        //临时视频路径,生成截图后删除
        $tempfiles = $dir.$fileName.'.mp4'; 
        $bool = move_uploaded_file($file, $tempfiles);
        $str = "ffmpeg -i ".$tempfiles." -y -f mjpeg -ss ".$time." -t 0.001 -s $size ".$dir.$fileName.'.jpg';
        exec($str,$out,$status);
        return $fileName;
    }

    注:ffmpeg只能截取mp4格式的视频文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值