bollywood
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2011
06:07 PM
help with new private channel, stream won't play
i am using the custom video player example to create a private channel. however its not playing the live video stream. all it says is "loading...13%" and stays there.
any suggestions on what am i doing wrong here?
here is the source
any suggestions on what am i doing wrong here?
here is the source
' ********************************************************************
' ********************************************************************
' ** Roku Custom Video Player Channel (BrightScript)
' **
' ** May 2010
' ** Copyright (c) 2010 Roku Inc. All Rights Reserved.
' ********************************************************************
' ********************************************************************
Sub RunUserInterface()
o = Setup()
o.setup()
o.paint()
o.eventloop()
End Sub
Sub Setup() As Object
this = {
port: CreateObject("roMessagePort")
progress: 0 'buffering progress
position: 0 'playback position (in seconds)
paused: false 'is the video currently paused?
fonts: CreateObject("roFontRegistry") 'global font registry
canvas: CreateObject("roImageCanvas") 'user interface
player: CreateObject("roVideoPlayer")
setup: SetupFramedCanvas
paint: PaintFramedCanvas
eventloop: EventLoop
}
'Static help text:
this.help = "Press the right or left arrow buttons on the remote control "
this.help = this.help + "to seek forward or back through the video at "
this.help = this.help + "approximately one minute intervals. Press down "
this.help = this.help + "to toggle fullscreen."
'Register available fonts:
this.fonts.Register("pkg:/fonts/caps.otf")
this.textcolor = "#406040"
'Setup image canvas:
this.canvas.SetMessagePort(this.port)
this.canvas.SetLayer(0, { Color: "#000000" })
this.canvas.Show()
'Resolution-specific settings:
mode = CreateObject("roDeviceInfo").GetDisplayMode()
if mode = "720p"
this.layout = {
full: this.canvas.GetCanvasRect()
top: { x: 0, y: 0, w:1280, h: 130 }
left: { x: 249, y: 177, w: 391, h: 291 }
right: { x: 700, y: 177, w: 350, h: 291 }
bottom: { x: 249, y: 500, w: 780, h: 300 }
}
this.background = "pkg:/images/back-hd.jpg"
this.headerfont = this.fonts.get("lmroman10 caps", 50, 50, false)
else
this.layout = {
full: this.canvas.GetCanvasRect()
top: { x: 0, y: 0, w: 720, h: 80 }
left: { x: 100, y: 100, w: 280, h: 210 }
right: { x: 400, y: 100, w: 220, h: 210 }
bottom: { x: 100, y: 340, w: 520, h: 140 }
}
this.background = "pkg:/images/back-sd.jpg"
this.headerfont = this.fonts.get("lmroman10 caps", 30, 50, false)
end if
this.player = CreateObject("roVideoPlayer")
this.player.SetMessagePort(this.port)
this.player.SetLoop(true)
this.player.SetPositionNotificationPeriod(1)
this.player.SetDestinationRect(this.layout.left)
this.player.SetContentList([{
Stream: { url: "http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
StreamFormat: "hls"
}])
this.player.Play()
return this
End Sub
Sub EventLoop()
while true
msg = wait(0, m.port)
if msg <> invalid
'If this is a startup progress status message, record progress
'and update the UI accordingly:
if msg.isStatusMessage() and msg.GetMessage() = "startup progress"
m.paused = false
progress% = msg.GetIndex() / 10
if m.progress <> progress%
m.progress = progress%
m.paint()
end if
'Playback progress (in seconds):
else if msg.isPlaybackPosition()
m.position = msg.GetIndex()
m.paint()
'If the <UP> key is pressed, jump out of this context:
else if msg.isRemoteKeyPressed()
index = msg.GetIndex()
print "Remote button pressed: " + index.tostr()
if index = 2 '<UP>
return
else if index = 3 '<DOWN> (toggle fullscreen)
if m.paint = PaintFullscreenCanvas
m.setup = SetupFramedCanvas
m.paint = PaintFramedCanvas
rect = m.layout.left
else
m.setup = SetupFullscreenCanvas
m.paint = PaintFullscreenCanvas
rect = { x:0, y:0, w:0, h:0 } 'fullscreen
m.player.SetDestinationRect(0, 0, 0, 0) 'fullscreen
end if
m.setup()
m.player.SetDestinationRect(rect)
else if index = 4 or index = 8 '<LEFT> or <REV>
m.position = m.position - 60
m.player.Seek(m.position * 1000)
else if index = 5 or index = 9 '<RIGHT> or <FWD>
m.position = m.position + 60
m.player.Seek(m.position * 1000)
else if index = 13 '<PAUSE/PLAY>
if m.paused m.player.Resume() else m.player.Pause()
end if
else if msg.isPaused()
m.paused = true
m.paint()
else if msg.isResumed()
m.paused = false
m.paint()
end if
'Output events for debug
print msg.GetType(); ","; msg.GetIndex(); ": "; msg.GetMessage()
end if
end while
End Sub
Sub SetupFullscreenCanvas()
m.canvas.AllowUpdates(false)
m.paint()
m.canvas.AllowUpdates(true)
End Sub
Sub PaintFullscreenCanvas()
list = []
if m.progress < 100
color = "#000000" 'opaque black
list.Push({
Text: "Loading..." + m.progress.tostr() + "%"
TextAttrs: { font: "huge" }
TargetRect: m.layout.full
})
else if m.paused
color = "#80000000" 'semi-transparent black
list.Push({
Text: "Paused"
TextAttrs: { font: "huge" }
TargetRect: m.layout.full
})
else
color = "#00000000" 'fully transparent
end if
m.canvas.SetLayer(0, { Color: color, CompositionMode: "Source" })
m.canvas.SetLayer(1, list)
End Sub
Sub SetupFramedCanvas()
m.canvas.AllowUpdates(false)
m.canvas.Clear()
m.canvas.SetLayer(0, [
{ 'Background:
Url: m.background
CompositionMode: "Source"
},
{ 'The title:
Text: "Live from the Nest"
TargetRect: m.layout.top
TextAttrs: { valign: "bottom", font: m.headerfont, color: m.textcolor }
},
{ 'Help text:
Text: m.help
TargetRect: m.layout.right
TextAttrs: { halign: "left", valign: "top", color: m.textcolor }
}
])
m.paint()
m.canvas.AllowUpdates(true)
End Sub
Sub PaintFramedCanvas()
list = []
if m.progress < 100 'Video is currently buffering
list.Push({
Color: "#80000000"
TargetRect: m.layout.left
})
list.Push({
Text: "Loading..." + m.progress.tostr() + "%"
TargetRect: m.layout.left
})
else 'Video is currently playing
if m.paused
list.Push({
Color: "#80000000"
TargetRect: m.layout.left
CompositionMode: "Source"
})
list.Push({
Text: "Paused"
TargetRect: m.layout.left
})
else 'not paused
list.Push({
Color: "#00000000"
TargetRect: m.layout.left
CompositionMode: "Source"
})
end if
list.Push({
Text: "Current position: " + m.position.tostr() + " seconds"
TargetRect: m.layout.bottom
TextAttrs: { halign: "left", valign: "top", color: m.textcolor }
})
end if
m.canvas.SetLayer(1, list)
End Sub
Hawk Cam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
13 REPLIES 13

TheEndless
Channel Surfer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2011
06:16 PM
Re: help with new private channel, stream won't play
The highest bitrate stream in that M3U8 is 198k, which I believe is below the default minimum bandwidth. Try changing the SetContentList lines to:
this.player.SetContentList([{
Stream: { url: "http://xnytnestcamx.api.channel.livestream.com/3.0/playlist.m3u8" }
StreamFormat: "hls"
MinBandwidth: 128
}])
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
bollywood
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2011
06:26 PM
Re: help with new private channel, stream won't play
thanks.
just did that and its still loading, but its taking extremely long time to load. its taking 1-2 seconds for every 1 percent. any ideas?
it just finally started playing...
just did that and its still loading, but its taking extremely long time to load. its taking 1-2 seconds for every 1 percent. any ideas?
it just finally started playing...
Hawk Cam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam

TheEndless
Channel Surfer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2011
06:46 PM
Re: help with new private channel, stream won't play
Lack of segments. That M3U8 only has three segments. Roku recommends at least 8. It may be taking so long because it's starving the buffer... viewtopic.php?f=34&t=39362&p=266078#p266078
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)

RokuKevin
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-19-2011
10:40 AM
Re: help with new private channel, stream won't play
You should set your bandwidth to 198. HLS streams that are less than 1.5 Mbps should set the bandwidth explicitly rather than setting it to 0.
--Kevin
--Kevin
bollywood
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-20-2011
07:15 AM
Re: help with new private channel, stream won't play
i set it like this,
should i change this to 198?
MinBandwidth: 128
should i change this to 198?
Hawk Cam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam

RokuKevin
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-20-2011
09:50 AM
Re: help with new private channel, stream won't play
No. The minbandwidth causes the player not to consider streams less than that bitrate. Leave it as is.
--Kevin
--Kevin
bollywood
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-20-2011
06:42 PM
Re: help with new private channel, stream won't play
so i dont need to change anything to 198???
now that i have played with it quite a bit, is this the recommended way to create a channel before i add this as a private channel?
now that i have played with it quite a bit, is this the recommended way to create a channel before i add this as a private channel?
Hawk Cam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
bollywood
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2011
06:50 AM
Re: help with new private channel, stream won't play
I've created a private channel for the hawk cam.
https://owner.roku.com/add/hawkcam
can you please test it and provide some feedback? should i create a new thread for the private channel to let others know?
https://owner.roku.com/add/hawkcam
can you please test it and provide some feedback? should i create a new thread for the private channel to let others know?
Hawk Cam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
Live footage from the nest on top of Bobst Library at N.Y.U.
copy and paste the link in your browser or use keyword: hawkcam
https://owner.roku.com/add/hawkcam
jbrave
Channel Surfer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2011
12:27 PM
Re: help with new private channel, stream won't play
so far:
took several minutes of "uplinking" before it finally showed the image. I went full screen, and about 20 seconds later, back to "uplinking", but the percentage is still at zero since I started writing this email. Well, it just flashed back the the image and then back to 0% again.
I guessing the bandwidth is pretty low ?
this is on a Radio Shack flavored roku XD running 3.0 beta and in SD 4:3 mode.
- Joel
took several minutes of "uplinking" before it finally showed the image. I went full screen, and about 20 seconds later, back to "uplinking", but the percentage is still at zero since I started writing this email. Well, it just flashed back the the image and then back to 0% again.
I guessing the bandwidth is pretty low ?
this is on a Radio Shack flavored roku XD running 3.0 beta and in SD 4:3 mode.
- Joel
Screenshades: The first Screensaver for Roku2!
Musiclouds: The best free internet music, on your Roku!
Ouroborialis: Psychedelic Screensaver for Roku!
Musiclouds: The best free internet music, on your Roku!
Ouroborialis: Psychedelic Screensaver for Roku!