PHPackages                             thepublicgood/beamer - 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. [Image &amp; Media](/categories/media)
4. /
5. thepublicgood/beamer

ActiveLibrary[Image &amp; Media](/categories/media)

thepublicgood/beamer
====================

MP4 video file streamer for laravel

v0.2(2y ago)0783MITPHPPHP ^8.1

Since Jun 3Pushed 2y ago1 watchersCompare

[ Source](https://github.com/tpg/beamer)[ Packagist](https://packagist.org/packages/thepublicgood/beamer)[ RSS](/packages/thepublicgood-beamer/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

Cross-browser MP4 Video files for Laravel
=========================================

[](#cross-browser-mp4-video-files-for-laravel)

[![Tests](https://github.com/tpg/beamer/actions/workflows/php.yml/badge.svg)](https://github.com/tpg/beamer/actions/workflows/php.yml)

Beamer is a simple solution to streaming MP4 videos to any browser. Even Safari.

### Installation

[](#installation)

As usual, install Beamer using Composer:

```
composer require thepublicgood/beamer
```

You can publish the configuration file with:

```
php ./artisan vendor:publish --provider="TPG\Beamer\BeamerServiceProvider"
```

### Where to store videos

[](#where-to-store-videos)

By default Beamer will source videos from a `videos` directory inside `storage/app`. You can configure this in the configuration file by changing the `disk` and `path` settings.

### Usage

[](#usage)

Beamer is fairly simple. It only really does one thing. Once you have a video in the correct place, you’ll need to create a new route and a controller.

First the controller:

```
namespace App\Http\Controllers;

use TPG\Beamer\Facades\Beamer;

class BeamerController extends Controller
{
    public function __invoke(string $filename)
    {
        return Beamer::make($filename)->start();
    }
}
```

Then the route:

```
Route::get('/videos/{video}', BeamerController::class);
```

Open a browser and enter the URL for that route and include the filename of the video:

```
http://localhost:3000/videos/myvideo.mp4

```

Beamer doesn’t include the route or controller by default as you might want to customize this in your apps. For example, you might need to do some sort of authorization in the controller, or you might want to customize what the route looks like.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

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 ~755 days

Total

2

Last Release

1045d ago

PHP version history (2 changes)v0.1PHP ^8.0

v0.2PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/89ea2dc12cd0a934de60705f8cfe47397095d842121b7d5f545dc9d1cee554ec?d=identicon)[warrickbayman](/maintainers/warrickbayman)

---

Top Contributors

[![warrickbayman](https://avatars.githubusercontent.com/u/856840?v=4)](https://github.com/warrickbayman "warrickbayman (15 commits)")

---

Tags

beamerlaravelmp4phpstreamvideolaravelstreamingvideomp4

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/thepublicgood-beamer/health.svg)

```
[![Health](https://phpackages.com/badges/thepublicgood-beamer/health.svg)](https://phpackages.com/packages/thepublicgood-beamer)
```

###  Alternatives

[happyworm/jplayer

jPlayer allows you to create a media player with a consistent interface and experience across all browsers.

4.6k114.2k1](/packages/happyworm-jplayer)[opentok/opentok

OpenTok is a platform for creating real time streaming video applications, created by TokBox.

1413.0M10](/packages/opentok-opentok)[mostafaznv/nova-video

Video Field for Laravel Nova

22398.0k1](/packages/mostafaznv-nova-video)[chojnicki/video-platforms-parser

Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.

22226.4k](/packages/chojnicki-video-platforms-parser)[folour/flavy

FFmpeg layer for Laravel 5.2-5.4, this is a fork of rafasamp/sonus package

279.6k](/packages/folour-flavy)[daun/statamic-mux

Seamless video encoding and streaming using Mux on Statamic sites

132.3k](/packages/daun-statamic-mux)

PHPackages © 2026

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