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: 
MG79
Visitor

somebody help ?

I was using and old I guess legacy video player example and everything works good with mp4 and m3u8 and I tried to update from the legacy so I used the video player migration and now I can't get m3u8 to play anymore mp4 still works just fine and good I use multiple xml files for feeds. I have been trying for past 2-3 days to figure this out and used all kinda of ways things but have failed to make it work. when I click on a m3u8 the player changes screens and loads the retrieving bar half way and stops nothing else happens. if I change players back to the old one legacy style then the everything plays fine..

this is the code I been trying to use in a xml file  if I change format type to mp4 and add a mp4 link it works fine.  will somebody please give me one example of a working hls code for a xml file using the new videoplayer-channel player please ?


<item sdImg="https://devtools.web.roku.com/videoplayer/images/CameronCarpenter.jpg" hdImg="https://devtools.web.roku.com/videoplayer/images/CameronCarpenter.jpg">
 <title>Test m3u8</title>
 <contentId>10031</contentId>
 <contentType>Talk</contentType>
 <contentQuality>SD</contentQuality>
 <streamFormat>hls</streamFormat>
 <media>
 <streamQuality>SD</streamQuality>
 <streamBitrate>0</streamBitrate>
 <streamUrl>http://nasatv-lh.akamaihd.net/i/NASA_101@319270/index_1000_av-p.m3u8</streamUrl>
 </media>
 <synopsis>Test m3u8.</synopsis>
 <genres>Test</genres>
 <live>True</live>
 </item>





0 Kudos
11 REPLIES 11
destruk
Binge Watcher

Re: somebody help ?

Is the streamformat tag being parsed?  Could you try a different feed for hls like this one?
http://www.streambox.fr/playlists/test_001/stream.m3u8

The NASA stream is a bit more complex with multiuple m3u8s in the main manifest, so I don't like testing with that.
But your xml looks fine - chances are the issue is in the code itself instead of the feed.
0 Kudos
MG79
Visitor

Re: somebody help ?

I tried your link , that link does the same thing loads half way and stops I have tried 20-30 test links they all do the same thing , so this means the video player - channel from the migration and the developer example is broken when it comes to playing hls ? I tried both players and both does the same thing.
0 Kudos
destruk
Binge Watcher

Re: somebody help ?

HLS works for me - maybe you need newer firmware?  Why not post the code that is having the trouble?
0 Kudos
MG79
Visitor

Re: somebody help ?

I have Roku ultra with software version 7.5.1 says its up to date when I check  build 4111

and I used this video player from this link

https://github.com/rokudev/videoplayer-channel

I have not changed anything in the video player example but what it said to do this part

Migration Guide
To request the feed:

  • Replace the url string on line 22 in
    VideoScene.brs

    with the link to the feed

  • If the structure of your XML feed matches the VideoPlayer sample feed, there are no other changes that need to be made!


and thank you very much destruk[/url:2jgti0ey] for trying to help me with this I'm very greatful for your help..
0 Kudos
destruk
Binge Watcher

Re: somebody help ?

Strange - it plays just fine for me.  You might need new firmware to fix it for your ultra when it's released.

I downloaded their categories.xml -
url="https://devtools.web.roku.com/videoplayer/xml/categories.xml"

Then I downloaded the mind xml --
<categoryLeaf title="The Mind" description="" feed="https://devtools.web.roku.com/videoplayer/xml/themind.xml"/>

After that I edited the categories.xml to reference the mind from my server -- in categories.xml, the mind line above.
<categoryLeaf title="The Mind" description="" feed="http://myserver.com/xml/themind.xml"/>

For themind.xml -- I changed it to this
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<feed>
<!-- resultLength indicates the total number of results for this feed -->
<resultLength>4</resultLength>
<!-- endIndix  indicates the number of results for this *paged* section of the feed -->
<endIndex>4</endIndex>
<item sdImg="https://devtools.web.roku.com/videoplayer/images/JimFallon.jpg" hdImg="https://devtools.web.roku.com/videoplayer/images/JimFallon.jpg">
 <title>Test m3u8</title>
 <contentId>10031</contentId>
 <contentType>Talk</contentType>
 <contentQuality>SD</contentQuality>
 <streamFormat>hls</streamFormat>
 <media>
 <streamQuality>SD</streamQuality>
 <streamBitrate>0</streamBitrate>
 <streamUrl>http://nasatv-lh.akamaihd.net/i/NASA_101@319270/index_1000_av-p.m3u8</streamUrl>
 </media>
 <synopsis>Test m3u8.</synopsis>
 <genres>Test</genres>
 <live>True</live>
<runtime>1260</runtime>
....

And then changed the url loaded for the main category feed in the scenegraph videoscene.brs
url="http://myserver.com/xml/categories.xml"
And uploaded both xml files to myserver.com/xml/
Then when loading the channel, select the first category on the main screen, then select the Test m3u8 file and it plays fine here.
I think you did similar - sometimes the nasa feed does fail so try again later?
0 Kudos
destruk
Binge Watcher

Re: somebody help ?

When it fails for you, what message do you get in the debugger?
telnet 192.168.1.x 8085
where 192.168.1.x is the IP of your roku?

or in a browser -- http://192.168.1.x:8085/
Where 192.168.1.x is the ip of your roku?  at the bottom of the page
0 Kudos
MG79
Visitor

Re: somebody help ?

I did exactly same steps as you did in your post and it still loads half way and stops on loading.

I ran the command like you ask I hope you understand it cause I don't understand any of that hahaha ..
maybe it is my ultra ? i used the multi live channel example player and it plays the m3u8 and the legacy player plays the m3u8  seems it's just effecting that video player on my Roku 😕

Change
in SimpleVideoScene.xml onKeyEvent OK false
in SimpleVideoScene.xml onKeyEvent OK false
onItemSelected
in SimpleVideoScene.xml onKeyEvent OK true
------- [ok pressed] -------
in SimpleVideoScene.xml onKeyEvent OK true
------- [ok pressed] -------
in SimpleVideoScene.xml onKeyEvent OK false
in SimpleVideoScene.xml onKeyEvent OK false
in SimpleVideoScene.xml onKeyEvent back true
------ [back pressed] ------
Do nothing
in SimpleVideoScene.xml onKeyEvent back false
in SimpleVideoScene.xml onKeyEvent back false
------ Running dev 'Video Player' main ------
################
Start of Channel
################
Received Input -- write code here to check it!
main.brs - [showHeroScreen]
UriHandler.brs - [init]
[makeRequest] - http://myserver.com/MyChannel/xml/categories.xml
Task.xml - [go]
UriHandler.brs - [go]
--------------------------------------------------------------------------
Received event type 'roSGNodeEvent'
UriHandler.brs - [addRequest]
Initiating transfer '122691227' for URI 'http://myserver.com/MyChannel/xml/categories.xml' succeeded: true
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Received event type 'roUrlEvent'
UriHandler.brs - [processResponse]
Response for transfer '122691227' for URI 'http://myserver.com/MyChannel/xml/categories.xml'
UriHandler.brs - [parseResponse]
begin category node parsing
number of categories: 4
skipped banner_ad
category: Technology | TED Talks on Technology
category: Entertainment | TED Talks on Entertainment
category: Design | TED Talks on Design
onContentSet
done with parseResponse
--------------------------------------------------------------------------
onRowItemSelected
[makeRequest] - http://devtools.web.roku.com/videoplayer/xml/globalissues.xml
--------------------------------------------------------------------------
Received event type 'roSGNodeEvent'
UriHandler.brs - [addRequest]
[makeRequest] - http://myserver.com/videoplayer/xml/themind.xml
Initiating transfer '122691228' for URI 'http://devtools.web.roku.com/videoplayer/xml/globalissues.xml' succeeded: true
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Received event type 'roSGNodeEvent'
UriHandler.brs - [addRequest]
Initiating transfer '122691229' for URI 'http://myserver.com/videoplayer/xml/themind.xml' succeeded: true
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Received event type 'roUrlEvent'
UriHandler.brs - [processResponse]
Response for transfer '122691228' for URI 'http://devtools.web.roku.com/videoplayer/xml/globalissues.xml'
UriHandler.brs - [parseLeaf]
in SimpleVideoScene.xml onKeyEvent OK false
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Received event type 'roUrlEvent'
UriHandler.brs - [processResponse]
Response for transfer '122691229' for URI 'http://myserver.com/videoplayer/xml/themind.xml'
UriHandler.brs - [parseLeaf]
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Received event type 'roSGNodeEvent'
UriHandler.brs - [updateContent]
All content has finished loading
onCategoryContentSet
--------------------------------------------------------------------------
Received event type 'roSGNodeEvent'
UriHandler.brs - [updateContent]
onCategoryItemSelected
onReadFinished
onContentChange
in SimpleVideoScene.xml onKeyEvent OK false
in SimpleVideoScene.xml onKeyEvent OK false
onItemSelected
in SimpleVideoScene.xml onKeyEvent OK true
------- [ok pressed] -------
in SimpleVideoScene.xml onKeyEvent OK true
------- [ok pressed] -------
in SimpleVideoScene.xml onKeyEvent OK false
in SimpleVideoScene.xml onKeyEvent OK false

BrightScript Micro Debugger.
Enter any BrightScript statement, debug commands, or HELP.
Suspending threads...
Thread selected:  0*   pkg:/source/main.brs(47)                msg = wait(0, m.port)

Current Function:
039:    screen.setMessagePort(m.port)
040:    scene = screen.CreateScene("VideoScene")
041:    m.global = screen.getGlobalNode()
042:    'Deep link params
043:    m.global.addFields({ input: input })
044:    screen.show()
045:
046:    while(true)
047:*     msg = wait(0, m.port)
048:      msgType = type(msg)
049:      if msgType = "roSGScreenEvent"
050:        if msg.isScreenClosed() then return
051:      end if
Break in 47
047:     msg = wait(0, m.port)
Backtrace:
#1  Function showheroscreen(input As Object) As Void
   file/line: pkg:/source/main.brs(47)
#0  Function main(input As Dynamic) As Void
   file/line: pkg:/source/main.brs(30)
Local Variables:
input            roAssociativeArray refcnt=3 count:4
global           Interface:ifGlobal
m                roAssociativeArray refcnt=3 count:2
screen           bsc:roSGScreen refcnt=1
scene            bsc:roSGNode refcnt=1
msg              <uninitialized>
msgtype          <uninitialized>
Threads:
ID    Location                                Source Code
 0*   pkg:/source/main.brs(47)                msg = wait(0, m.port)
 1    pkg:/components/Task.xml(25)            msg = wait(0, m.port)
 2    pkg:/components/UriHandler.brs(31)      msg = wait(0, m.port)
  *selected
Brightscript Debugger>
0 Kudos
destruk
Binge Watcher

Re: somebody help ?

If you have m.port=CreateObject("roMessagePort") in the "Showheroscreen" function in main.brs, immediately followed by screen.setMessagePort(m.port) then I think you'll need to wait for the next release of the firmware as this ought to be fixed when you get that.  Thanks for the extra info - it helps to help you.
0 Kudos
MG79
Visitor

Re: somebody help ?

i will just have to wait and hold off on migration from legacy till the firmware gets fixed then with ultra thanks so much destruk[/url:2inxoojd] for all your help with this you been awesome and very helpful i hope who ever...
0 Kudos