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

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

相关推荐
云游云记7 小时前
php JWT 使用全攻略(firebase/php-jwt 实践笔记)
php·jwt
三七吃山漆8 小时前
[网鼎杯 2020 朱雀组]phpweb
php·ctf·网鼎杯
CHU7290358 小时前
一番赏盲盒抽卡机小程序:解锁惊喜体验与社交乐趣的多元功能设计
前端·小程序·php
njmanong11 小时前
2026年海外代理IP实测:青果网络,bright data,iproyal,ipdodo,kookeey,oxylabs
网络·tcp/ip·php
雾江流11 小时前
HDx播放器1.0.184 | 支持多种格式和4K/8K高清视频播放,内置推特~脸书下载器
音视频·软件工程
tongyue12 小时前
智慧家居——Flask网页视频服务器
服务器·flask·音视频
云游云记12 小时前
ThinkPHP 队列扩展 (topthink/think-queue) 使用笔记
php·thinkphp·think-queue
美狐美颜SDK开放平台13 小时前
从零到一:开发直播的美颜sdk与滤镜特效技术解析
人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
GodGump13 小时前
从割草图到CSP压缩:大图计算的“减肥术”与“快照术”
服务器·开发语言·php
CS创新实验室13 小时前
《计算机网络》深入学:拥塞控制
开发语言·计算机网络·php