当前位置:   article > 正文

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

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

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

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

第一步,Linux 安装 FFmpeg 软件

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

composer require php-ffmpeg/php-ffmpeg

1、获取远程视频时长

  1. use FFMpeg\FFMpeg;
  2. require 'vendor/autoload.php';
  3. $ffmpeg = FFMpeg::create();
  4. $video = $ffmpeg->open('https://xxx.mp4');
  5. // 获取视频的时长(秒)
  6. $duration = $video->getStreams()->first()->get('duration');

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

  1. use FFMpeg\Coordinate\TimeCode;
  2. use FFMpeg\FFMpeg;
  3. require 'vendor/autoload.php';
  4. $ffmpeg = FFMpeg::create();
  5. $video = $ffmpeg->open('https://xxx.mp4');
  6. // 获取视频的时长(秒)
  7. $duration = $video->getStreams()->first()->get('duration');
  8. echo $duration;
  9. $outputImage = '/data/b.jpg'; // 替换为您希望保存第一帧的物理路径
  10. // 提取第一帧(默认情况下,FFMpeg库将从视频的开始处获取第一帧)
  11. $frame = $video->frame(TimeCode::fromSeconds(0));
  12. // 将第一帧保存到指定的图像文件
  13. $frame->save($outputImage, 'image/jpeg');

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/481354
推荐阅读
  

闽ICP备14008679号