SlideShare a Scribd company logo
1 of 18
Download to read offline
GO HLS STREAMING
SANGWONL
AGENDA
- About HLS
- About GO
- Implement HLS with GO
- Demo
GO HLS STREAMING
ABOUT HLS - STREAMING HISTORY
GO HLS STREAMING
ABOUT HLS - DEFINITION
▸ HTTP Live Streaming lets you send audio and video over HTTP from an ordinary web
server for playback on iOS-based devices—including iPhone, iPad, iPod touch, and Apple
TV—and on desktop computers (Mac OS X).
▸ HTTP Live Streaming supports both live broadcasts and prerecorded content (video on
demand).
▸ HTTP Live Streaming supports multiple alternate streams at different bit rates, and the
client software can switch streams intelligently as network bandwidth changes.
▸ HTTP Live Streaming also provides for media encryption and user authentication over
HTTPS, allowing publishers to protect their work.
GO HLS STREAMING
ABOUT HLS - HOW IT WORKS
The server component is responsible for taking input streams of media and encoding them digitally,
encapsulating them in a format suitable for delivery, and preparing the encapsulated media for distribution.
GO HLS STREAMING
ABOUT HLS - HOW IT WORKS
The distribution component consists of standard web servers. They are responsible for accepting client
requests and delivering prepared media and associated resources to the client. For large-scale distribution,
edge networks or other content delivery networks can also be used.
GO HLS STREAMING
ABOUT HLS - HOW IT WORKS
The client software is responsible for determining the appropriate media to request, downloading those
resources, and then reassembling them so that the media can be presented to the user in a continuous
stream.
GO HLS STREAMING
ABOUT HLS - COMPATIBILITY
GO HLS STREAMING
ABOUT HLS - COMPETITOR
▸ Standard - MPEG-DASH

http://www.encoding.com/mpeg-dash/
▸ Adobe Systems - HTTP Dynamic Streaming

http://www.encoding.com/http-dynamic-streaming-hds/
▸ Microsoft - Smooth Streaming

http://www.encoding.com/microsoft-smooth-streaming/
▸ Javascript - hls.js

https://github.com/dailymotion/hls.js
▸ Android - MediaController

https://developer.android.com/guide/appendix/media-formats.html
▸ iOS - MPMoviePlayer

https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/
MPMoviePlayerController_Class/
▸ Windows - MicrosoftHLSSDK

https://github.com/MicrosoftDX/MicrosoftHLSSDK
GO HLS STREAMING
ABOUT HLS - LIBRARY
GO HLS STREAMING
ABOUT HLS - REFERENCES
▸ http://appleinsider.com/articles/09/07/08/
apple_launches_http_live_streaming_standard_in_iphone_3_
0
▸ https://tools.ietf.org/html/draft-pantos-http-live-streaming-19
▸ https://developer.apple.com/streaming/
▸ http://www.encoding.com/http-live-streaming-hls/
▸ https://en.wikipedia.org/wiki/
Dynamic_Adaptive_Streaming_over_HTTP
GO HLS STREAMING
ABOUT GO
▸ * Some notable open-source applications in Go include:
Docker, a set of tools for deploying Linux containers
Doozer, a lock service by managed hosting provider Heroku
Juju, a service orchestration tool by Canonical, packagers of Ubuntu Linux
Syncthing, an open-source file synchronization client/server application
Packer, a tool for creating identical machine images for multiple platforms from a single source configuration
Ethereum, a shared world computing platform.
▸ * Other companies and sites using Go (generally together with other languages, not exclusively):
Google, for many projects, notably including download server dl.google.com
Netflix, for two portions of their server architecture
Dropbox, migrated some of their critical components from Python to Go
CloudFlare, for their delta-coding proxy Railgun, their distributed DNS service, as well as tools for cryptography, logging, stream processing, and
accessing SPDY sites.
SoundCloud, for "dozens of systems"
The BBC, in some games and internal projects
Splice, for the entire backend (API and parsers) of their online music collaboration platform.
Cloud Foundry, a platform as a service
CoreOS, a Linux-based operating system that utilizes Docker containers.
Couchbase, Query and Indexing services within the Couchbase Server
Replicated, Docker based PaaS for creating enterprise, installable software.[
MongoDB, tools for administering MongoDB instances
Zerodha, for realtime peering and streaming of market data[citation needed]
Chango, a programmatic advertising company uses Go in its real-time bidding systems.
SendGrid, a Boulder, Colorado-based transactional email delivery and management service.
Plug.dj, an interactive online social music streaming website.
ThoughtWorks, some tools and applications around continuous delivery and instant messages (CoyIM).
AeroFS, private cloud filesync appliance provider which migrated some microservices from Java to Go with major memory footprint improvements
Uber, for handling high volumes of geofence-based queries.
GO HLS STREAMING
IMPLEMENT HLS WITH GO
GO HLS STREAMING
IMPLEMENT HLS WITH GO
GO HLS STREAMING
IMPLEMENT HLS WITH GO
1. main function
2. naming package & import modules
3. define url routing
GO HLS STREAMING
IMPLEMENT HLS WITH GO
4. implement core handler
GO HLS STREAMING
IMPLEMENT HLS WITH GO
5. implement core handler
6. serve HLS index file(.m3u8) with “application/x-mpegURL”
7. serve HLS segment file(.ts) with “video/MP2T”
GO HLS STREAMING
DEMO

More Related Content

What's hot

Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Certus Solutions
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 
HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)Rocket Software
 
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...Amazon Web Services
 
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin KnaufWebinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin KnaufVerverica
 
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...Amazon Web Services
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lakeJames Serra
 
Apache Flink Stream Processing
Apache Flink Stream ProcessingApache Flink Stream Processing
Apache Flink Stream ProcessingSuneel Marthi
 
LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!manivannan57
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introductionchrislusf
 
Datadogoverview.pptx
Datadogoverview.pptxDatadogoverview.pptx
Datadogoverview.pptxssuser8bc443
 
SevOne - IP SLA
SevOne - IP SLASevOne - IP SLA
SevOne - IP SLASevOne
 
Event-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS StreamingEvent-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS StreamingShiju Varghese
 
Kafka Practices @ Uber - Seattle Apache Kafka meetup
Kafka Practices @ Uber - Seattle Apache Kafka meetupKafka Practices @ Uber - Seattle Apache Kafka meetup
Kafka Practices @ Uber - Seattle Apache Kafka meetupMingmin Chen
 

What's hot (20)

Airflow introduction
Airflow introductionAirflow introduction
Airflow introduction
 
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
Melbourne: Certus Data 2.0 Vault Meetup with Snowflake - Data Vault In The Cl...
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)HADR Best Practices (High Availability Disaster Recovery)
HADR Best Practices (High Availability Disaster Recovery)
 
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...
Ditching the overhead - Moving Apache Kafka workloads into Amazon MSK - ADB30...
 
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin KnaufWebinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
 
Observability at Spotify
Observability at SpotifyObservability at Spotify
Observability at Spotify
 
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...
Backing up Amazon EC2 with Amazon EBS Snapshots - June 2017 AWS Online Tech T...
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
 
IBM Cloud pak for data brochure
IBM Cloud pak for data   brochureIBM Cloud pak for data   brochure
IBM Cloud pak for data brochure
 
A Closer Look at RabbitMQ
A Closer Look at RabbitMQA Closer Look at RabbitMQ
A Closer Look at RabbitMQ
 
Apache Flink Stream Processing
Apache Flink Stream ProcessingApache Flink Stream Processing
Apache Flink Stream Processing
 
LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
Datadogoverview.pptx
Datadogoverview.pptxDatadogoverview.pptx
Datadogoverview.pptx
 
SevOne - IP SLA
SevOne - IP SLASevOne - IP SLA
SevOne - IP SLA
 
Flume vs. kafka
Flume vs. kafkaFlume vs. kafka
Flume vs. kafka
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
Event-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS StreamingEvent-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS Streaming
 
Kafka Practices @ Uber - Seattle Apache Kafka meetup
Kafka Practices @ Uber - Seattle Apache Kafka meetupKafka Practices @ Uber - Seattle Apache Kafka meetup
Kafka Practices @ Uber - Seattle Apache Kafka meetup
 

Viewers also liked

[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...
[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...
[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...AiTi Education
 
Scraper site or web scrapping
Scraper site or web scrappingScraper site or web scrapping
Scraper site or web scrappingBuddhi
 
Http live streaming technical presentation
Http live streaming technical presentationHttp live streaming technical presentation
Http live streaming technical presentationBuddhi
 
nginx.conf - globo.com's live video platform for fifa world cup 14
nginx.conf  - globo.com's live video platform for fifa world cup 14nginx.conf  - globo.com's live video platform for fifa world cup 14
nginx.conf - globo.com's live video platform for fifa world cup 14Leandro Moreira
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centersLeandro Moreira
 
Apple hls technical presentation
Apple hls technical presentationApple hls technical presentation
Apple hls technical presentationBuddhi
 
Http Live Streaming Intro
Http Live Streaming IntroHttp Live Streaming Intro
Http Live Streaming IntroVonbo
 
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS Video
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS VideoAWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS Video
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS VideoAmazon Web Services
 
Fisl15 Streaming de vídeo ao vivo na globo.com
Fisl15 Streaming de vídeo ao vivo na globo.comFisl15 Streaming de vídeo ao vivo na globo.com
Fisl15 Streaming de vídeo ao vivo na globo.comLeandro Moreira
 
Globo.com - migração do player flash para html5
Globo.com  - migração do player flash para html5Globo.com  - migração do player flash para html5
Globo.com - migração do player flash para html5Leandro Moreira
 
インターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みインターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みRyosuke Kubo
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムyuichiro nakazawa
 

Viewers also liked (14)

[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...
[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...
[Vietnam Mobile Day 2013] - App boost - giải pháp marketing appgame chuyên ng...
 
Scraper site or web scrapping
Scraper site or web scrappingScraper site or web scrapping
Scraper site or web scrapping
 
Http live streaming technical presentation
Http live streaming technical presentationHttp live streaming technical presentation
Http live streaming technical presentation
 
nginx.conf - globo.com's live video platform for fifa world cup 14
nginx.conf  - globo.com's live video platform for fifa world cup 14nginx.conf  - globo.com's live video platform for fifa world cup 14
nginx.conf - globo.com's live video platform for fifa world cup 14
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
 
Apple hls technical presentation
Apple hls technical presentationApple hls technical presentation
Apple hls technical presentation
 
Http Live Streaming Intro
Http Live Streaming IntroHttp Live Streaming Intro
Http Live Streaming Intro
 
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS Video
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS VideoAWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS Video
AWS Webcast - Using JW Player and Amazon CloudFront to Stream HLS Video
 
Fisl15 Streaming de vídeo ao vivo na globo.com
Fisl15 Streaming de vídeo ao vivo na globo.comFisl15 Streaming de vídeo ao vivo na globo.com
Fisl15 Streaming de vídeo ao vivo na globo.com
 
Velocity2014 gvp
Velocity2014 gvpVelocity2014 gvp
Velocity2014 gvp
 
HTTP Live Streaming
HTTP Live StreamingHTTP Live Streaming
HTTP Live Streaming
 
Globo.com - migração do player flash para html5
Globo.com  - migração do player flash para html5Globo.com  - migração do player flash para html5
Globo.com - migração do player flash para html5
 
インターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組みインターネットにおける動画配信の仕組み
インターネットにおける動画配信の仕組み
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
 

Similar to Implementing HLS server with GO

Azure media services
Azure media servicesAzure media services
Azure media servicesRaju Kumar
 
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...Amazon Web Services
 
PackeTV® Mobile Whitepaper
PackeTV® Mobile WhitepaperPackeTV® Mobile Whitepaper
PackeTV® Mobile WhitepaperAndrew Lemert
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overviewabhi1112
 
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) Animesh Singh
 
Group 5 Report Effect
Group 5 Report EffectGroup 5 Report Effect
Group 5 Report Effectjorence
 
Group 5 Report Effect
Group 5 Report EffectGroup 5 Report Effect
Group 5 Report Effectjorence
 
Consuming Media Services from different clients
Consuming Media Services from different clientsConsuming Media Services from different clients
Consuming Media Services from different clientsGuada Casuso
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureMotorola Mobility - MOTODEV
 
Glossary of terms
Glossary of termsGlossary of terms
Glossary of termsSheSays US
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
IBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM
 
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront  AWS Webcast - On-Demand Video Streaming using Amazon CloudFront
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront Amazon Web Services
 
Getting Started with Flash Media Server
Getting Started with Flash Media ServerGetting Started with Flash Media Server
Getting Started with Flash Media ServerJoseph Labrecque
 

Similar to Implementing HLS server with GO (20)

Windows azure media services
Windows azure media servicesWindows azure media services
Windows azure media services
 
Multimedia Streaming Architecture
Multimedia Streaming ArchitectureMultimedia Streaming Architecture
Multimedia Streaming Architecture
 
Azure media services
Azure media servicesAzure media services
Azure media services
 
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...
 
PackeTV® Mobile Whitepaper
PackeTV® Mobile WhitepaperPackeTV® Mobile Whitepaper
PackeTV® Mobile Whitepaper
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
 
Adobe® Flex™
Adobe® Flex™Adobe® Flex™
Adobe® Flex™
 
Group 5 Report Effect
Group 5 Report EffectGroup 5 Report Effect
Group 5 Report Effect
 
Group 5 Report Effect
Group 5 Report EffectGroup 5 Report Effect
Group 5 Report Effect
 
Consuming Media Services from different clients
Consuming Media Services from different clientsConsuming Media Services from different clients
Consuming Media Services from different clients
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
Glossary of terms
Glossary of termsGlossary of terms
Glossary of terms
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
IBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep Dive
 
Streaming Content on AWS
Streaming Content on AWSStreaming Content on AWS
Streaming Content on AWS
 
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront  AWS Webcast - On-Demand Video Streaming using Amazon CloudFront
AWS Webcast - On-Demand Video Streaming using Amazon CloudFront
 
Xavient - DiP
Xavient - DiPXavient - DiP
Xavient - DiP
 
Getting Started with Flash Media Server
Getting Started with Flash Media ServerGetting Started with Flash Media Server
Getting Started with Flash Media Server
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

Implementing HLS server with GO

  • 2. AGENDA - About HLS - About GO - Implement HLS with GO - Demo
  • 3. GO HLS STREAMING ABOUT HLS - STREAMING HISTORY
  • 4. GO HLS STREAMING ABOUT HLS - DEFINITION ▸ HTTP Live Streaming lets you send audio and video over HTTP from an ordinary web server for playback on iOS-based devices—including iPhone, iPad, iPod touch, and Apple TV—and on desktop computers (Mac OS X). ▸ HTTP Live Streaming supports both live broadcasts and prerecorded content (video on demand). ▸ HTTP Live Streaming supports multiple alternate streams at different bit rates, and the client software can switch streams intelligently as network bandwidth changes. ▸ HTTP Live Streaming also provides for media encryption and user authentication over HTTPS, allowing publishers to protect their work.
  • 5. GO HLS STREAMING ABOUT HLS - HOW IT WORKS The server component is responsible for taking input streams of media and encoding them digitally, encapsulating them in a format suitable for delivery, and preparing the encapsulated media for distribution.
  • 6. GO HLS STREAMING ABOUT HLS - HOW IT WORKS The distribution component consists of standard web servers. They are responsible for accepting client requests and delivering prepared media and associated resources to the client. For large-scale distribution, edge networks or other content delivery networks can also be used.
  • 7. GO HLS STREAMING ABOUT HLS - HOW IT WORKS The client software is responsible for determining the appropriate media to request, downloading those resources, and then reassembling them so that the media can be presented to the user in a continuous stream.
  • 8. GO HLS STREAMING ABOUT HLS - COMPATIBILITY
  • 9. GO HLS STREAMING ABOUT HLS - COMPETITOR ▸ Standard - MPEG-DASH
 http://www.encoding.com/mpeg-dash/ ▸ Adobe Systems - HTTP Dynamic Streaming
 http://www.encoding.com/http-dynamic-streaming-hds/ ▸ Microsoft - Smooth Streaming
 http://www.encoding.com/microsoft-smooth-streaming/
  • 10. ▸ Javascript - hls.js
 https://github.com/dailymotion/hls.js ▸ Android - MediaController
 https://developer.android.com/guide/appendix/media-formats.html ▸ iOS - MPMoviePlayer
 https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/ MPMoviePlayerController_Class/ ▸ Windows - MicrosoftHLSSDK
 https://github.com/MicrosoftDX/MicrosoftHLSSDK GO HLS STREAMING ABOUT HLS - LIBRARY
  • 11. GO HLS STREAMING ABOUT HLS - REFERENCES ▸ http://appleinsider.com/articles/09/07/08/ apple_launches_http_live_streaming_standard_in_iphone_3_ 0 ▸ https://tools.ietf.org/html/draft-pantos-http-live-streaming-19 ▸ https://developer.apple.com/streaming/ ▸ http://www.encoding.com/http-live-streaming-hls/ ▸ https://en.wikipedia.org/wiki/ Dynamic_Adaptive_Streaming_over_HTTP
  • 12. GO HLS STREAMING ABOUT GO ▸ * Some notable open-source applications in Go include: Docker, a set of tools for deploying Linux containers Doozer, a lock service by managed hosting provider Heroku Juju, a service orchestration tool by Canonical, packagers of Ubuntu Linux Syncthing, an open-source file synchronization client/server application Packer, a tool for creating identical machine images for multiple platforms from a single source configuration Ethereum, a shared world computing platform. ▸ * Other companies and sites using Go (generally together with other languages, not exclusively): Google, for many projects, notably including download server dl.google.com Netflix, for two portions of their server architecture Dropbox, migrated some of their critical components from Python to Go CloudFlare, for their delta-coding proxy Railgun, their distributed DNS service, as well as tools for cryptography, logging, stream processing, and accessing SPDY sites. SoundCloud, for "dozens of systems" The BBC, in some games and internal projects Splice, for the entire backend (API and parsers) of their online music collaboration platform. Cloud Foundry, a platform as a service CoreOS, a Linux-based operating system that utilizes Docker containers. Couchbase, Query and Indexing services within the Couchbase Server Replicated, Docker based PaaS for creating enterprise, installable software.[ MongoDB, tools for administering MongoDB instances Zerodha, for realtime peering and streaming of market data[citation needed] Chango, a programmatic advertising company uses Go in its real-time bidding systems. SendGrid, a Boulder, Colorado-based transactional email delivery and management service. Plug.dj, an interactive online social music streaming website. ThoughtWorks, some tools and applications around continuous delivery and instant messages (CoyIM). AeroFS, private cloud filesync appliance provider which migrated some microservices from Java to Go with major memory footprint improvements Uber, for handling high volumes of geofence-based queries.
  • 15. GO HLS STREAMING IMPLEMENT HLS WITH GO 1. main function 2. naming package & import modules 3. define url routing
  • 16. GO HLS STREAMING IMPLEMENT HLS WITH GO 4. implement core handler
  • 17. GO HLS STREAMING IMPLEMENT HLS WITH GO 5. implement core handler 6. serve HLS index file(.m3u8) with “application/x-mpegURL” 7. serve HLS segment file(.ts) with “video/MP2T”