SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
MADRID · NOV 27-28 · 2015
Realtime video streaming
MADRID · NOV 27-28 · 2015
the opensource way
Iván Belmonte
MADRID · NOV 27-28 · 2015
Github: ibelmonte
Sysdivision
Twitter: @sysdivision
Website: http://sysdivision.com
Twitter: @ibelmonte
Iván Belmonte
MADRID · NOV 27-28 · 2015
Real time weather reporting system for outdoor sports.
2 main elements:
- HD cameras in surfing spots (beaches)
- Weather stations in surfing spots
GOAL:
Weather forecast typically fails. Spotfav gives you a
window to your spot, to check the weather conditions
before moving.
MADRID · NOV 27-28 · 2015
What forecast says the day before
MADRID · NOV 27-28 · 2015
What you expect when you take your car to go to the spot
MADRID · NOV 27-28 · 2015
What’s actually going on
MADRID · NOV 27-28 · 2015
IMPORTANT NOTE:
I’m a backend developer/sysadmin
I know nothing about video and audio processing
In this project I am A VICTIM
MADRID · NOV 27-28 · 2015
Video manipulation and transmission is complex
- Plenty of difficult concepts: encoding, muxing,
transcoding, encapsulation, bitrates, fps…
- Different media servers, different players, some codecs
may not be supported
- Several transmission protocols depending on your needs:
RTP, RTSP, RTMP, HLS, HDS, Shoutcast, HTML5…
Added complexity: LIVE streaming
MADRID · NOV 27-28 · 2015
Looking for a standard setup
Most common case: H264 over RTSP
Affiliates: get this if you want to get
connected to our network
MADRID · NOV 27-28 · 2015
There are several options
Commercial:
Adobe media server, Wowza, Flussonic, Flumotion…
SaaS:
Ustream, Justin.tv (defunct)…
Open source:
ffmpeg, ffserver, libav, Live555, Red5, crtmpd, vlc,
Erlyvideo…
MADRID · NOV 27-28 · 2015
OUR SCENARIO
1 Camera, H264 over RTSP
1. The goal
Embed the camera in a website and also in a smartphone app
2. Nice to have
Not permanently connected (connect on demand)
Tolerant to network cuts
3. Science fiction
Be able to filter by referral (avoid other websites to
embed our cameras)
MADRID · NOV 27-28 · 2015
STEP 1: WEB player (RTMP)
MADRID · NOV 27-28 · 2015
ROUND 1
A javascript serving a Directx (wtf?) script.
MADRID · NOV 27-28 · 2015
ROUND 1
Cons:
- The camera has a limited pool of connections available.
Visitors exceeding this poll get rejected.
Works?
- In some browsers
MADRID · NOV 27-28 · 2015
ROUND 2
A VLC cli process reading the RTSP, transcoding and
publishing an RTMP stream in a socket
MADRID · NOV 27-28 · 2015
ROUND 2
Works?
- YES…
MADRID · NOV 27-28 · 2015
ROUND 2
Works?
- YES… for 1 camera.
MADRID · NOV 27-28 · 2015
ROUND 2
Works?
- YES… for 1 camera.
What if more cameras?
- 1 VLC process for each camera.
MADRID · NOV 27-28 · 2015
ROUND 2
Round 2 version with multiple cameras
MADRID · NOV 27-28 · 2015
ROUND 2
Cons:
- A lot of processes in the server eating memory as hungry
animals.
- VLC is unable to recover from network cuts.
- Each VLC process opens a socket in a different port, which
in my case is a mess as I’m hosting the VLC processes inside
a container and then routing the outside in.
- VLC is permanently connected to the camera
MADRID · NOV 27-28 · 2015
AND THEN ONE DAY…
Adobe updates flash player, breaks my streamings
MADRID · NOV 27-28 · 2015
BROKEN STREAMING
Two possible reasons:
1. Something is wrong with my VLC command
vlc-wrapper	-vvv	h,p://camera.ip.address/cgi-bin/faststream.jpg?stream=full&fps=16&size=640x480&preview"	-sout	
	'#transcode{vcodec=FLV1,vb=800,ab=32,fps=16,width=640,height=480,acodec=none}:duplicate{dst=std{access=h,p{mime=video/x-
flv},mux=ffmpeg{mux=flv},dst=LINUX.BOX.IP.ADDRESS:8080/stream.flv},dst=display}'
2. Something is wrong with the new version of Flash
MADRID · NOV 27-28 · 2015
BROKEN STREAMING
Two possible reasons:
1. Something is wrong with my VLC command
vlc-wrapper	-vvv	h,p://camera.ip.address/cgi-bin/faststream.jpg?stream=full&fps=16&size=640x480&preview"	-sout	
	'#transcode{vcodec=FLV1,vb=800,ab=32,fps=16,width=640,height=480,acodec=none}:duplicate{dst=std{access=h,p{mime=video/x-
flv},mux=ffmpeg{mux=flv},dst=LINUX.BOX.IP.ADDRESS:8080/stream.flv},dst=display}'
2. Something is wrong with the new version of Flash
Of course option 2. I contacted Adobe:
- ME: your upgrade has a bug and it broke my streamings
- ADOBE: …(silence)
MADRID · NOV 27-28 · 2015
ROUND 3
A super cool media server capable to encapsulate H264 RSTP
into RTMP for flash players: Erlyvideo.
MADRID · NOV 27-28 · 2015
ROUND 3
Pros:
- Written in Erlang: amazingly light and fast
- Connects to the source on demand
- One process, several cameras
- Tolerant to network cuts (due to the previous point)
- Referrer filtering
Cons:
- Documented in russian (partially translated into
english). Support forums also 80% russian.
- HLS support (for smartphone apps) only supported in its
new commercial version: Flussonic.
MADRID · NOV 27-28 · 2015
STEP 2: Smartphone app (HLS)
MADRID · NOV 27-28 · 2015
Nginx RTMP module
An Nginx module capable to read streams in several formats
as input, store them and then serve them encapsulated in
other protocols (eg: HLS)
MADRID · NOV 27-28 · 2015
Nginx RTMP module
Works?
- YES, perfectly
Cons:
- Not very well documented
- Not tolerant to network cuts
- Unable to regain lost connectivity
MADRID · NOV 27-28 · 2015
Overall vision
MADRID · NOV 27-28 · 2015
Service schema
A video source. A separate server for each streaming
format. A website visitor and an smartphone user.
MADRID · NOV 27-28 · 2015
An automated process
Using linux containers and some glue code everything can
play together in an automated way
MADRID · NOV 27-28 · 2015
CONSLUSIONS
MADRID · NOV 27-28 · 2015
What I would do now if starting from scratch
1. Do it the opensource way: there are powerful tools
2. Look for a single solution for both web and mobile
(probably libav, ffmpeg or Red5)
3. Spend time looking for a solution capable to serve also
HTML5 formats (Mp4, Webm, Ogg)
MADRID · NOV 27-28 · 2015
THANK YOU!

Weitere ähnliche Inhalte

Andere mochten auch

Remote monitoring system
Remote monitoring systemRemote monitoring system
Remote monitoring system
Pk Doctors
 
Lecture Slides for Location based Services [Android]
Lecture Slides for Location based Services [Android]Lecture Slides for Location based Services [Android]
Lecture Slides for Location based Services [Android]
Nehil Jain
 
Operational Agriculture Monitoring System Using Remote Sensing
Operational Agriculture Monitoring System Using Remote SensingOperational Agriculture Monitoring System Using Remote Sensing
Operational Agriculture Monitoring System Using Remote Sensing
Mary Adel
 

Andere mochten auch (17)

Remote monitoring system
Remote monitoring systemRemote monitoring system
Remote monitoring system
 
RTSP Streaming Server - Demo Streaming RTSP Protocol Over IPv6 Network
RTSP Streaming Server - Demo Streaming RTSP Protocol Over IPv6 NetworkRTSP Streaming Server - Demo Streaming RTSP Protocol Over IPv6 Network
RTSP Streaming Server - Demo Streaming RTSP Protocol Over IPv6 Network
 
2011_12_4K research in PSNC
2011_12_4K research in PSNC2011_12_4K research in PSNC
2011_12_4K research in PSNC
 
FFMPEG TOOLS
FFMPEG TOOLSFFMPEG TOOLS
FFMPEG TOOLS
 
Http streaming
Http streamingHttp streaming
Http streaming
 
Internationalization(i18n) of Web Page
Internationalization(i18n) of Web PageInternationalization(i18n) of Web Page
Internationalization(i18n) of Web Page
 
Remote Management of Embedded Android Devices
Remote Management of Embedded Android DevicesRemote Management of Embedded Android Devices
Remote Management of Embedded Android Devices
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on android
 
Streaming Media Server Setup Manual
Streaming Media Server Setup ManualStreaming Media Server Setup Manual
Streaming Media Server Setup Manual
 
Lecture Slides for Location based Services [Android]
Lecture Slides for Location based Services [Android]Lecture Slides for Location based Services [Android]
Lecture Slides for Location based Services [Android]
 
Rtsp
RtspRtsp
Rtsp
 
Operational Agriculture Monitoring System Using Remote Sensing
Operational Agriculture Monitoring System Using Remote SensingOperational Agriculture Monitoring System Using Remote Sensing
Operational Agriculture Monitoring System Using Remote Sensing
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 
Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.
 
Internet of things for Smart Home
Internet of things for Smart Home Internet of things for Smart Home
Internet of things for Smart Home
 
Smart Home technologies
Smart Home technologiesSmart Home technologies
Smart Home technologies
 
Smart homes
Smart homesSmart homes
Smart homes
 

Ähnlich wie Realtime video streaming the open source way

Ähnlich wie Realtime video streaming the open source way (20)

FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
IoT with Ruby/mruby - RubyWorld Conference 2015
IoT with Ruby/mruby - RubyWorld Conference 2015IoT with Ruby/mruby - RubyWorld Conference 2015
IoT with Ruby/mruby - RubyWorld Conference 2015
 
Adding Realtime to your Projects
Adding Realtime to your ProjectsAdding Realtime to your Projects
Adding Realtime to your Projects
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudSimplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
 
zkSync v2.0 for builders.pptx
zkSync v2.0 for builders.pptxzkSync v2.0 for builders.pptx
zkSync v2.0 for builders.pptx
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
 
Eclipse SCADA 0.2
Eclipse SCADA 0.2Eclipse SCADA 0.2
Eclipse SCADA 0.2
 
Apache DeviceMap - codemotion Rome 2015
Apache DeviceMap - codemotion Rome 2015Apache DeviceMap - codemotion Rome 2015
Apache DeviceMap - codemotion Rome 2015
 
OMA LwM2M Workshop - Matthias Kovatsch, OMA LwM2M DevKit
OMA LwM2M Workshop - Matthias Kovatsch, OMA LwM2M DevKitOMA LwM2M Workshop - Matthias Kovatsch, OMA LwM2M DevKit
OMA LwM2M Workshop - Matthias Kovatsch, OMA LwM2M DevKit
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Challenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of viewChallenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of view
 
Building Digital TV Support in Linux
Building Digital TV Support in LinuxBuilding Digital TV Support in Linux
Building Digital TV Support in Linux
 
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
 
EWD.js: The Future Starts Here
EWD.js: The Future Starts HereEWD.js: The Future Starts Here
EWD.js: The Future Starts Here
 
Mile High Video 2019
Mile High Video 2019Mile High Video 2019
Mile High Video 2019
 
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
 
Blueprints for the analysis of social media
Blueprints for the analysis of social mediaBlueprints for the analysis of social media
Blueprints for the analysis of social media
 
TechEvent OpenShift for Developers
TechEvent OpenShift for DevelopersTechEvent OpenShift for Developers
TechEvent OpenShift for Developers
 
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Realtime video streaming the open source way

  • 1. MADRID · NOV 27-28 · 2015 Realtime video streaming MADRID · NOV 27-28 · 2015 the opensource way Iván Belmonte
  • 2. MADRID · NOV 27-28 · 2015 Github: ibelmonte Sysdivision Twitter: @sysdivision Website: http://sysdivision.com Twitter: @ibelmonte Iván Belmonte
  • 3. MADRID · NOV 27-28 · 2015 Real time weather reporting system for outdoor sports. 2 main elements: - HD cameras in surfing spots (beaches) - Weather stations in surfing spots GOAL: Weather forecast typically fails. Spotfav gives you a window to your spot, to check the weather conditions before moving.
  • 4. MADRID · NOV 27-28 · 2015 What forecast says the day before
  • 5. MADRID · NOV 27-28 · 2015 What you expect when you take your car to go to the spot
  • 6. MADRID · NOV 27-28 · 2015 What’s actually going on
  • 7. MADRID · NOV 27-28 · 2015 IMPORTANT NOTE: I’m a backend developer/sysadmin I know nothing about video and audio processing In this project I am A VICTIM
  • 8. MADRID · NOV 27-28 · 2015 Video manipulation and transmission is complex - Plenty of difficult concepts: encoding, muxing, transcoding, encapsulation, bitrates, fps… - Different media servers, different players, some codecs may not be supported - Several transmission protocols depending on your needs: RTP, RTSP, RTMP, HLS, HDS, Shoutcast, HTML5… Added complexity: LIVE streaming
  • 9. MADRID · NOV 27-28 · 2015 Looking for a standard setup Most common case: H264 over RTSP Affiliates: get this if you want to get connected to our network
  • 10. MADRID · NOV 27-28 · 2015 There are several options Commercial: Adobe media server, Wowza, Flussonic, Flumotion… SaaS: Ustream, Justin.tv (defunct)… Open source: ffmpeg, ffserver, libav, Live555, Red5, crtmpd, vlc, Erlyvideo…
  • 11. MADRID · NOV 27-28 · 2015 OUR SCENARIO 1 Camera, H264 over RTSP 1. The goal Embed the camera in a website and also in a smartphone app 2. Nice to have Not permanently connected (connect on demand) Tolerant to network cuts 3. Science fiction Be able to filter by referral (avoid other websites to embed our cameras)
  • 12. MADRID · NOV 27-28 · 2015 STEP 1: WEB player (RTMP)
  • 13. MADRID · NOV 27-28 · 2015 ROUND 1 A javascript serving a Directx (wtf?) script.
  • 14. MADRID · NOV 27-28 · 2015 ROUND 1 Cons: - The camera has a limited pool of connections available. Visitors exceeding this poll get rejected. Works? - In some browsers
  • 15. MADRID · NOV 27-28 · 2015 ROUND 2 A VLC cli process reading the RTSP, transcoding and publishing an RTMP stream in a socket
  • 16. MADRID · NOV 27-28 · 2015 ROUND 2 Works? - YES…
  • 17. MADRID · NOV 27-28 · 2015 ROUND 2 Works? - YES… for 1 camera.
  • 18. MADRID · NOV 27-28 · 2015 ROUND 2 Works? - YES… for 1 camera. What if more cameras? - 1 VLC process for each camera.
  • 19. MADRID · NOV 27-28 · 2015 ROUND 2 Round 2 version with multiple cameras
  • 20. MADRID · NOV 27-28 · 2015 ROUND 2 Cons: - A lot of processes in the server eating memory as hungry animals. - VLC is unable to recover from network cuts. - Each VLC process opens a socket in a different port, which in my case is a mess as I’m hosting the VLC processes inside a container and then routing the outside in. - VLC is permanently connected to the camera
  • 21. MADRID · NOV 27-28 · 2015 AND THEN ONE DAY… Adobe updates flash player, breaks my streamings
  • 22. MADRID · NOV 27-28 · 2015 BROKEN STREAMING Two possible reasons: 1. Something is wrong with my VLC command vlc-wrapper -vvv h,p://camera.ip.address/cgi-bin/faststream.jpg?stream=full&fps=16&size=640x480&preview" -sout '#transcode{vcodec=FLV1,vb=800,ab=32,fps=16,width=640,height=480,acodec=none}:duplicate{dst=std{access=h,p{mime=video/x- flv},mux=ffmpeg{mux=flv},dst=LINUX.BOX.IP.ADDRESS:8080/stream.flv},dst=display}' 2. Something is wrong with the new version of Flash
  • 23. MADRID · NOV 27-28 · 2015 BROKEN STREAMING Two possible reasons: 1. Something is wrong with my VLC command vlc-wrapper -vvv h,p://camera.ip.address/cgi-bin/faststream.jpg?stream=full&fps=16&size=640x480&preview" -sout '#transcode{vcodec=FLV1,vb=800,ab=32,fps=16,width=640,height=480,acodec=none}:duplicate{dst=std{access=h,p{mime=video/x- flv},mux=ffmpeg{mux=flv},dst=LINUX.BOX.IP.ADDRESS:8080/stream.flv},dst=display}' 2. Something is wrong with the new version of Flash Of course option 2. I contacted Adobe: - ME: your upgrade has a bug and it broke my streamings - ADOBE: …(silence)
  • 24. MADRID · NOV 27-28 · 2015 ROUND 3 A super cool media server capable to encapsulate H264 RSTP into RTMP for flash players: Erlyvideo.
  • 25. MADRID · NOV 27-28 · 2015 ROUND 3 Pros: - Written in Erlang: amazingly light and fast - Connects to the source on demand - One process, several cameras - Tolerant to network cuts (due to the previous point) - Referrer filtering Cons: - Documented in russian (partially translated into english). Support forums also 80% russian. - HLS support (for smartphone apps) only supported in its new commercial version: Flussonic.
  • 26. MADRID · NOV 27-28 · 2015 STEP 2: Smartphone app (HLS)
  • 27. MADRID · NOV 27-28 · 2015 Nginx RTMP module An Nginx module capable to read streams in several formats as input, store them and then serve them encapsulated in other protocols (eg: HLS)
  • 28. MADRID · NOV 27-28 · 2015 Nginx RTMP module Works? - YES, perfectly Cons: - Not very well documented - Not tolerant to network cuts - Unable to regain lost connectivity
  • 29. MADRID · NOV 27-28 · 2015 Overall vision
  • 30. MADRID · NOV 27-28 · 2015 Service schema A video source. A separate server for each streaming format. A website visitor and an smartphone user.
  • 31. MADRID · NOV 27-28 · 2015 An automated process Using linux containers and some glue code everything can play together in an automated way
  • 32. MADRID · NOV 27-28 · 2015 CONSLUSIONS
  • 33. MADRID · NOV 27-28 · 2015 What I would do now if starting from scratch 1. Do it the opensource way: there are powerful tools 2. Look for a single solution for both web and mobile (probably libav, ffmpeg or Red5) 3. Spend time looking for a solution capable to serve also HTML5 formats (Mp4, Webm, Ogg)
  • 34. MADRID · NOV 27-28 · 2015 THANK YOU!