Php 通过 FFmpeg 获取远程视频的时长和截图

突然发现 FFmpeg 这个软件还可以直接拉取远程视频的相关信息,也就是可以不通过下载视频到本地的方式,直接远程去获取视频时长和截图。

假设我们的视频url是:http://my.com/a.mp4

第一步,Linux 安装 FFmpeg 软件

第二步,通过composer安装FFmpeg的库

bash 复制代码
composer require php-ffmpeg/php-ffmpeg

1、获取远程视频时长

php 复制代码
use FFMpeg\FFMpeg;

require 'vendor/autoload.php';

$ffmpeg = FFMpeg::create();
$video = $ffmpeg->open('https://xxx.mp4');

// 获取视频的时长(秒)
$duration = $video->getStreams()->first()->get('duration');

2、获取远程视频的第一帧

php 复制代码
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');

经测试,以上过程的调用,并不需要完全把视频下载到本地再解析,可以实现远程获取直接秒级返回!

相关推荐
摩西蒙11 小时前
计算机网络
开发语言·计算机网络·php
达子66611 小时前
第16章_HarmonyOs开发图解之 音频
华为·音视频·harmonyos
Black蜡笔小新14 小时前
EasyAIS+国标GB28181视频监控平台EasyCVR强强联动,全域视频AI识别能力落地!
大数据·人工智能·音视频
Sagittarius_A*16 小时前
【RCELABS】Level 17~18 —— PHP命令执行函数与环境变量注入
开发语言·安全·web安全·靶场·php·rce
破碎的南瓜16 小时前
靶场中使用到的php函数以及每种漏洞的防御方式
开发语言·php
谁看我谁 狼家二丫17 小时前
局域网文件共享实战:从“账户被禁用”到成功互传文件
开发语言·php
数字融合17 小时前
透明化视场时空配准视频孪生多视域空间融合技术
人工智能·音视频·virtualenv
AC赳赳老秦17 小时前
软著公开信息批量采集:OpenClaw 抓取软件著作权公开数据,分析企业技术布局方向
大数据·网络·人工智能·python·php·deepseek·openclaw
梓仁沐白18 小时前
【Agent 设计模式】多智能体协作
microsoft·设计模式·php
开源推荐官18 小时前
刚上架的商品搜不到,tigshop开源商城搜索是怎么查的
mysql·开源·php