Code Monkey home page Code Monkey logo

live-broadcast-bundle's People

Contributors

jeroenvdgulik avatar martin1982 avatar paulradt avatar pouler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

live-broadcast-bundle's Issues

Create RTMP Input

To stream from software like Open Broadcast Software we need an Input for RTMP. "Why?" you may ask; because 1 Input can stream through multiple outputs from a server with high bandwidth, while still only 1 OBS stream needs to be sent from the live filming location.

YouTube thumbnails not updated onUpdate

When a YouTube broadcast is updated, the thumbnail is not taken into account. Since the thumbnail property of the live broadcast is a string (not a File) the new thumbnail is ignored.

Proposal to:

  • Remove the YouTubeConfig class and create a new ThumbnailService
  • This service returns a (new) Thumbnail entity that can be used by other channels, with these properties:
    -- width
    -- height
    -- url
    -- filelocation (path)
    -- filename

Facebook page accesstokens expires

Access token for Facebook pages expire after 2 hours. To prevent this the user access token should be a long lived access token, with that token a never expiring page access token can be obtained

Scheduler blocks after starting a broadcast

Introduced in v0.6; the scheduler blocks after starting a broadcast. For e.g. this command is executed:

(ffmpeg -stream_loop -1 -re -i '<URL>' -c:v libx264 -crf 30 -preset ultrafast -c:a copy -f flv "rtmp://live-api.facebook.com:80/rtmp/<KEY>" -metadata broadcast_id=22 -metadata channel_id=1 -metadata env=dev >/var/logs/livebroadcaster-ffmpeg-2018-02-19_113150.log 2>&1/app/../bin/console livebroadcaster:broadcast:end 22 1) &

The command is not started in the background since the end command is added, this affects the behaviour of the scheduler. Broadcasts are not stopped anymore and new broadcasts can not be started.

Update Facebook API (Sonata)

Facebook API v2.5 is used in live-broadcast-bundle/Resources/views/Block/facebook_auth.html.twig

This version of the Facebook API is deprecated and should be upgraded to v3.0, changes:

  • API Version in FB.init() (2.5 to 3.0)
  • Calls to /me/admined_groups, these are deprecated (should be /me/groups)
  • Scope user_managed_groups, this is deprecated
  • Scope user_videos, is this needed for live broadcasts?

Fix log-in button which results in an error at the moment.

Unable to reuse inputs with the current Doctrine configuration

When trying to re-use an input object when planning a video an error is returned;

[2018-05-07 10:11:41] app.ERROR: Failed to create object: Martin1982\LiveBroadcastBundle\Entity\LiveBroadcast {"exception":"[object] (Sonata\\AdminBundle\\Exception\\ModelManagerException(code: 0): Failed to create object: Martin1982\\LiveBroadcastBundle\\Entity\\LiveBroadcast at vendor/sonata-project/doctrine-orm-admin-bundle/src/Model/ModelManager.php:174, Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException(code: 0): An exception occurred while executing 'INSERT INTO live_broadcast (name, description, thumbnail, broadcast_start, broadcast_end, stop_on_end_timestamp, input_id) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [\"Title\", \"Description\", null, \"2018-05-07 16:00:00\", \"2018-05-07 16:15:00\", 0, 446]:\n\nSQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '446' for key 'UNIQ_21E61C8536421AD6' at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:70, Doctrine\\DBAL\\Driver\\PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '446' for key 'UNIQ_21E61C8536421AD6' at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:107, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '446' for key 'UNIQ_21E61C8536421AD6' at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:105)","previous_exception_message":"An exception occurred while executing 'INSERT INTO live_broadcast (name, description, thumbnail, broadcast_start, broadcast_end, stop_on_end_timestamp, input_id) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [\"Title\", \"Description\", null, \"2018-05-07 16:00:00\", \"2018-05-07 16:15:00\", 0, 446]:\n\nSQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '446' for key 'UNIQ_21E61C8536421AD6'"} []

Error when trying to delete a Facebook broadcast when it's broadcast date has passed

When trying to delete an event which has already broadcasted on Facebook;

Uncaught PHP Exception Martin1982\LiveBroadcastBundle\Exception\LiveBroadcastOutputException: "Facebook SDK exception: Unsupported post request. Object with ID '1093071190834067' does not exist, cannot be loaded due to missing permissions, or does not support this operation.

Add option to run video until end

Add option to run video until end and ignore end timestamp in scheduler.
Default behavior should be the same as now. (stop on end timestamp)

Create Output Factory

For now only Twitch is an Output channel, when new Channels are created these need to be assigned in the Scheduler through a Factory pattern

Check if tokens are still valid or revoked

When planning a broadcast tokens can be invalid (i.e. when the user is no longer an admin for a facebook entity), we need to warn the user that the channel needs to be updated before saving.

Symfony 4 support

Fix deprecations:

User Deprecated: The "live.broadcast.facebookapi.service" service is private, getting it from the container is deprecated since Symfony 3.2 and will fail in 4.0. You should either make the service public, or stop using the container directly and use dependency injection instead.

Separate File and Url Inputs

At the moment File will handle both filepaths and URL's these need to be separated. Next to that the Sonata Admin part will need a selector and validator for these input values

Make configuration optional

The bundle can stream to Twitch and UStream without configuration. The bundle should work without any configuration.

Create Input Factory

At the moment only the File Input is available, when multiple Inputs have been created these need to be selected through a Factory in the Scheduler

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.