Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
dvyz
Level 7

Re: HLS Troubleshooting

Hello,
I am looking for the latest HLS version supported on Roku devices (Including Roku 1, 2, 3 and Dongle)
Please share with me an official info or a link.
It would be great if I can get the release dates/firmware version number etc. of the new version supported in the future release.
Thanks in advance.
0 Kudos
CASHREEDHAR
Level 7

Re: HLS Troubleshooting

Dear friends, I'm stuck with TCL Roku TV which I bought 2 months back. This is my first post here.
Basically I'm trying to cast my android screen, and trying to do HLS streaming on TV. The default roku software in TV doesn't have the feature of screen cast. After searching posts and forums, losing the hopes and thinking Chromecast is only solution for this.
Any help getting HLS stream and screen cast will be highly appreciated (TV is HDTV with dlna capabilities)
0 Kudos
jnelson
Level 7

Re: HLS Troubleshooting

So I've gotten HLS to work with my roku box, and have figured out how to write and encode it using the XML file. But i'm trying to write an if statement to detect when the HLS stream is offline with something like isStreamStarted() or perhaps with isRequestFailed() so something like:

if isRequestFailed() = -5
print "The stream is currently offline"
end if

Would this work? If so, where and which Source file would you recommend this being placed?
We're using the video player template for our channel.

When i'm connected to the debugging console - and I click on one of the offline HLS streams it gives me the output of

"ButtonPressed
showHomeScreen | msg = ConnectionContext failure | index = 0
Video status: 0 0
showHomeScreen | msg = Unspecified or invalid track path/url. | index = 0
Video status: 0 0
showHomeScreen | msg = | index = -5
Video request failure: -5 1
showHomeScreen | msg = | index = 0
Screen closed"

If you need to see the code, I can post that as well, but I haven't made many changes from the original Video player template.
0 Kudos
sablerock
Level 7

Re: HLS Troubleshooting

NEW PROBLEM:

My HLS host provider implemented a security feature that has crippled my video stream. The content is open source, so I don't mind posting the link:

http://edge1.tikilive.com:1935/unrestri ... FsdGFsaw==

The original link was as follows:

http://edge1.tikilive.com:1935/roku_tik ... ylist.m3u8

Can someone please tell me why my player can no longer pull up the stream, and how I can fix it?

Erik
0 Kudos
Chris_Arnesen
Level 7

Re: HLS Troubleshooting

"sablerock" wrote:
http://edge1.tikilive.com:1935/unrestricted_tikilive/33657/amlst:A2YknBd37xGD/playlist.m3u8?i=YXBwTmFtZT1VbnJlc3RyaWN0ZWQmY0lEPTMzNjU3JmNOYW1lPWNybnN0dWRpb2xpdmUmb0lEPTEzNDE1OCZvTmFtZT1jcm5kaWdpdGFsdGFsaw==

http://edge1.tikilive.com:1935/roku_tik ... ylist.m3u8

Hi Erik,

Testing these URLs in VLC doesn't load anything either. I wonder if something else changed...
--Chris
0 Kudos
tim_beynart
Level 8

Re: HLS Troubleshooting

"sablerock" wrote:
NEW PROBLEM:

My HLS host provider implemented a security feature that has crippled my video stream. The content is open source, so I don't mind posting the link:

http://edge1.tikilive.com:1935/unrestri ... FsdGFsaw==

The original link was as follows:

http://edge1.tikilive.com:1935/roku_tik ... ylist.m3u8

Can someone please tell me why my player can no longer pull up the stream, and how I can fix it?

Erik


That query string is base64 encoded, it decodes to
appName=Unrestricted&cID=33657&cName=crnstudiolive&oID=134158&oName=crndigitaltalk

But there's no telling what the host is doing with that information.
I did come across an issue with HLS where the Roku will append the querystring params from the playlist URL to the segment (.ts) requests. This broke our streams with our host, so it's worth looking at.
0 Kudos
accessfletch
Level 7

Re: HLS Troubleshooting

"jnelson" wrote:
So I've gotten HLS to work with my roku box, and have figured out how to write and encode it using the XML file. But i'm trying to write an if statement to detect when the HLS stream is offline with something like isStreamStarted() or perhaps with isRequestFailed() so something like:

if isRequestFailed() = -5
print "The stream is currently offline"
end if

Would this work? If so, where and which Source file would you recommend this being placed?
We're using the video player template for our channel.

When i'm connected to the debugging console - and I click on one of the offline HLS streams it gives me the output of

"ButtonPressed
showHomeScreen | msg = ConnectionContext failure | index = 0
Video status: 0 0
showHomeScreen | msg = Unspecified or invalid track path/url. | index = 0
Video status: 0 0
showHomeScreen | msg = | index = -5
Video request failure: -5 1
showHomeScreen | msg = | index = 0
Screen closed"

If you need to see the code, I can post that as well, but I haven't made many changes from the original Video player template.


Did you ever get 1) a reply to this elsewhere, or 2) success on your own? I'm trying to figure out how to give appropriate error messaging to viewers (i.e. check back next Sunday at 8am). Note that I'm not a programmer, but I take direction well, so please take that into consideration when giving any replies to mine!
0 Kudos
mkammes
Level 9

Re: HLS Troubleshooting

Running into some HLS sync issues, and some metadata is pointing to a problem, but I can't resolve it.

This is a spawn of viewtopic.php?f=34&t=95362 .

To summarize, i find when I encode HLS files for my channel (Apple; .ts segments and m3u8 playlist), the first ~2 seconds never play....first frame of action is 2 seconds into the video. I noticed that this also throws off the captions (sidecar SRT), too...they play ~2 seconds later out of sync (late).

I tried remedying this by encoding 2 seconds of black before the video begins, and retimed the captions. While this works visually - e.g. the video plays fully - the captions are the same amount off.

It's not a keyframe issue (as first frame is an I), however, tearing apart the metadata yields the following metadata:

This is of the first fragment:



Duration : 00:00:05.839
Delay : 2000.000000
Delay : 2s 0ms
Delay : 2s 0ms
Delay : 2s 0ms
Delay : 00:00:02.000


While this is not a smoking gun, the 2 seconds do seem to correspond to the sync issue I'm seeing. FWIW, I'm using Sorenson Desktop 10 Pro, and I don't appear to have any options to enable/disable this delay. If there are not any suggestions to remove this delay, I'm open to other encoding suggestions that can do segmentation; other transcoders (Compressor, Episode, etc) don't seem to do segments. I do understand ffmpeg can be scripted to do this, but I'd prefer a GUI.

Thanks!
0 Kudos
sarada
Level 7

Re: HLS Troubleshooting

Hi Roku team,
Please help, how can i play the below m3u8 file in roku .

When i play the file it picks up different .ts file and does not sync with the actual m3u8 player when i test via https://www.hlsplayer.net or when i play in vlc.

"Roku video player does not in sync with actual stream"


This has option of #EXT-X-CUE-OUT-CONT:CAID=0x43524E5A494F4449454E4741564F44303035,ElapsedTime=18.480,Duration=30,SCTE35=/DA+AAAAAAAAAP/wBQb+eaxT4AAoAiZDVUVJAAAAfn/MAAApMuAMEkNSTlpJT0RJRU5HQVZPRDAwNTQAAE2ujvk=

looks like this option is not recognized by roku player and always taking the first video stream.

http://www.tvdiary.net/roku/livetv/sports/live1.m3u8
0 Kudos
jeswin
Level 7

Re: HLS Troubleshooting

Hi,
I am facing a problem while pulling the live streaming video (HLS) which has some token in the link, refer below link (altered the real link)
http://sample.net/live/s/xdph/ipad_in.m ... 53189bc3ad

But it is working fine with normal .m3u8 video files
My code is as follows,

Feed.xml

<item sdImg="http://sample.com/roku/videoplayer/images/sd_logo.jpg" hdImg="http://sample.com/roku/videoplayer/images/hd_logo.jpg">
<title>Content</title>
                <contentId>10002</contentId>
                <contentType>LiveTV</contentType>
                <contentQuality>SD</contentQuality>
                
                <media>
                  <streamFormat>HLS</streamFormat>
                        <streamQuality>SD</streamQuality>
                        <streamBitrate>700</streamBitrate>
                        <streamUrl>http://sample.net/live/s/xdph/ipad_in.m3u8?p=38&amp;cf=1483253940&amp;e=1483253940&amp;h=48d0ac76464d5c50ae49dd53189bc3ad</streamUrl>
                </media>
                <synopsis>It a test video</synopsis>
                <genres>kids</genres>
                <runtime>5000</runtime>
        </item>



Runtime i have tried with 24 hours also.

Feed.brs


Function parse_show_feed(xml As Object, feed As Object) As Void

    showCount = 0
    showList = xml.GetChildElements()

    for each curShow in showList

        'for now, don't process meta info about the feed size
        if curShow.GetName() = "resultLength" or curShow.GetName() = "endIndex" then
            goto skipitem
        endif

        item = init_show_feed_item()

        'fetch all values from the xml for the current show
        item.hdImg            = validstr(curShow@hdImg) 
        item.sdImg            = validstr(curShow@sdImg) 
        item.ContentId        = validstr(curShow.contentId.GetText()) 
        item.Title            = validstr(curShow.title.GetText()) 
        item.Description      = validstr(curShow.description.GetText()) 
        item.ContentType      = validstr(curShow.contentType.GetText())
        item.ContentQuality   = validstr(curShow.contentQuality.GetText())
        item.Synopsis         = validstr(curShow.synopsis.GetText())
        item.Genre            = validstr(curShow.genres.GetText())
        item.Runtime          = validstr(curShow.runtime.GetText())
        item.HDBifUrl         = validstr(curShow.hdBifUrl.GetText())
        item.SDBifUrl         = validstr(curShow.sdBifUrl.GetText())
        item.StreamFormat = validstr(curShow.streamFormat.GetText())
        if item.StreamFormat = "" then  'set default streamFormat to mp4 if doesn't exist in xml
            item.StreamFormat = "hls"
        endif
        
        'map xml attributes into screen specific variables
        item.ShortDescriptionLine1 = item.Title 
        item.ShortDescriptionLine2 = item.Description
        item.HDPosterUrl           = item.hdImg
        item.SDPosterUrl           = item.sdImg

        item.Length = strtoi(item.Runtime)
        item.Categories = CreateObject("roArray", 5, true)
        item.Categories.Push(item.Genre)
        item.Actors = CreateObject("roArray", 5, true)
        item.Actors.Push(item.Genre)
        item.Description = item.Synopsis
        
        'Set Default screen values for items not in feed
        item.HDBranded = false
        item.IsHD = false
        item.StarRating = "90"
        item.ContentType = "episode" 

        'media may be at multiple bitrates, so parse an build arrays
        for idx = 0 to 4
            e = curShow.media[idx]
            if e  <> invalid then
                item.StreamBitrates.Push(strtoi(validstr(e.streamBitrate.GetText())))
                item.StreamQualities.Push(validstr(e.streamQuality.GetText()))
                item.StreamUrls.Push(validstr(e.streamUrl.GetText()))
            endif
        next idx
        
        showCount = showCount + 1
        feed.Push(item)

        skipitem:

    next

End Function



After installing in roku and opening the video, it loads 33% and exits after 10 to 15 seconds
Am i missing anything? or do i need to change the code?
Do i want to change anything in Feeditem parsing like item.IsLive=true
kindly help me!!!
0 Kudos