2017 © Pedro Peláez
 

library live-broadcast-bundle

Bundle for live-streaming to various online networks

image

martin1982/live-broadcast-bundle

Bundle for live-streaming to various online networks

  • Tuesday, July 3, 2018
  • by Martin1982
  • Repository
  • 2 Watchers
  • 15 Stars
  • 1,240 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 7 Forks
  • 8 Open issues
  • 57 Versions
  • 0 % Grown

The README.md

Live Broadcast Bundle

Build status Latest stable version, (*1)

License Total downloads, (*2)

Table of contents

About

The Live Broadcast Bundle will make it possible to plan live video streams to various websites/apps like Twitch, YouTube Live, Facebook Live., (*3)

You are able to stream from various inputs. This package supports files, URLs or existing RTMP streams., (*4)

For more info you can view the latest recorded presentation below, check the demo project at https://github.com/Martin1982/live-broadcast-demo or read on;, (*5)

IMAGE ALT TEXT, (*6)

Prerequisites

To test these prerequisites the Symfony command livebroadcaster:test:shell can be used after the installation described below. If you like to check this manually the Broadcaster needs a few commands on an operating system;, (*7)

All OS's: * ffmpeg 3.x or higher, (*8)

On Linux: * ps * kill, (*9)

On Mac: * ps * grep * kill, (*10)

On Windows: * tasklist * taskkill, (*11)

Basic installation

This bundle is available on Packagist. You can then install it using Composer:, (*12)

$ composer require martin1982/live-broadcast-bundle

Use Doctrine to update your database schema with the broadcasting entities, when upgrading it is recommended to use migrations., (*13)

To start the broadcast scheduler you can run the following command:, (*14)

$ php bin/console livebroadcaster:broadcast

To run the scheduler as a long-running process it's recommended to use the messenger middleware to keep the database connection alive as described at https://symfony.com/doc/current/messenger.html, (*15)

FFMpeg log directory

To view the output of FFMpeg you need to configure a log directory in your config/packages/live_broadcast.yaml., (*16)

 live_broadcast:
    ffmpeg:
        log_directory: '%kernel.logs_dir%'

Event loop

You can use this configuration to set the event loop timer:, (*17)

live_broadcast:
    eventloop:
        timer: 5

Thumbnailer setup

Set up the following config for thumbnails:, (*18)

live_broadcast:
    thumbnail:
        upload_directory: '%kernel.project_dir%/public/uploads/thumbnails'
        web_path: '/uploads/thumbnails'

Enabling Facebook Live

Create a Facebook app on https://developers.facebook.com with the following permissions:, (*19)

  • user_videos
  • user_events
  • user_managed_groups
  • manage_pages
  • publish_actions
  • Live-Video API

Edit your config/packages/live_broadcast.yaml with the following configuration:, (*20)

live_broadcast:
    facebook:
        application_id: YourFacebookAppId
        application_secret: YourFacebookAppSecret

Enabling YouTube Live

Login to https://console.developers.google.com/ and enable the 'YouTube Data API v3'., (*21)

Add the YouTube API info to your config.yml:, (*22)

live_broadcast:
    youtube:
        client_id: YourGoogleOauthClientId
        client_secret: YourGoogleOauthClientSecret

Add these lines to your parameters.yml (used for generating a thumbnail URL), (*23)

parameters:
    router.request_context.host: broadcast.com
    router.request_context.scheme: https

Add new output platforms

Create a new Channel Entity in Entity/Channel that extends the AbstractChannel (e.g. ChannelNew), (*24)

Create a new StreamOutput service in Service/StreamOutput that implements the OutputInterface (e.g. OutputNew), (*25)

Configure the service with the output tag in config/services.yml, (*26)

live.broadcast.output.new:
    class: Martin1982\LiveBroadcastBundle\Service\StreamOutput\OutputNew
    tags:
        - { name: live.broadcast.output, platform: 'New' }

Using an admin GUI

This bundle comes without a web frontend interface, to make use of an admin package you can pick the one to your liking; * Sonata Admin: https://github.com/Martin1982/live-broadcast-sonata-admin-bundle * Easyadmin: https://github.com/Martin1982/live-broadcast-easyadmin-bundle, (*27)

Sponsors

The Versions

18/07 2017
11/05 2017
11/07 2016
08/07 2016
08/07 2016
29/06 2016
29/06 2016
29/06 2016
09/06 2016

v0.3.3-alpha

0.3.3.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

The Development Requires

by Martin de Keijzer

09/06 2016

v0.3.2-alpha

0.3.2.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

The Development Requires

by Martin de Keijzer

08/06 2016

v0.3.1-alpha

0.3.1.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

The Development Requires

by Martin de Keijzer

06/06 2016

v0.3.0-alpha

0.3.0.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

The Development Requires

by Martin de Keijzer

31/05 2016

v0.2.1-alpha

0.2.1.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

by Martin de Keijzer

30/05 2016

v0.2.0-alpha

0.2.0.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

by Martin de Keijzer

30/05 2016

v0.1.2-alpha

0.1.2.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

by Martin de Keijzer

30/05 2016

v0.1.1-alpha

0.1.1.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

by Martin de Keijzer

30/05 2016

v0.1.0-alpha

0.1.0.0-alpha

Bundle for live-streaming to various online networks

  Sources   Download

MIT

The Requires

 

by Martin de Keijzer