Upload
line-corporation
View
4.667
Download
1
Embed Size (px)
Citation preview
What is LINE LIVE?
Video streaming and hosting service
Watch streams from celebrities and companies
Host or watch streams from other users
Chat communication
Showing appreciation with Loves
History of LINE LIVE Feb 2014 LINE LIVE CAST was released
History of LINE LIVE Feb 2014 LINE LIVE CAST was released
Sep 2015 Kick off meeting for LINE LIVE
History of LINE LIVE Feb 2014 LINE LIVE CAST was released
Sep 2015 Kick off meeting for LINE LIVE
Dec 2015 LINE LIVE was released
History of LINE LIVE Feb 2014 LINE LIVE CAST was released
Sep 2015 Kick off meeting for LINE LIVE
Dec 2015 LINE LIVE was released
Aug 2016 LINE LIVE Version 2 is out
Tools and Staff
Java, Nginx, MySQL, Redis, Elasticsearch, Fluentd, CDN, etc.
Server (media 260+, chat 110+, API and other 100+)
Over 20 core engineers
Over 30 other related engineers (LINE app, storage, network, etc.)
LINE LIVE Architecture
OBS I nhouse S t o r age
Sys t em
Hosting
Viewing
RTMP Media Servers
API Servers
LINE
Billing
CMS
Chat
WebSocke t
JSON API
CDN Akama i
LINE Servers Upload HLS F i les
Cache
S e n d O p e r a t i o n O n J S O N A P I
S e n d E v e n t s O n J S O N A P I
Relationship with LINE
Data Analysis
For deta i ls , see the presenta t ion,
New Stream Processing Pla t form with Apache Fl ink"
Data Labs
Real-time viewer aggregation
Streaming program KPI measurement, etc.
Video Stream Delivery
HLS (HTTP Live Streaming)
HLS
l ive-1_001.ts
l ive-1_002.ts
l ive-1_003.ts
l ive-1_004.ts
l ive-1_005.ts
(HTTP Live Streaming)
HLS
All compiled into one video
l ive-1_001.ts
l ive-1_002.ts
l ive-1_003.ts
l ive-1_004.ts
l ive-1_005.ts
(HTTP Live Streaming)
HLS
l ive-1.m3u8
l ive-1_001.ts l ive-1_002.ts l ive-1_003.ts l ive-1_004.ts l ive-1_005.ts . . .
l ive-1_001.ts
l ive-1_002.ts
l ive-1_003.ts
l ive-1_004.ts
l ive-1_005.ts
(HTTP Live Streaming)
HLS
l ive-1.m3u8
l ive-1_001.ts l ive-1_002.ts l ive-1_003.ts l ive-1_004.ts l ive-1_005.ts . . .
l ive-1_001.ts
l ive-1_002.ts
l ive-1_003.ts
l ive-1_004.ts
l ive-1_005.ts
(HTTP Live Streaming)
CDN
HLS l ive-1_720.m3u8
l i v e -1_720_ 00 1 . t s l i v e -1_720_ 00 2 . t s l i v e -1_720_ 00 3 . t s . . .
l ive-1.m3u8
l i v e -1_720 . m3 u8 l i v e -1_480 . m3 u8 l i v e -1_360 . m3 u8 . . .
l ive-1_480.m3u8
l i v e -1_480_ 00 1 . t s l i v e -1_480_ 00 2 . t s l i v e -1_480_ 00 3 . t s . . .
l ive-1_360.m3u8
l i v e -1_360_ 00 1 . t s l i v e -1_360_ 00 2 . t s l i v e -1_360_ 00 3 . t s . . .
l i v e -1_720 _0 0 1 . t s
l i ve -1_720 _0 0 2 . t s
l i ve -1_720 _0 0 3 . t s
l i ve -1_480 _0 0 1 . t s
l i ve -1_480 _0 0 2 . t s
l i ve -1_480 _0 0 3 . t s
l i ve -1_360 _0 0 1 . t s
l i ve -1_360 _0 0 2 . t s
l i ve -1_360 _0 0 3 . t s
HLS l ive-1_720.m3u8
l i v e -1_720_ 00 1 . t s l i v e -1_720_ 00 2 . t s l i v e -1_720_ 00 3 . t s . . .
l ive-1.m3u8
l i v e -1_720 . m3 u8 l i v e -1_480 . m3 u8 l i v e -1_360 . m3 u8 . . .
l ive-1_480.m3u8
l i v e -1_480_ 00 1 . t s l i v e -1_480_ 00 2 . t s l i v e -1_480_ 00 3 . t s . . .
l ive-1_360.m3u8
l i v e -1_360_ 00 1 . t s l i v e -1_360_ 00 2 . t s l i v e -1_360_ 00 3 . t s . . .
l i v e -1_720 _0 0 1 . t s
l i ve -1_720 _0 0 2 . t s
l i ve -1_720 _0 0 3 . t s
l i ve -1_480 _0 0 1 . t s
l i ve -1_480 _0 0 2 . t s
l i ve -1_480 _0 0 3 . t s
l i ve -1_360 _0 0 1 . t s
l i ve -1_360 _0 0 2 . t s
l i ve -1_360 _0 0 3 . t s
Architecture
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
RTMP
Architecture
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
RTMP
Upload HLS Fi les
Architecture
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
Send Events On JSON API
RTMP
Upload HLS Fi les
Architecture
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
Send Events On JSON API
RTMP
Send a
Push
Upload HLS Fi les
Architecture
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
Send Events On JSON API
Cache Download HLS Fi les
RTMP JSON API
Upload HLS Fi les
HLS Good Hack on LINE LIVE
HLS Good Hack for Data LIVE
http:///{encrypt(objectId, startAt, durationSec)}_720_xxx.ts
http:///{encrypt(objectId, startAt, durationSec)}.m3u8
http:///FooBar_720_xxx.ts
http:///FooBar.m3u8
Example : s tar tAt=19:00 dura t ionSec=3600
Prepare encrypted URL on server in advance
HLS Good Hack for Data LIVE
GET 200 GET 200
18:00 21:00 19:00 20:00
http:///FooBar.m3u8
http:///FooBar_720_xxx.ts
HLS Good Hack for Data LIVE Example : s tar tAt=19:00 dura t ionSec=3600
GET 404 GET 404 GET 404 GET 404
18:00 21:00 19:00 20:00
http:///FooBar.m3u8
http:///FooBar_720_xxx.ts
HLS Good Hack for Auto play
http:///{encrypt(objectId, startAt, durationSec)}.m3u8
http:///FooBar_720_xxx.ts
Prepare encrypted URL on server in advance
Example : s tar tAt=2sec dura t ionSec=6
001. ts 002. ts 003. ts 004. ts 005. ts xxx. ts
HLS Good Hack for Auto play Example : s tar tAt=2sec dura t ionSec=6
001. ts 002. ts 003. ts 004. ts 005. ts xxx. ts
GET 200 GET GET GET
http:///AcmeAcme.m3u8
foo-bar.m3u8 002 . t s 003 . t s 004 . t s
Flow When Stream Is Terminated
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
RTMP
Upload HLS Fi les
Stream Terminated
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
RTMP
Upload HLS Fi les
Stream Terminated
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
2. Cache
RTMP
Upload HLS Fi les
1 . GET HLS 2. Fetch Or ig in
Stream Terminated
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
3. 404 4. 404
RTMP
Upload HLS Fi les
1 . GET HLS 2. Fetch Or ig in
Standby Until Recovery
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
3. 404 4. 404
RTMP
Upload HLS Fi les
Burst API Server
6. SUSPEND
5. Pol l ing
SUSPEND Event
1 . GET HLS 2. Fetch Or ig in
Recovery Flow
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
1. RTMP restar t
Upload HLS Fi les
Burst API Server
2. RESTART event
Recovery Flow
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
1. RTMP restar t
Upload HLS Fi les
Burst API Server
4. RESTART
3. Pol l ing
2. RESTART event
Recovery Flow
Media Servers
API Servers
OBS Inhouse Storage System
CDN Akamai
Hosting Viewing
Cache 5. Download HLS Fi les
1 . RTMP restar t
Upload HLS Fi les
Burst API Server
4. RESTART
3. Pol l ing
2. RESTART event
Improved Hosting Performance GPU CPU
720p 1080p
220%
267%
Chat
Chat Overview CMS
Hosting Viewing
WebSocket
CHAT
API Servers
JSON API
JSON API
JSON API WebSocket
Chat Overview Server 1 Server 2 Server 3
Room 1 Room 1
Redis Cluster
Publ ish/Subscr ibe
Chat Overview Server 1 Server 2 Server 3
Room 1 Room 1
Room 2 Room 2
Redis Cluster
Room 2
Log Archive
l ive-1.chatlog
l ive-1_001.json l ive-1_002.json l ive-1_003.json l ive-1_004.json l ive-1_005.json . . .
l ive-1_001.json
l ive-1_002.json
l ive-1_003.json
l ive-1_004.json
l ive-1_005.json
Upload to the OBS
Issues
Issues
Over 10,000 messages per minute
LOVE
Love-mashing is fun "Love-mashing is communication
Love
Cl ients Store ( Increment ) F lush
Burst API
Redis Cluster
MySQL
Clients
- ranking (ZSET) - Tota l count (NUM)
Data ( log)
Using Lua Scr ip t
Love Total Ranking
Get
API Redis Cluster
Clients
Using ZREVRANGE
Love Total Ranking
Get
(Arch ive)
API Redis Cluster
Clients
MySQL
Using ZREVRANGE
Example 1
11 million Loves in 120 minutes
Example 2
2.3 million Loves in 30 minutes
Chat and Love Issues Are Also Explained on our Blog
http://developers.linecorp.com/blog/ja/?p=3653
http://developers.linecorp.com/blog/ja/?p=3771
Summary
Provided overview of LINE LIVE
Talked about video streaming methods
Talked about implementation of traffic-inviting chat and Love features
Any Questions?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56