SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
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 Board Member
@Martin1982
http://www.martindekeijzer.nl
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
• Screencasts
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 complaining in chat
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
Runs with SQLite / Local php server
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 in alpha; we release early & often
A presentation by Martin de Keijzer
HIGH LEVEL OVERVIEW
Input



File
Url
RTMP
Processing


Database
FFMPEG
OS PID's
Twitch
Facebook
Youtube
Twitch
Outputs
INSIDETHE BUNDLE
Created for extensibility
A presentation by Martin de Keijzer
SCHEDULER
• Retrieves the LiveBroadcast entities
• Checks running broadcasts
• Decides to start/stop or leave a broadcast
alone
A presentation by Martin de Keijzer
I/O STREAM SERVICES
Converts the Input and Channel entities to input and output
parameters for FFMpeg
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
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 channels from
a lower bandwidth location.
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 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
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 project which you can use to test-drive
the application
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 combine graphic layers to a single
video stream output
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 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
A presentation by Martin de Keijzer
LIVE DEMOTIME?
A presentation by Martin de Keijzer
Thank you for listening,
any questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Documentation-driven development for Python web APIs
Documentation-driven development for Python web APIsDocumentation-driven development for Python web APIs
Documentation-driven development for Python web APIs
José Haro Peralta
 
Project : DuckPad
Project : DuckPadProject : DuckPad
Project : DuckPad
Cyber-Duck
 

Was ist angesagt? (20)

Getting Developers hooked on your API by Nicolas Garnier at Codemotion Dubai
Getting Developers hooked on your API by Nicolas Garnier at Codemotion DubaiGetting Developers hooked on your API by Nicolas Garnier at Codemotion Dubai
Getting Developers hooked on your API by Nicolas Garnier at Codemotion Dubai
 
Get More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-OnsGet More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-Ons
 
MuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub AutomationMuleSoft London Community March 2022 - CloudHub Automation
MuleSoft London Community March 2022 - CloudHub Automation
 
Capacitor 2.0 Launch
Capacitor 2.0 LaunchCapacitor 2.0 Launch
Capacitor 2.0 Launch
 
Ionic in 30
Ionic in 30Ionic in 30
Ionic in 30
 
Ionic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassle
 
Stop Configuring Varnish and Start Coding (NAMER)
Stop Configuring Varnish and Start Coding (NAMER)Stop Configuring Varnish and Start Coding (NAMER)
Stop Configuring Varnish and Start Coding (NAMER)
 
Conversational Interfaces: The Future of Retail and Digital Engagement
Conversational Interfaces: The Future of Retail and Digital EngagementConversational Interfaces: The Future of Retail and Digital Engagement
Conversational Interfaces: The Future of Retail and Digital Engagement
 
Enterprise git - the hard bits
Enterprise git -  the hard bitsEnterprise git -  the hard bits
Enterprise git - the hard bits
 
Micro frontends Web component approach con VUEJS
Micro frontends Web component approach con VUEJSMicro frontends Web component approach con VUEJS
Micro frontends Web component approach con VUEJS
 
MuleSoft London Community September 2020 - Project Vita
MuleSoft London Community September 2020 - Project VitaMuleSoft London Community September 2020 - Project Vita
MuleSoft London Community September 2020 - Project Vita
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful business
 
DrupalConNA2021 - Accessibility throughout your project lifecycle - A case st...
DrupalConNA2021 - Accessibility throughout your project lifecycle - A case st...DrupalConNA2021 - Accessibility throughout your project lifecycle - A case st...
DrupalConNA2021 - Accessibility throughout your project lifecycle - A case st...
 
MuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIsMuleSoft Online Meetup - Salesforce Streaming APIs
MuleSoft Online Meetup - Salesforce Streaming APIs
 
Digital Disruption: Big Bad Wolf or Fairy Godmother?
Digital Disruption: Big Bad Wolf or Fairy Godmother?Digital Disruption: Big Bad Wolf or Fairy Godmother?
Digital Disruption: Big Bad Wolf or Fairy Godmother?
 
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
 
Documentation-driven development for Python web APIs
Documentation-driven development for Python web APIsDocumentation-driven development for Python web APIs
Documentation-driven development for Python web APIs
 
Blockchain for Good
Blockchain for GoodBlockchain for Good
Blockchain for Good
 
Project : DuckPad
Project : DuckPadProject : DuckPad
Project : DuckPad
 
Capacitor 1.0 launch
Capacitor 1.0 launchCapacitor 1.0 launch
Capacitor 1.0 launch
 

Ähnlich wie High quality live broadcasting with PHP 27 07-2016

Cloud Based Video Production and Editing
Cloud Based Video Production and EditingCloud Based Video Production and Editing
Cloud Based Video Production and Editing
Paul Richards
 
Remote Video Production as a Service?
Remote Video Production as a Service?Remote Video Production as a Service?
Remote Video Production as a Service?
Paul Richards
 

Ähnlich wie High quality live broadcasting with PHP 27 07-2016 (20)

Video production in the cloud for live streaming
Video production in the cloud for live streamingVideo production in the cloud for live streaming
Video production in the cloud for live streaming
 
Sps Ottawa 2015: Give your company its own streaming video service with #o365...
Sps Ottawa 2015: Give your company its own streaming video service with #o365...Sps Ottawa 2015: Give your company its own streaming video service with #o365...
Sps Ottawa 2015: Give your company its own streaming video service with #o365...
 
Richcast general 2013 02
Richcast general 2013 02Richcast general 2013 02
Richcast general 2013 02
 
Magic Engage V2 (3)
Magic Engage V2 (3)Magic Engage V2 (3)
Magic Engage V2 (3)
 
Introduction to Veeting.com - General Assembly 2014 of Bitcoin Association Sw...
Introduction to Veeting.com - General Assembly 2014 of Bitcoin Association Sw...Introduction to Veeting.com - General Assembly 2014 of Bitcoin Association Sw...
Introduction to Veeting.com - General Assembly 2014 of Bitcoin Association Sw...
 
Best Practice with Microsoft Stream and Company Video
Best Practice with Microsoft Stream and Company VideoBest Practice with Microsoft Stream and Company Video
Best Practice with Microsoft Stream and Company Video
 
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft StreamECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
Cloud Based Video Production and Editing
Cloud Based Video Production and EditingCloud Based Video Production and Editing
Cloud Based Video Production and Editing
 
Web2 Expo Presentation
Web2 Expo PresentationWeb2 Expo Presentation
Web2 Expo Presentation
 
TechTalk: What's New with Perfecto?
TechTalk: What's New with Perfecto?TechTalk: What's New with Perfecto?
TechTalk: What's New with Perfecto?
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
Technoserve
Technoserve Technoserve
Technoserve
 
Wordcampnl - Embed Mobypicture using shortcodes
Wordcampnl - Embed Mobypicture using shortcodesWordcampnl - Embed Mobypicture using shortcodes
Wordcampnl - Embed Mobypicture using shortcodes
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
 
AWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and DeliveryAWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and Delivery
 
Remote Video Production as a Service?
Remote Video Production as a Service?Remote Video Production as a Service?
Remote Video Production as a Service?
 
Video For The Web
Video For The WebVideo For The Web
Video For The Web
 
Leveraging the Power of Streaming Video
Leveraging the Power of Streaming VideoLeveraging the Power of Streaming Video
Leveraging the Power of Streaming Video
 
PTZOptics Newtek NDI Network Setup
PTZOptics Newtek NDI Network SetupPTZOptics Newtek NDI Network Setup
PTZOptics Newtek NDI Network Setup
 

Mehr von Martin de Keijzer

Mehr von Martin de Keijzer (17)

Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
 
The Environment Restaurant
The Environment RestaurantThe Environment Restaurant
The Environment Restaurant
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap Build
 
Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2
 
Native Javascript apps with PhoneGap
Native Javascript apps with PhoneGapNative Javascript apps with PhoneGap
Native Javascript apps with PhoneGap
 
Mobile is everywhere
Mobile is everywhereMobile is everywhere
Mobile is everywhere
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend Framework
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CI
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]
 
Subversion In De Praktijk
Subversion In De PraktijkSubversion In De Praktijk
Subversion In De Praktijk
 
Een introductie voor Phpunit
Een introductie voor PhpunitEen introductie voor Phpunit
Een introductie voor Phpunit
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

High quality live broadcasting with PHP 27 07-2016

  • 1. HIGH QUALITY LIVE BROADCASTING WITH PHP by Martin de Keijzer PHP Limburg BE - July 27, 2016
  • 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.
  • 4. A presentation by Martin de Keijzer We digital
  • 5. A presentation by Martin de Keijzer TODAY
  • 7. A presentation by Martin de Keijzer LIVING ONTHE EDGE Live streaming is all about bringing the latest and greatest
  • 8. A presentation by Martin de Keijzer VIRTUAL PRESENCE
  • 9. A presentation by Martin de Keijzer DIRECT FEEDBACK Every modern live streaming service has a chat for direct feedback
  • 10. A presentation by Martin de Keijzer LIKE INTHE OLD DAYS
  • 11. A presentation by Martin de Keijzer BENEFITS AND USAGES • More followers • Create hype • Product presentations • Screencasts
  • 12. THE SPINNIN' HISTORY Why the tech dept. stepped in
  • 13. A presentation by Martin de Keijzer SPINNIN' SESSIONS Weekly premiere onTwitch
  • 14. A presentation by Martin de Keijzer THETECHNOLOGY
  • 15. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 1;An MP4 file
  • 16. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 2:An old Windows desktop
  • 17. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 3: Open Broadcaster Software
  • 18. A presentation by Martin de Keijzer THETECHNOLOGY Ingredient 4:A human being at the controls
  • 19. A presentation by Martin de Keijzer THETECHNOLOGY What could possibly go wrong?
  • 20. A presentation by Martin de Keijzer THE RESULT
  • 21. A presentation by Martin de Keijzer THE RESULT The good: People were eager to hear the radio show early
  • 22. A presentation by Martin de Keijzer THE RESULT The bad: We were struggling with technology to deliver on time
  • 23. A presentation by Martin de Keijzer THE RESULT The ugly: Jenny got frustrated by technology issues and viewers start complaining in chat
  • 24. A presentation by Martin de Keijzer OTHER COMPLICATIONS Bandwidth when sending a stream to multiple social networks
  • 25. A presentation by Martin de Keijzer OTHER COMPLICATIONS Power outages
  • 26. A presentation by Martin de Keijzer OTHER COMPLICATIONS Technical knowledge about accepted stream settings
  • 27. A presentation by Martin de Keijzer OTHER COMPLICATIONS Manually starting streams for timezone targeting
  • 28. LIVE BROADCAST BUNDLE The path to salvation
  • 29. 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
  • 30. A presentation by Martin de Keijzer SUPPORT
  • 31. A presentation by Martin de Keijzer GET ITTODAY composer require martin1982/live-broadcast-bundle Just the bundle: Still in alpha; we release early & often
  • 32. A presentation by Martin de Keijzer HIGH LEVEL OVERVIEW Input
 
 File Url RTMP Processing 
 Database FFMPEG OS PID's Twitch Facebook Youtube Twitch Outputs
  • 34. A presentation by Martin de Keijzer SCHEDULER • Retrieves the LiveBroadcast entities • Checks running broadcasts • Decides to start/stop or leave a broadcast alone
  • 35. A presentation by Martin de Keijzer I/O STREAM SERVICES Converts the Input and Channel entities to input and output parameters for FFMpeg
  • 36. 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
  • 37. A presentation by Martin de Keijzer INPUT File Local file location For prerecorded video
  • 38. A presentation by Martin de Keijzer INPUT Direct url location for prerecorded video URL
  • 39. A presentation by Martin de Keijzer INPUT RTMP
 (soon) Live video input protocol Great for broadcasting to multiple channels from a lower bandwidth location.
  • 40. A presentation by Martin de Keijzer INPUT DEEP-DIVE
  • 41. 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
  • 42. A presentation by Martin de Keijzer OUTPUT Twitch Configurable with a stream key from theTwitch dashboard
  • 43. A presentation by Martin de Keijzer OUTPUT Needs a reviewed Facebook app to run and allow API calls Facebook
  • 44. A presentation by Martin de Keijzer OUTPUT YouTube (in active development) Needs to authenticate an app for doing API calls
  • 45. A presentation by Martin de Keijzer OUTPUT Your channel Needs to be coded by you
  • 46. A presentation by Martin de Keijzer OUTPUT ENTITY
  • 47. A presentation by Martin de Keijzer OUTPUT SERVICE
  • 48. 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
  • 49. THE ROAD AHEAD Current and future goals
  • 50. 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
  • 51. A presentation by Martin de Keijzer MORE CHANNELS YouTube Live streaming is high on the priority list.
  • 52. A presentation by Martin de Keijzer MORE QUALITY Firmly tested code, good documentation and easier implementation.
  • 53. 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
  • 54. A presentation by Martin de Keijzer LIVE DEMOTIME?
  • 55. A presentation by Martin de Keijzer Thank you for listening, any questions?