这篇文章主要为大家详细介绍了PHP如何利用FFmpeg实现获取远程视频的时长和截图,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
突然发现 FFmpeg 这个软件还可以直接拉取远程视频的相关信息,也就是可以不通过下载视频到本地的方式,直接远程去获取视频时长和截图。
假设我们的视频url是:http://my.com/a.mp4
第一步,Linux 安装 FFmpeg 软件
第二步,通过composer安装FFmpeg的库
composer require php-ffmpeg/php-ffmpeg
1、获取远程视频时长
use FFMpeg\FFMpeg; require 'vendor/autoload.php'; $ffmpeg = FFMpeg::create();$video = $ffmpeg->open('https://xxx.mp4'); // 获取视频的时长(秒)$duration = $video->getStreams()->first()->get('duration');
2、获取远程视频的第一帧
use FFMpeg\Coordinate\TimeCode;use FFMpeg\FFMpeg; require 'vendor/autoload.php'; $ffmpeg = FFMpeg::create();$video = $ffmpeg->open('https://xxx.mp4'); // 获取视频的时长(秒)$duration = $video->getStreams()->first()->get('duration'); echo $duration;$outputImage = '/data/b.jpg'; // 替换为您希望保存第一帧的物理路径 // 提取第一帧(默认情况下,FFMpeg库将从视频的开始处获取第一帧)$frame = $video->frame(TimeCode::fromSeconds(0)); // 将第一帧保存到指定的图像文件$frame->save($outputImage, 'image/jpeg');
经测试,