Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HIGH QUALITY LIVE BROADCASTING WITH
PHP
by Martin de Keijzer
PHP Limburg BE - July 27, 2016
A presentation by Martin de Keijzer
ABOUT ME
Martin de Keijzer
Dutch web developer
Working @ Spinnin' Records
PHPBenelux B...
A presentation by Martin de Keijzer
We digital
A presentation by Martin de Keijzer
TODAY
LIVE STREAMING
Why and when?
A presentation by Martin de Keijzer
LIVING ONTHE EDGE
Live streaming is all about bringing the latest and greatest
A presentation by Martin de Keijzer
VIRTUAL PRESENCE
A presentation by Martin de Keijzer
DIRECT FEEDBACK
Every modern live streaming service has a chat for direct feedback
A presentation by Martin de Keijzer
LIKE INTHE OLD DAYS
A presentation by Martin de Keijzer
BENEFITS AND USAGES
• More followers
• Create hype
• Product presentations
• Screencas...
THE SPINNIN' HISTORY
Why the tech dept. stepped in
A presentation by Martin de Keijzer
SPINNIN' SESSIONS
Weekly premiere onTwitch
A presentation by Martin de Keijzer
THETECHNOLOGY
A presentation by Martin de Keijzer
THETECHNOLOGY
Ingredient 1;An MP4 file
A presentation by Martin de Keijzer
THETECHNOLOGY
Ingredient 2:An old Windows desktop
A presentation by Martin de Keijzer
THETECHNOLOGY
Ingredient 3: Open Broadcaster Software
A presentation by Martin de Keijzer
THETECHNOLOGY
Ingredient 4:A human being at the controls
A presentation by Martin de Keijzer
THETECHNOLOGY
What could possibly go wrong?
A presentation by Martin de Keijzer
THE RESULT
A presentation by Martin de Keijzer
THE RESULT
The good: People were eager to hear the radio show early
A presentation by Martin de Keijzer
THE RESULT
The bad: We were struggling with technology to deliver on time
A presentation by Martin de Keijzer
THE RESULT
The ugly: Jenny got frustrated by technology issues and viewers
start compl...
A presentation by Martin de Keijzer
OTHER COMPLICATIONS
Bandwidth when sending a stream to multiple social networks
A presentation by Martin de Keijzer
OTHER COMPLICATIONS
Power outages
A presentation by Martin de Keijzer
OTHER COMPLICATIONS
Technical knowledge about accepted stream settings
A presentation by Martin de Keijzer
OTHER COMPLICATIONS
Manually starting streams for timezone targeting
LIVE BROADCAST BUNDLE
The path to salvation
A presentation by Martin de Keijzer
GET ITTODAY
Demo project:
git clone git@github.com:Martin1982/live-broadcast-demo.git
...
A presentation by Martin de Keijzer
SUPPORT
A presentation by Martin de Keijzer
GET ITTODAY
composer require martin1982/live-broadcast-bundle
Just the bundle:
Still i...
A presentation by Martin de Keijzer
HIGH LEVEL OVERVIEW
Input



File
Url
RTMP
Processing


Database
FFMPEG
OS PID's
Twitc...
INSIDETHE BUNDLE
Created for extensibility
A presentation by Martin de Keijzer
SCHEDULER
• Retrieves the LiveBroadcast entities
• Checks running broadcasts
• Decides...
A presentation by Martin de Keijzer
I/O STREAM SERVICES
Converts the Input and Channel entities to input and output
parame...
A presentation by Martin de Keijzer
ENTITIES
Input
One of File / URL or RTMP
LiveBroadcast
Title, description,

Start & en...
A presentation by Martin de Keijzer
INPUT
File
Local file location
For prerecorded video
A presentation by Martin de Keijzer
INPUT
Direct url location for prerecorded video
URL
A presentation by Martin de Keijzer
INPUT
RTMP

(soon)
Live video input protocol
Great for broadcasting to multiple channe...
A presentation by Martin de Keijzer
INPUT DEEP-DIVE
A presentation by Martin de Keijzer
PROCESSING
Database
Is being visited by the scheduler to see
if a broadcast needs to r...
A presentation by Martin de Keijzer
OUTPUT
Twitch
Configurable with a stream key from theTwitch
dashboard
A presentation by Martin de Keijzer
OUTPUT
Needs a reviewed Facebook app to run
and allow API calls
Facebook
A presentation by Martin de Keijzer
OUTPUT
YouTube
(in active development)
Needs to authenticate an app for doing
API calls
A presentation by Martin de Keijzer
OUTPUT
Your channel
Needs to be coded by you
A presentation by Martin de Keijzer
OUTPUT ENTITY
A presentation by Martin de Keijzer
OUTPUT SERVICE
A presentation by Martin de Keijzer
BONUS:ADMIN
Spinnin' uses Sonata, so we added it as a bonus and a full
setup in a demo...
THE ROAD AHEAD
Current and future goals
A presentation by Martin de Keijzer
MORE INPUTS
Mainly RTMP, as easy and functional as possible
Ideas are going around to ...
A presentation by Martin de Keijzer
MORE CHANNELS
YouTube Live streaming is high on the priority list.
A presentation by Martin de Keijzer
MORE QUALITY
Firmly tested code, good documentation and easier implementation.
A presentation by Martin de Keijzer
IN CONCLUSION
Live broadcasting on a professional level is hard
Bandwidth may be your ...
A presentation by Martin de Keijzer
LIVE DEMOTIME?
A presentation by Martin de Keijzer
Thank you for listening,
any questions?
High quality live broadcasting with PHP 27 07-2016
Upcoming SlideShare
Loading in …5
×

High quality live broadcasting with PHP 27 07-2016

387 views

Published on

Second tryout for my live broadcasting with PHP talk

Published in: Technology
  • Be the first to comment

  • Be the first to like this

High quality live broadcasting with PHP 27 07-2016

  1. 1. HIGH QUALITY LIVE BROADCASTING WITH PHP by Martin de Keijzer PHP Limburg BE - July 27, 2016
  2. 2. A presentation by Martin de Keijzer ABOUT ME Martin de Keijzer Dutch web developer Working @ Spinnin' Records PHPBenelux Board Member @Martin1982 http://www.martindekeijzer.nl
  3. 3. A presentation by Martin de Keijzer We digital
  4. 4. A presentation by Martin de Keijzer TODAY
  5. 5. LIVE STREAMING Why and when?
  6. 6. A presentation by Martin de Keijzer LIVING ONTHE EDGE Live streaming is all about bringing the latest and greatest
  7. 7. A presentation by Martin de Keijzer VIRTUAL PRESENCE
  8. 8. A presentation by Martin de Keijzer DIRECT FEEDBACK Every modern live streaming service has a chat for direct feedback
  9. 9. A presentation by Martin de Keijzer LIKE INTHE OLD DAYS
  10. 10. A presentation by Martin de Keijzer BENEFITS AND USAGES • More followers • Create hype • Product presentations • Screencasts
  11. 11. THE SPINNIN' HISTORY Why the tech dept. stepped in
  12. 12. A presentation by Martin de Keijzer SPINNIN' SESSIONS Weekly premiere onTwitch
  13. 13. A presentation by Martin de Keijzer THETECHNOLOGY
  14. 14. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 1;An MP4 file
  15. 15. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 2:An old Windows desktop
  16. 16. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 3: Open Broadcaster Software
  17. 17. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 4:A human being at the controls
  18. 18. A presentation by Martin de Keijzer THETECHNOLOGY What could possibly go wrong?
  19. 19. A presentation by Martin de Keijzer THE RESULT
  20. 20. A presentation by Martin de Keijzer THE RESULT The good: People were eager to hear the radio show early
  21. 21. A presentation by Martin de Keijzer THE RESULT The bad: We were struggling with technology to deliver on time
  22. 22. A presentation by Martin de Keijzer THE RESULT The ugly: Jenny got frustrated by technology issues and viewers start complaining in chat
  23. 23. A presentation by Martin de Keijzer OTHER COMPLICATIONS Bandwidth when sending a stream to multiple social networks
  24. 24. A presentation by Martin de Keijzer OTHER COMPLICATIONS Power outages
  25. 25. A presentation by Martin de Keijzer OTHER COMPLICATIONS Technical knowledge about accepted stream settings
  26. 26. A presentation by Martin de Keijzer OTHER COMPLICATIONS Manually starting streams for timezone targeting
  27. 27. LIVE BROADCAST BUNDLE The path to salvation
  28. 28. A presentation by Martin de Keijzer GET ITTODAY Demo project: git clone git@github.com:Martin1982/live-broadcast-demo.git Runs with SQLite / Local php server
  29. 29. A presentation by Martin de Keijzer SUPPORT
  30. 30. A presentation by Martin de Keijzer GET ITTODAY composer require martin1982/live-broadcast-bundle Just the bundle: Still in alpha; we release early & often
  31. 31. A presentation by Martin de Keijzer HIGH LEVEL OVERVIEW Input
 
 File Url RTMP Processing 
 Database FFMPEG OS PID's Twitch Facebook Youtube Twitch Outputs
  32. 32. INSIDETHE BUNDLE Created for extensibility
  33. 33. A presentation by Martin de Keijzer SCHEDULER • Retrieves the LiveBroadcast entities • Checks running broadcasts • Decides to start/stop or leave a broadcast alone
  34. 34. A presentation by Martin de Keijzer I/O STREAM SERVICES Converts the Input and Channel entities to input and output parameters for FFMpeg
  35. 35. A presentation by Martin de Keijzer ENTITIES Input One of File / URL or RTMP LiveBroadcast Title, description,
 Start & end time, Stop stream when end time is reached Channel Facebook YouTube Twitch
  36. 36. A presentation by Martin de Keijzer INPUT File Local file location For prerecorded video
  37. 37. A presentation by Martin de Keijzer INPUT Direct url location for prerecorded video URL
  38. 38. A presentation by Martin de Keijzer INPUT RTMP
 (soon) Live video input protocol Great for broadcasting to multiple channels from a lower bandwidth location.
  39. 39. A presentation by Martin de Keijzer INPUT DEEP-DIVE
  40. 40. A presentation by Martin de Keijzer PROCESSING Database Is being visited by the scheduler to see if a broadcast needs to run or stop The core command for reading input media and sending it to one of the output channels FFMPEG OS Process list is being checked by the scheduler to see which broadcasts from the bundle are running and what their PID's are
  41. 41. A presentation by Martin de Keijzer OUTPUT Twitch Configurable with a stream key from theTwitch dashboard
  42. 42. A presentation by Martin de Keijzer OUTPUT Needs a reviewed Facebook app to run and allow API calls Facebook
  43. 43. A presentation by Martin de Keijzer OUTPUT YouTube (in active development) Needs to authenticate an app for doing API calls
  44. 44. A presentation by Martin de Keijzer OUTPUT Your channel Needs to be coded by you
  45. 45. A presentation by Martin de Keijzer OUTPUT ENTITY
  46. 46. A presentation by Martin de Keijzer OUTPUT SERVICE
  47. 47. A presentation by Martin de Keijzer BONUS:ADMIN Spinnin' uses Sonata, so we added it as a bonus and a full setup in a demo project which you can use to test-drive the application
  48. 48. THE ROAD AHEAD Current and future goals
  49. 49. A presentation by Martin de Keijzer MORE INPUTS Mainly RTMP, as easy and functional as possible Ideas are going around to combine graphic layers to a single video stream output
  50. 50. A presentation by Martin de Keijzer MORE CHANNELS YouTube Live streaming is high on the priority list.
  51. 51. A presentation by Martin de Keijzer MORE QUALITY Firmly tested code, good documentation and easier implementation.
  52. 52. A presentation by Martin de Keijzer IN CONCLUSION Live broadcasting on a professional level is hard Bandwidth may be your enemy on remote locations Broadcasting consists of input, processing and output Twitch and Facebook are already there, withYoutube soon to follow More inputs will be added shortly Spinnin' Records invested time and resources to give this away for free, when fixing or adding stuff a PR is much appreciated
  53. 53. A presentation by Martin de Keijzer LIVE DEMOTIME?
  54. 54. A presentation by Martin de Keijzer Thank you for listening, any questions?

×