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

SS: absolute URL in StreamIndex and starting QualityLevel

Hi,
I have two questions about Smooth Streaming in Roku 3.

1) I need to have Smooth Streaming Manifest with absolute URLs in attribute "Url" of tag StreamIndex.
I try to explain the scenario. The Manifest is downloadable from a server A, say at http://<server%20A>/test.ism/Manifest.
Inside the Manifest, each StreamIndex contains an absolute URL, because chunks must be downloaded from another server B. For example http://<server%20B>/videos/test.ism/QualityLevels(1462584)/Fragments(video=0)
This works as expected on other platforms, for example PC+Silverlight, see http://support.akamai.com/silverlight/.
On Roku box, unexpectedly, when playback is started from an application, chunks are searched on the server A with a wrong not-existing URL, i.e.:
http://<server%20A>/test.ism/http://<server%20B>/videos/test.ism/QualityLevels(1462584)/Fragments(vi...
Probably because the player consider the URL in StreamIndex relative to the Manifest location and not absolute.
I would like to know if there is a way to make this behave as expected - on the client side (maybe with a roVideoPlayer parameter?) or on the Manifest side (maybe a particular attribute is needed?).

2) When a Smooth Streaming Manifest is "played" by the roVideoPlayer, which is the very first layer used (for example always starts with the QualityLevel with Index="0")?
Otherwise, is there a way to force the roVideoPlayer to start from a particular layer at the startup of the playback (i.e. setting a parameter in the Meta Content Data or putting a parameter in the query string of the Manifest, etc...)?

Thank you in advance for any help you can provide.


<?xml version="1.0" encoding="UTF-8"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="1" Duration="712800000">
<StreamIndex Type="video" Url="http://acme.com/videos/test.ism/QualityLevels({bitrate})/Fragments(video={start time})" Name="video" Chunks="15" QualityLevels="5">
<QualityLevel Index="0" Bitrate="1462584" FourCC="AVC1" MaxWidth="854" MaxHeight="480" CodecPrivateData="00000001674d401eeca06c1ef3780880000003008000001930100033e10000cf85496600f162d9600000000168eaef20"/>
<QualityLevel Index="1" Bitrate="1185566" FourCC="AVC1" MaxWidth="768" MaxHeight="432" CodecPrivateData="00000001674d401eeca0601bd8088000000300800000193020002ab9800155cd259803c58b65800000000168eaef20"/>
<QualityLevel Index="2" Bitrate="796397" FourCC="AVC1" MaxWidth="640" MaxHeight="360" CodecPrivateData="00000001674d401eeca05017fcb80880000003008000001930000073f600039fbd259803c58b65800000000168eaef20"/>
<QualityLevel Index="3" Bitrate="496182" FourCC="AVC1" MaxWidth="480" MaxHeight="272" CodecPrivateData="00000001674d401eeca0f0477fe0110010e200000300020000030064c0800124f800249f496600f162d9600000000168eaef20"/>
<QualityLevel Index="4" Bitrate="246992" FourCC="AVC1" MaxWidth="384" MaxHeight="216" CodecPrivateData="00000001674d401eeca0c0efcb80880000030008000003019301000927800249f496600f162d960000000168eaef20"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c d="50000000"/>
<c t="700000000" d="12800000"/>
</StreamIndex>
<StreamIndex Type="audio" Url="http://acme.com/videos/test.ism/QualityLevels({bitrate})/Fragments(audio={start time})" Name="audio" Chunks="36" QualityLevels="1">
<QualityLevel Index="0" Bitrate="50322" AudioTag="255" Channels="2" SamplingRate="24000" BitsPerSample="16" PacketSize="4" FourCC="AACL" CodecPrivateData=""/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c d="20053334"/>
<c d="20053333"/>
<c d="20053333"/>
<c t="701866666" d="9386667"/>
</StreamIndex>
</SmoothStreamingMedia>
0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.