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');

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

相关推荐
ProgramHan1 小时前
十大排行榜——后端语言及要介绍
java·c++·python·php
没有余地 EliasJie1 小时前
FFmpeg介绍与ESP32资源受限下的视频流传输优化策略
单片机·物联网·ffmpeg
不想看见4041 小时前
Qt+FFmpeg 极简播放器示例【音视频方向简单讲解】
qt·ffmpeg·音视频
withoutfear1 小时前
fastadmin表格多tab选项卡组合筛选
php·fastadmin·tp5
luojiezong1 小时前
锐捷网络EDN方案正式发布 园区网络迈入“体验确定性交付“新时代
开发语言·网络·php
纠结哥_Shrek1 小时前
AI视频生成提示词工程完全指南
人工智能·音视频
Alonse_沃虎电子2 小时前
沃虎电子:音频变压器5大痛点剖析与厂家定制化解决方案
网络·音视频·信息与通信·产品·介绍·电子元器件
ofoxcoding2 小时前
GPT-5.4 Mini vs Nano 怎么选?2026 实测对比,一张表说清楚
开发语言·gpt·ai·php
从删库到跑路养成记2 小时前
Flyenv的php集成开发环境安装yar扩展
php·yar·flyenv
顾道长生'2 小时前
(Arxiv-2026)Helios:真正的实时长视频生成模型
音视频·自回归·长视频生成