一分一毛也是爱

微信

微信

支付宝

支付宝

观海听潮

观海听潮博客

登录
还没有账号?去注册
观海听潮

观海听潮博客

注册
  • 欢迎来自美国弗吉尼亚州的访客,您好!
×

我的名片

网名:观海听潮

职业:PHP开发工程师

现居:山东省-青岛市

Email:1256699215@qq.com

网站统计

  • 观海听潮•博客
  • 57篇
  • 145条
  • 30176次
  • 135次
  • 美国弗吉尼亚州

您现在的位置是:首页  > 技术杂谈  > php php

观海听潮

php获取视频的时长和第一帧

摘要
视频网站一般都是从后台上传视频,并且都需要有视频的时长和第一帧来作为视频的缩略图显示。所以就需要在视频上传的时候拿到这些属性并保存到数据库。

php要实现这个功能需要用到ffmpeg视频扩展

1、下载地址:ffmpeg下载地址

2、将下载文件解压放到项目中

3、方法:

<?php

$file = "视频路径";

$video_info = getVideoInfo($file);

//获取的视频时长单位一般要转化为秒

$duration = date('H:i:s',strtotime($video_info['duration']));

//获取视频相关信息

//$file 视频路径

function getVideoInfo($file) {

    //__PUBLIC__.'/admin-layout/plugins/ffmpeg/bin/ffmpeg

    //ffmpeg文件的绝对路径

    $command = sprintf(__PUBLIC__.'/admin-layout/plugins/ffmpeg/bin/ffmpeg -i "%s" 2>&1', $file);

    ob_start();

    passthru($command);

    $info = ob_get_contents();

    ob_end_clean();

    $data = array();

    if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {

        $data['duration'] = $match[1]; //播放时间

    }

    return $data;

}

//获取第一帧生成图片

//$file 视频路径

//$time 获取第几秒的帧

//$name 生成的图片绝对路径(包括图片名称)

function getVideoCover($file,$time,$name) {

    if(empty($time))$time = '1';//默认截取第一秒第一帧

    $execStr = __PUBLIC__."/admin-layout/plugins/ffmpeg/bin/ffmpeg -i ".$file." 2>&1 -y -f image2 -ss 1 -vframes 1 -s 640x360 ".$name;

    exec($execStr,$arr,$status);

}

转载请注明: 观海听潮博客

本文地址:https://chengzhigang.cn/al/43.html

讨厌 (0)
微博logo QQ空间logo QQlogo 豆瓣logo 人人logo 百度贴吧logo 有道云笔记logo

文章评论

表情表情
×
图片图片

评论列表