PHPackages                             liweishan/ffmpeg-helper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. liweishan/ffmpeg-helper

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

liweishan/ffmpeg-helper
=======================

This is a ffmpeg helper for PHP.

1.1.1(1y ago)124Apache-2.0PHPPHP &gt;=7.4

Since Jun 6Pushed 1y ago1 watchersCompare

[ Source](https://github.com/msllws/ffmpeg-helper)[ Packagist](https://packagist.org/packages/liweishan/ffmpeg-helper)[ RSS](/packages/liweishan-ffmpeg-helper/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

FFmpeg开发助手 for PHP
==================

[](#ffmpeg开发助手-for-php)

ffmpeg-helper
-------------

[](#ffmpeg-helper)

### 安装

[](#安装)

```
composer require liweishan/ffmpeg-helper

```

### 使用示例

[](#使用示例)

```
    //配置命令路径(可选)
    FFmpegHelper::setConfig([
        'ffmpegPath' => '/opt/homebrew/bin/ffmpeg',
        'ffprobePath' => '/opt/homebrew/bin/ffprobe'
    ]);

    //截取视频封面(指定帧或时间）
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/111.png';
    $res = FFmpegHelper::getVideoCoverImage($from, $to, 1, null);
    var_dump($res);die;

    //获取视频帧率
    $path = '/Users/lws/Desktop/111.mp4';
    $res = FFmpegHelper::getVideoFrameRate($path):
    var_dump($res);die;

    //获取视频时长、大小
    $path = '/Users/lws/Desktop/111.mp4';
    $res = FFmpegHelper::getMediaInfo($path):
    var_dump($res);die;

    //视频裁切
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/222.mp4';
    $res = FFmpegHelper::cutVideo($from, $to, '0.0.0.0', '0.0.0.15'):
    var_dump($res);die;

    //音频格式转换
    $from = '/Users/lws/Desktop/111.wav';
    $to = '/Users/lws/Desktop/111.mp3';
    $res = FFmpegHelper::convertMusic($from, $to);
    var_dump($res);die;

    //视频格式转换
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/111.avi';
    $res = FFmpegHelper::convertVideo($from, $to);
    var_dump($res);die;

    //合并音频
    $paths = [
        '/Users/lws/Desktop/111.mp3',
        '/Users/lws/Desktop/222.mp3',
    ];
    $to = '/Users/lws/Desktop/333.mp3';
    $res = FFmpegHelper::concatMusics($paths,$to);
    var_dump($res);die;

    //合并视频
    $paths = [
        '/Users/lws/Desktop/111.mp4',
        '/Users/lws/Desktop/222.mp4',
    ];
    $to = '/Users/lws/Desktop/333.mp4';
    $res = FFmpegHelper::concatVideos($paths,$to);
    var_dump($res);die;

    //校验视频流 生成音轨（如果返回新的文件路径 用完记得删除）
    $from = '/Users/lws/Desktop/111.mp4';
    $res = FFmpegHelper::checkVideoStreams($from);
    var_dump($res);

    //视频添加图片
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/222.mp4';
    $img = '/Users/lws/Desktop/111.gif';
    $res = FFmpegHelper::videoAddImage($from, $to, $img, 0, '220', '400');
    var_dump($res);

    //视频添加音频
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/222.mp4';
    $music = '/Users/lws/Desktop/111.mp3';
    $res = FFmpegHelper::videoAddMusic($from, $to, $music);
    var_dump($res);

    //视频叠加视频
    $from = '/Users/lws/Desktop/111.mp4';
    $video = '/Users/lws/Desktop/222.mp4';
    $to = '/Users/lws/Desktop/333.mp4';
    $res = FFmpegHelper::videoAddVideo($from, $to, $video, '200', '200', 'right');
    var_dump($res);die;

    //视频合并添加叠加转场特效
    $path1 = '/Users/lws/Desktop/111.mp4';
    $path2 = '/Users/lws/Desktop/222.mp4';
    $to = '/Users/lws/Desktop/333.mp4';
    $res = FFmpegHelper::videoAddXfade($path1, $path2, $to, 'fadeblack');
    var_dump($res);die;

    //设置视频速率
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/222.mp4';
    $res = FFmpegHelper::setVideRate($from, $to, 0.5);
    var_dump($res);die;
```

### 执行自定义命令

[](#执行自定义命令)

```

    //方式一：命令(参数用%s占位) + 可变参数
    $ffmpegPath = '/opt/homebrew/bin/ffmpeg';
    $from = '/Users/lws/Desktop/111.mp4';
    $to = '/Users/lws/Desktop/111.png';
    $timeStamp = '00:00:00.000';
    $res = FFmpegHelper::exec('%s -y -i %s -ss %s -vframes 1 %s', $ffmpegPath, $from, $timeStamp, $to);
    var_dump($res);

    //方式二：纯命令
    $res = FFmpegHelper::exec('/opt/homebrew/bin/ffmpeg -y -i /Users/lws/Desktop/111.mp4 -ss 00:00:00.000 -vframes 1 /Users/lws/Desktop/333.png');
    var_dump($res);

    //返回数组格式
    ['code' => 0, 'data' => []]
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

3

Last Release

705d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/44594101?v=4)[李维山](/maintainers/msllws)[@msllws](https://github.com/msllws)

---

Top Contributors

[![msllws](https://avatars.githubusercontent.com/u/44594101?v=4)](https://github.com/msllws "msllws (10 commits)")

---

Tags

phpffmpeg

### Embed Badge

![Health badge](/badges/liweishan-ffmpeg-helper/health.svg)

```
[![Health](https://phpackages.com/badges/liweishan-ffmpeg-helper/health.svg)](https://phpackages.com/packages/liweishan-ffmpeg-helper)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21421.6k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
