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

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

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

第一步,Linux 安装 FFmpeg 软件

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

composer require php-ffmpeg/php-ffmpeg

1、获取远程视频时长

use FFMpeg\FFMpeg;

require 'vendor/autoload.php';

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

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

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

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

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

相关推荐

  1. Php 通过 FFmpeg 获取远程视频

    2024-04-23 20:16:05       14 阅读
  2. js通过视频链接获取视频

    2024-04-23 20:16:05       14 阅读
  3. Golang获取视频信息

    2024-04-23 20:16:05       19 阅读
  4. ffmpeg(关键帧

    2024-04-23 20:16:05       14 阅读
  5. js通过音频链接获取音频

    2024-04-23 20:16:05       9 阅读
  6. Selenium网页

    2024-04-23 20:16:05       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 20:16:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 20:16:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 20:16:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 20:16:05       20 阅读

热门阅读

  1. 数字人技术:相关论文汇总

    2024-04-23 20:16:05       14 阅读
  2. Redis雪崩

    2024-04-23 20:16:05       18 阅读
  3. python多线程详解

    2024-04-23 20:16:05       16 阅读
  4. Ubuntu搭建RP2040开发环境-1

    2024-04-23 20:16:05       18 阅读
  5. Springboot2.7解决静态资源302问题

    2024-04-23 20:16:05       14 阅读
  6. LeetCode 42. 接雨水 - PHP

    2024-04-23 20:16:05       12 阅读
  7. 2023年图灵奖揭晓

    2024-04-23 20:16:05       13 阅读