Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
arvkmr
Newbie

Roku Airplay hls live video broken

Hello, I'm a developer who has been trying to figure out why live videos are not working on roku devices but work perfectly on AppleTV or samsungTV while Airplay-ing. 

It seems that roku fails to requests subsequent sections of the video goes into buffering state and then quits. Here are the technical details following for the developers working on this. 

HLS Live Playlist index.m3u8

This is not a complete playlist, files are being added as they become available. 

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:4.000000
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:4.000000,
playlist0.ts
#EXTINF:4.000000,
playlist1.ts
#EXTINF:4.000000,
playlist2.ts
#EXTINF:4.000000,
playlist3.ts
#EXTINF:4.000000,
playlist4.ts
#EXTINF:4.000000,
playlist5.ts
#EXTINF:4.000000,
playlist6.ts
#EXTINF:4.000000,
playlist7.ts
#EXTINF:4.000000,
playlist8.ts
#EXTINF:4.000000,
playlist9.ts
#EXTINF:4.000000,
playlist10.ts
#EXTINF:4.000000,
playlist11.ts
#EXTINF:4.000000,
playlist12.ts
#EXTINF:4.000000,
playlist13.ts
#EXTINF:4.000000,
playlist14.ts
#EXTINF:4.000000,
playlist15.ts
#EXTINF:4.000000,
playlist16.ts
#EXTINF:4.000000,
playlist17.ts
#EXTINF:4.000000,
playlist18.ts
#EXTINF:4.000000,
playlist19.ts
#EXTINF:4.000000,
playlist20.ts
#EXTINF:4.000000,
playlist21.ts
#EXTINF:4.000000,
playlist22.ts
#EXTINF:4.000000,
playlist23.ts
#EXTINF:4.000000,
playlist24.ts
#EXTINF:4.000000,
playlist25.ts
#EXTINF:4.000000,
playlist26.ts
#EXTINF:4.000000,
playlist27.ts
#EXTINF:4.000000,
playlist28.ts
#EXTINF:4.000000,
playlist29.ts
#EXTINF:4.000000,
playlist30.ts
#EXTINF:4.000000,
playlist31.ts
#EXTINF:4.000000,
playlist32.ts
#EXTINF:4.000000,
playlist33.ts
#EXTINF:4.000000,
playlist34.ts
#EXTINF:4.000000,
playlist35.ts
#EXTINF:4.000000,
playlist36.ts
#EXTINF:4.000000,
playlist37.ts
#EXTINF:4.000000,
playlist38.ts
#EXTINF:4.000000,
playlist39.ts
#EXTINF:4.000000,
playlist40.ts
#EXTINF:4.000000,
playlist41.ts
#EXTINF:4.000000,
playlist42.ts
#EXTINF:4.000000,
playlist43.ts
#EXTINF:4.000000,
playlist44.ts
#EXTINF:4.000000,
playlist45.ts
#EXTINF:4.000000,
playlist46.ts
#EXTINF:4.000000,
playlist47.ts
#EXTINF:4.000000,
playlist48.ts
#EXTINF:4.000000,
playlist49.ts
#EXTINF:4.000000,
playlist50.ts
#EXTINF:4.000000,
playlist51.ts
#EXTINF:4.000000,
playlist52.ts
#EXTINF:4.000000,
playlist53.ts
#EXTINF:4.000000,
playlist54.ts
#EXTINF:4.000000,
playlist55.ts
#EXTINF:4.000000,
playlist56.ts
#EXTINF:4.000000,
playlist57.ts
#EXTINF:4.000000,
playlist58.ts
#EXTINF:4.000000,
playlist59.ts
#EXTINF:4.000000,
playlist60.ts
#EXTINF:4.000000,
playlist61.ts
#EXTINF:4.000000,
playlist62.ts
#EXTINF:4.000000,
playlist63.ts
#EXTINF:4.000000,
playlist64.ts
#EXTINF:4.000000,
playlist65.ts
#EXTINF:4.000000,
playlist66.ts
#EXTINF:4.000000,
playlist67.ts
#EXTINF:4.000000,
playlist68.ts
#EXTINF:4.000000,
playlist69.ts
#EXTINF:4.000000,
playlist70.ts
#EXTINF:4.000000,
playlist71.ts
#EXTINF:4.000000,
playlist72.ts
#EXTINF:4.000000,
playlist73.ts
#EXTINF:4.000000,
playlist74.ts
#EXTINF:4.000000,
playlist75.ts
#EXTINF:4.000000,
playlist76.ts
#EXTINF:4.000000,
playlist77.ts
#EXTINF:4.000000,
playlist78.ts
#EXTINF:4.000000,
playlist79.ts
#EXTINF:4.000000,
playlist80.ts
#EXTINF:4.000000,
playlist81.ts
#EXTINF:4.000000,
playlist82.ts
#EXTINF:4.000000,
playlist83.ts
#EXTINF:4.000000,
playlist84.ts
#EXTINF:4.000000,
playlist85.ts
#EXTINF:4.000000,
playlist86.ts
#EXTINF:4.000000,
playlist87.ts
#EXTINF:4.000000,
playlist88.ts
#EXTINF:4.000000,
playlist89.ts
#EXTINF:4.000000,
playlist90.ts
#EXTINF:4.000000,
playlist91.ts
#EXTINF:4.000000,
playlist92.ts
#EXTINF:4.000000,
playlist93.ts
#EXTINF:4.000000,
playlist94.ts
#EXTINF:4.000000,
playlist95.ts
#EXTINF:4.000000,
playlist96.ts
#EXTINF:4.000000,
playlist97.ts
#EXTINF:4.000000,
playlist98.ts
#EXTINF:4.000000,
playlist99.ts
#EXTINF:4.000000,
playlist100.ts
#EXTINF:4.000000,
playlist101.ts
#EXTINF:4.000000,
playlist102.ts
#EXTINF:4.000000,
playlist103.ts
#EXTINF:4.000000,
playlist104.ts
#EXTINF:4.000000,
playlist105.ts
#EXTINF:4.000000,
playlist106.ts
#EXTINF:4.000000,
playlist107.ts
#EXTINF:4.000000,
playlist108.ts
#EXTINF:4.000000,
playlist109.ts
#EXTINF:4.000000,
playlist110.ts
#EXTINF:4.000000,
playlist111.ts
#EXTINF:4.000000,
playlist112.ts
#EXTINF:4.000000,
playlist113.ts
#EXTINF:4.000000,
playlist114.ts
#EXTINF:4.000000,
playlist115.ts
#EXTINF:4.000000,
playlist116.ts
#EXTINF:4.000000,
playlist117.ts
#EXTINF:4.000000,
playlist118.ts
#EXTINF:4.000000,
playlist119.ts
#EXTINF:4.000000,
playlist120.ts
#EXTINF:4.000000,
playlist121.ts
#EXTINF:4.000000,
playlist122.ts
#EXTINF:4.000000,
playlist123.ts
#EXTINF:4.000000,
playlist124.ts
#EXTINF:4.000000,
playlist125.ts
#EXTINF:4.000000,
playlist126.ts
#EXTINF:4.000000,
playlist127.ts
#EXTINF:4.000000,
playlist128.ts
#EXTINF:4.000000,
playlist129.ts
#EXTINF:4.000000,
playlist130.ts
#EXTINF:4.000000,
playlist131.ts
#EXTINF:4.000000,
playlist132.ts
#EXTINF:4.000000,
playlist133.ts
#EXTINF:4.000000,
playlist134.ts
#EXTINF:4.000000,
playlist135.ts
#EXTINF:4.000000,
playlist136.ts
#EXTINF:4.000000,
playlist137.ts
#EXTINF:4.000000,
playlist138.ts
#EXTINF:4.000000,
playlist139.ts
#EXTINF:4.000000,
playlist140.ts
#EXTINF:4.000000,
playlist141.ts
#EXTINF:4.000000,
playlist142.ts
#EXTINF:4.000000,
playlist143.ts
#EXTINF:4.000000,
playlist144.ts
#EXTINF:4.000000,
playlist145.ts
#EXTINF:4.000000,
playlist146.ts

Files that Roku requests from my web server. 

[DEBUG] Connection on socket 21 preflighting request "GET /playlist2.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist2.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43388 200 "GET /playlist2.ts" (218 | 1522882)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist3.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist3.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43394 200 "GET /playlist3.ts" (218 | 1519122)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist4.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist4.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43400 200 "GET /playlist4.ts" (218 | 1504458)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist5.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist5.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43404 200 "GET /playlist5.ts" (218 | 1515174)
[DEBUG] Connection on socket 22 preflighting request "GET /playlist6.ts" with 218 bytes body
[DEBUG] Connection on socket 22 processing request "GET /playlist6.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43410 200 "GET /playlist6.ts" (218 | 1556910)
[DEBUG] Connection on socket 22 preflighting request "GET /playlist7.ts" with 218 bytes body
[DEBUG] Connection on socket 22 processing request "GET /playlist7.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43420 200 "GET /playlist7.ts" (218 | 1527206)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist8.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist8.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43428 200 "GET /playlist8.ts" (218 | 1527958)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist9.ts" with 218 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist9.ts" with 218 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43438 200 "GET /playlist9.ts" (218 | 1567626)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist10.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist10.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43444 200 "GET /playlist10.ts" (219 | 1520249)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist11.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist11.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43450 200 "GET /playlist11.ts" (219 | 1478514)
[DEBUG] Connection on socket 27 preflighting request "GET /playlist12.ts" with 219 bytes body
[DEBUG] Connection on socket 27 processing request "GET /playlist12.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43487 200 "GET /playlist12.ts" (219 | 1494682)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist13.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist13.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43521 200 "GET /playlist13.ts" (219 | 1501262)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist14.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist14.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43551 200 "GET /playlist14.ts" (219 | 1548636)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist15.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist15.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43589 200 "GET /playlist15.ts" (219 | 1567062)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist16.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist16.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43627 200 "GET /playlist16.ts" (219 | 1594698)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist17.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist17.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43665 200 "GET /playlist17.ts" (219 | 1823306)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist18.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist18.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43705 200 "GET /playlist18.ts" (219 | 1601278)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist19.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist19.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43709 200 "GET /playlist19.ts" (219 | 1589809)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist20.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist20.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43712 200 "GET /playlist20.ts" (219 | 1588494)
[DEBUG] Connection on socket 21 preflighting request "GET /playlist21.ts" with 219 bytes body
[DEBUG] Connection on socket 21 processing request "GET /playlist21.ts" with 219 bytes body
[VERBOSE] [192.168.1.102:51177] 192.168.1.116:43715 200 "GET /playlist21.ts" (219 | 1611430)

As you can see the files that roku requested only went up to /playlist21.ts after which the video started buffering and stopped to play as roku gave up. Even though the  /index.m3u8 that was sent to it contained 146 segments. 

0 Kudos
1 REPLY 1
renojim
Community Streaming Expert

Re: Roku Airplay hls live video broken

Is it only while Air-playing?

What audio and video codecs are being used within the TS segments?

I've never used it, but Roku does have a stream tester.  I don't know how it would work with Airplay.

http://devtools.web.roku.com/stream_tester/html/

Roku Community Streaming Expert

Help others find this answer and click "Accept as Solution."
If you appreciate my answer, maybe give me a Kudo.

I am not a Roku employee.
0 Kudos