Laravel 下使用 FFmpeg 处理多媒体文件 (Ubuntu 16.04 LTS)

安装 FFmpeg 命令

下面是 Ubuntu 16 LTS 的安装方法

sudo add-apt-repository ppa:djcj/hybrid
sudo apt-get update
sudo apt-get install ffmpeg

安装成功后测试:

$ ffmpeg -version

file

PHP-FFMpeg

PHP-FFMpeg 是 FFMpeg 和 FFProbe 命令的 PHP 面对对象 Wrapper.

安装

项目根目录下:

$ composer require php-ffmpeg/php-ffmpeg

使用

创建 FFMpeg\FFMpeg 对象:

$ffmpeg = \FFMpeg\FFMpeg::create(array(
    'ffmpeg.binaries'  => '/usr/bin/ffmpeg',
    'ffprobe.binaries' => '/usr/bin/ffprobe',
    'timeout'          => 3600, // The timeout for the underlying process
    'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use
));

原文档

$ffmpeg = FFMpeg\FFMpeg::create(array(
    'ffmpeg.binaries'  => '/opt/local/ffmpeg/bin/ffmpeg',
    'ffprobe.binaries' => '/opt/local/ffmpeg/bin/ffprobe',
    'timeout'          => 3600, // The timeout for the underlying process
    'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use
), $logger);

根据自己的 ffmpeg 与 ffprobe 位置创建 $ffmpeg

我的项目中, 是将视频截图

// $ffmpeg 获取 $url 的视频
$video = $ffmpeg->open($url);
// 在视频 1 秒的地方截图
$frame = $video->frame(\FFMpeg\Coordinate\TimeCode::fromSeconds(1));
// 生成$filename
$filename = $id . '_' . time() . '_' . str_random(10) . '.' . 'jpg';
// 图片保存,并且移动到 /storage/images/
$frame->save($filename);
\File::move(public_path().'/'.$filename, public_path()."/storage/images/".$filename);

总结

参考 Ubuntu 14LTS Laravel 下使用 FFMpeg 处理多媒体文件:

分享:Laravel 下使用 FFMpeg 处理多媒体文件

文档:

https://github.com/PHP-FFMpeg/PHP-FFMpeg

Laravel 5.5 的使用中, 自己使用 FFMpeg 与文档有些出入,所以和大家一起分享学习的问题。

本帖已被设为精华帖!
本帖由 Summer 于 6年前 加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7

FFMPEG标题,我不管怎么改,都不能修改成FFMpeg。内心...

6年前 评论
Summer

@来杯雪碧加冰 哈哈, @NauxLiu 的锅

6年前 评论

@Summer 哇!我是看了你的文章写的,末尾有地址。不过,不能改没什么大影响

6年前 评论

@Summer 确实是我的锅,我 release 了个新版本 v1.0.3, 升级之后就 ok 了。

6年前 评论

我使用的是exec()执行获取截图。

6年前 评论
wanghan

@来杯雪碧加冰 请问18.04应该用那个apt源呢
sudo add-apt-repository ppa:djcj/hybrid,这个就不行了吧?

4年前 评论
wanghan

自问自答系列之《18.04安装ffmpeg》
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!