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

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

相关推荐
hjjdebug42 分钟前
ffplay6 播放器关键技术点分析 1/2
c++·ffmpeg·音视频
_pengliang3 小时前
WebRTC 双向视频通话
音视频·webrtc
开开心心_Every4 小时前
全能视频处理工具介绍说明
开发语言·人工智能·django·pdf·flask·c#·音视频
泰勒朗斯4 小时前
ffmpeg 中config 文件一些理解
windows·microsoft·ffmpeg
泰勒朗斯4 小时前
ffmpeg下编译tsan
ffmpeg
不吃肉的羊8 小时前
PHP设置文件上传最大值
后端·php
沐尘而生9 小时前
【AI智能体】智能音视频-硬件设备基于 WebSocket 实现语音交互
大数据·人工智能·websocket·机器学习·ai作画·音视频·娱乐
nightunderblackcat12 小时前
进阶向:Python音频录制与分析系统详解,从原理到实践
开发语言·python·音视频
Antonio9151 天前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
开发者工具分享1 天前
文本音频违规识别工具排行榜(12选)
人工智能·音视频