Sunteți pe pagina 1din 6

NETMANIAS

TECH-BLOG

Please visit www.netmanias.com to view more posts

YouTube's Live TV Streaming in Mobile


Devices - HLS & Adaptive
October 30, 2012 | By Harry J. Son (tech@netmanias.com)

This post will analyze the streaming methods used in YouTube's Live TV streaming services for mobile
devices in an LTE network and a Wi-Fi network based on our actual measurements.

YouTube's Live TV Streaming in Mobile Devices: HLS & Adaptive


First, measurements in an LTE network
The mobile device and network used for our measurement were Galaxy S4 and KT LTE network. First,
after accessing YouTube using a YouTube APP, we captured the actual HTTP traffic while watching the
SPOTV Live channel. The figure below is an illustration showing how a content was requested and
delivered while we were watching the SPOTV Live channel. YouTube uses Apple's HLS (HTTP Live
Streaming) to provide its Live TV streaming services. The chunk duration and codec were 5 seconds and
H.264 respectively.
1. The user runs a YouTube APP on his mobile device and clicks SPOTV Live.
2. The device sends a message requesting a Variant Playlist file to the YouTube server to obtain a
Variant Playlist file for the SPOTV Live channel.
3. The YouTube server sends the device a Variant Playlist file, which contains the video quality
information (bandwidths, resolutions, etc.) for the SPOTV Live channel. The SPOTV Live channel provides
six different profiles (64 Kbps (128x72) ~ 2.8 Mbps (1280x720)), and the video quality levels are identified
by the itag values of each profile.
4. The device selects the profile with the lowest video quality (itag=151, 64 Kbps, 128x72) in the Variant
Playlist file, and then sends a message requesting a Playlist file for the selected profile to the YouTube
server.
5. The YouTube server sends the device the Playlist file for the selected profile, which contains
the information about the chunk files required for video playback (duration, sequences, URLs of each
chunk file, etc.).
6. The device selects the first chunk file (#74753) with the lowest video quality in the list, then
it requests the YouTube server for the file (Note: It is assumed that the chunk file with the lowest video
quality is not requested for playback, but for quality check between the device and YouTube server.).
7. The YouTube server sends the device the first chunk file (#74753) with the lowest video quality as
requested.
1

Netmanias Tech-Blog: YouTube's Live TV Streaming in Mobile Devices - HLS & Adaptive

Mobile (LTE-A)

1 Click "SPOTV Live" in YouTube APP


2 Request Variant Playlist

HTTP GET

3 Variant Playlist

HTTP Response

Profiles (6)
Bandwidth = 64000
Bandwidth = 266000
Bandwidth = 395000
Bandwidth = 758000
Bandwidth = 1475000
Bandwidth = 2823000

Playlist URL
RESOLUTION="128x72" itag="151" CODECS="avc1.42000B, mp4a.40.2" http://www.youtube.com//itag/151/...
RESOLUTION="426x240" itag="132" CODECS="avc1.420015, mp4a.40.2" http://www.youtube.com//itag/132/...
RESOLUTION="426x240" itag="92" CODECS="avc1.4d0015, mp4a.40.2" http://www.youtube.com//itag/92/...
RESOLUTION="640x360" itag="93" CODECS="avc1.4d001e, mp4a.40.2" http://www.youtube.com//itag/93/...
RESOLUTION="854x480" itag="94" CODECS="avc1.4d001f, mp4a.40.2" http://www.youtube.com//itag/94/...
RESOLUTION="1280x720"itag="95" CODECS="avc1.4d001f, mp4a.40.2" http://www.youtube.com//itag/95/...

4 Request Playlist (http://www.youtube.com/videoplayback//itag/151//index.m3u8 )


5 Playlist (itag=151)
Chunk duration = 5 seconds
URL list of available chunks
http://www.youtube.com/videoplayback//itag/151//sq/74752/...
http://www.youtube.com/videoplayback//itag/151//sq/74753/...
http://www.youtube.com/videoplayback//itag/151//sq/74754/...
http://www.youtube.com/videoplayback//itag/151//sq/74755/...
http://www.youtube.com/videoplayback//itag/151//sq/74756/...

Video Quality
- resolution: 128x72
- encoding rate: 64 Kbps
Chunk #

6 Request Chunk (http://www.youtube.com/videoplayback//itag/151//sq/74753/... )


7 Chunk=74753 (itag=151, Duration=5s, Resolution=128x72, Bandwidth=64000)

Chunk 74753 (64Kbps)

Initial Buffering
8 Request Playlist (http://www.youtube.com/videoplayback//itag/95//index.m3u8 )
9 Playlist (itag=95)
Chunk duration = 5 seconds
URL list of available chunks
http://www.youtube.com/videoplayback//itag/95//sq/74752/...
http://www.youtube.com/videoplayback//itag/95//sq/74753/...
http://www.youtube.com/videoplayback//itag/95//sq/74754/...
http://www.youtube.com/videoplayback//itag/95//sq/74755/...
http://www.youtube.com/videoplayback//itag/95//sq/74756/...

Video Quality
- resolution: 1280x720
- encoding rate: 2.8 Mbps
Chunk #

10 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74753/... )


11 Chunk=74753 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

Chunk 74753 (2.8Mbps)

12 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74754/... )


13 Chunk=74754 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

Chunk 74754 (2.8Mbps)

14 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74755/... )


15 Chunk=74755 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

Chunk 74755 (2.8Mbps)

16 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74756/... )


17 Chunk=74756 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

Chunk 74756 (2.8Mbps)

Netmanias Tech-Blog: YouTube's Live TV Streaming in Mobile Devices - HLS & Adaptive

Steady State

18 Request delay (3 ~ 7 seconds)

19 Request Playlist (http://www.youtube.com/videoplayback//itag/95//index.m3u8 )


20 Playlist (itag=95)
Chunk duration = 5 seconds
URL list of available chunks
http://www.youtube.com/videoplayback//itag/95//sq/74754/...
http://www.youtube.com/videoplayback//itag/95//sq/74755/...
http://www.youtube.com/videoplayback//itag/95//sq/74756/...
http://www.youtube.com/videoplayback//itag/95//sq/74757/...
http://www.youtube.com/videoplayback//itag/95//sq/74758/...

21 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74757/... )


22 Chunk=74757 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

Chunk 74757 (2.8Mbps)

23 Request delay (3 ~ 7 seconds)

24 Request Playlist (http://www.youtube.com/videoplayback//itag/95//index.m3u8 )


25 Playlist (itag=95)
Chunk duration = 5 seconds
URL list of available chunks
http://www.youtube.com/videoplayback//itag/95//sq/74755/...
http://www.youtube.com/videoplayback//itag/95//sq/74756/...
http://www.youtube.com/videoplayback//itag/95//sq/74757/...
http://www.youtube.com/videoplayback//itag/95//sq/74758/...
http://www.youtube.com/videoplayback//itag/95//sq/74759/...

26 Request Chunk (http://www.youtube.com/videoplayback//itag/95//sq/74758/... )


Chunk 74758 (2.8Mbps)

...

27 Chunk=74758 (itag=95, Duration=5s, Resolution=1280x720, Bandwidth=2823000)

8. The device automatically selects the highest playable video quality considering its current connection
condition, and sends the YouTube server a message requesting a Playlist file for the selected
video quality (In our actual test, the video quality with the highest bit rate was selected).

Netmanias Tech-Blog: YouTube's Live TV Streaming in Mobile Devices - HLS & Adaptive

9. The YouTube server sends the device the Playlist file for the selected video quality, which contains
the information about the chunk files required for video playback (duration, sequences, URLs of each
chunk file, etc.).
10. The device requests the YouTube server for the first chunk file (#74753) for playback (In the figure,
the device requested the chunk file which has the same sequence as in the chunk file that was requested
for quality check between the device and YouTuber server.).
11. The YouTube server delivers the requested chunk file, and the device begins playing the chunk
received.
12-17. The device requests and receives three chunks in a row (#74754, #74755, #74756).
The device buffers multiple chunks at once by going through the initial buffering procedures (steps 10 ~
17 above).
18. Then, the device momentarily pauses requesting chunks for about 5~8 seconds.
19. The device resumes requesting a Playlist file for next chunks (if the network condition is changed and
thus chunks in different quality are needed, the device requests a Playlist file for the desired video
quality).
20. The YouTube server returns the Playlist file for the selected video quality to the device.
21-22. The device requests and receives the next chunk (#74757).
Now, the steps 18 ~ 22 are repeated until the user finishes watching.
After the initial buffering procedures (steps 10 ~17), the device stays in Steady State, requesting only the
minimum number of chunks required for uninterrupted play, unless there is a significant change in its
condition. This type of chunk request will be repeated until the user stops playing the video or the entire
video is played.
During our test in the LTE network, the entire video has been played at a steady 2.8 Mbps and no
automatic switching between video quality levels was detected (unfortunately, thanks to sufficient
bandwidth in the LTE network).
To check whether bit rate switching is supported or not, we accessed a Wi-Fi network, which has poor
bandwidth conditions compared to LTE, and performed the same test again. Immediately upon accessing
the Wi-Fi network using the same device (Galaxy S4), we could finally observe bit rate switching.

Netmanias Tech-Blog: YouTube's Live TV Streaming in Mobile Devices - HLS & Adaptive

Video Quality

Chunk #

As can be seen in the figure above, at first, the device requested a chunk file with 64 Kbps bit rate (itag
151), but later on it requested the ones with different bit rates, e.g. 2.8Mbps (itag 95), 758Kbps (itag 93),
1.47Mbps (itag 94), and so on.
In generic ABR (Adaptive Bit Rate) streaming, a device requests a chunk file with the lowest video quality
at first, and plays the file. Afterwards, while playing the file, it requests the next chunk file with a slightly
higher quality level, looking for the best suitable video quality considering the device and network
conditions. However, it was different in ABR streaming provided by YouTube's Live TV. As seen in our two
tests in the LTE and Wi-Fi network, once the device finds the network condition to be good, it requests a
chunk file with the highest video quality from the beginning, instead of selecting the lowest level and
gradually upgrading the level.
It was unfortunate we couldn't detect bit rate switching in the LTE network. However, at least we could
confirm bit rate switching was supported in YouTube Live TV services through our test in the Wi-Fi
network.

Netmanias Research and Consulting Scope


99

00

01

02

03

04

05

06

07

08

09

10

11

12

13

eMBMS/Mobile IPTV
CDN/Mobile CDN
Transparent Caching
BSS/OSS

Services

Cable TPS
Voice/Video Quality
IMS
Policy Control/PCRF
IPTV/TPS
LTE

Mobile
Network

Mobile WiMAX
Carrier WiFi
LTE Backaul
Data Center Migration
Carrier Ethernet
FTTH

Wireline
Network

Data Center
Metro Ethernet
MPLS
IP Routing

CDN
Transparent
Caching

Analysis

Networks

eMBMS

LTE
IMS
Infrastructure Services

Analyze trends, technologies and market


Report
Technical documents
Blog
One-Shot gallery

Concept Design
DRM

POC

Training

Wi-Fi

We design the future

protocols

IP/MPLS

We design the future

Carrier Ethernet

We design the future

Consulting

Visit http://www.netmanias.com to view and download more technical documents.

Future

About NMC Consulting Group (www.netmanias.com)


NMC Consulting Group is an advanced and professional network consulting company, specializing in IP network areas (e.g., FTTH, Metro Ethernet and IP/MPLS), service
areas (e.g., IPTV, IMS and CDN), and wireless network areas (e.g., Mobile WiMAX, LTE and Wi-Fi) since 2002.
Copyright 2002-2013 NMC Consulting Group. All rights reserved.

S-ar putea să vă placă și