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

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

相关推荐
非凡ghost7 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
Ai工具分享7 小时前
视频画质差怎么办?AI优化视频清晰度技术原理与实战应用
人工智能·音视频
悠悠~飘8 小时前
php简介(第一天打卡)
php
萌虎不虎11 小时前
【鸿蒙(openHarmony)自定义音频播放器的开发使用说明】
华为·音视频·harmonyos
久绊A11 小时前
Hydra-SSH 破解安全防范
开发语言·php
黑白世界464811 小时前
开源分享: php-tools php gui的一次尝试
后端·php
Hi2024021712 小时前
Orin-Apollo园区版本:订阅多个摄像头画面拼接与硬编码RTMP推流
ffmpeg·apollo·orin·图像拼接·图传
知来者逆12 小时前
视觉语言模型应用开发——Qwen 2.5 VL模型视频理解与定位能力深度解析及实践指南
人工智能·语言模型·自然语言处理·音视频·视觉语言模型·qwen 2.5 vl
max50060012 小时前
图像处理:实现多图点重叠效果
开发语言·图像处理·人工智能·python·深度学习·音视频