<item sdImg="file://pkg:/images/test-streams.png" hdImg="file://pkg:/images/test-streams.png">
<title>Adobe HLS Test Stream - 1000 kbps</title>
<contentId>20001</contentId>
<contentType>Test</contentType>
<contentQuality>SD</contentQuality>
<streamFormat>hls</streamFormat>
<media>
<streamQuality>SD</streamQuality>
<streamBitrate>1000</streamBitrate>
<streamUrl>http://192.168.1.223/hls-vod/sample1_1000kbps.f4v.m3u8</streamUrl>
</media>
<synopsis>Test HLS - 1000 kbps</synopsis>
<genres>TV</genres>
<runtime>0</runtime>
</item>
<item sdImg="file://pkg:/images/test-streams.png" hdImg="file://pkg:/images/test-streams.png">
<title>Adobe HLS Test Stream - 1500 kbps</title>
<contentId>20002</contentId>
<contentType>Test</contentType>
<contentQuality>SD</contentQuality>
<streamFormat>hls</streamFormat>
<media>
<streamQuality>SD</streamQuality>
<streamBitrate>1500</streamBitrate>
<streamUrl>http://192.168.1.223/hls-vod/sample1_1500kbps.f4v.m3u8</streamUrl>
</media>
<synopsis>Test HLS - 1500 kbps</synopsis>
<genres>TV</genres>
<runtime>0</runtime>
</item>
<item sdImg="file://pkg:/images/test-streams.png" hdImg="file://pkg:/images/test-streams.png">
<title>Adobe HLS Test Stream - Adaptive Bitrate</title>
<contentId>20003</contentId>
<contentType>Test</contentType>
<contentQuality>HD</contentQuality>
<streamFormat>hls</streamFormat>
<media>
<streamQuality>HD</streamQuality>
<streamBitrate>0</streamBitrate>
<streamUrl>http://192.168.1.223/hls-vod/hls_sample1_manifest.m3u8</streamUrl>
</media>
<synopsis>Test HLS - Adapative 150kbps - 1500kbps</synopsis>
<genres>TV</genres>
<runtime>0</runtime>
</item>
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=150000
/hls-vod/sample1_150kbps.f4v.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000
/hls-vod/sample1_500kbps.f4v.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000
/hls-vod/sample1_700kbps.f4v.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000
/hls-vod/sample1_1000kbps.f4v.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000
/hls-vod/sample1_1500kbps.f4v.m3u8
If item.StreamFormat="hls"
item.SwitchingStrategy="full-adaptation"
End If
url=["http://192.168.1.223/hls-vod/hls_sample1_manifest.m3u8"]
srt=""
$ vlc http://192.168.1.223/hls-vod/hls_sample1_manifest.m3u8
VLC media player 2.0.8 Twoflower (revision 2.0.8a-0-g68cf50b)
[0x21a1108] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0x7f6c20007178] stream_filter_httplive stream: HTTP Live Streaming (192.168.1.223/hls-vod/hls_sample1_manifest.m3u8)
[0x7f6c20007178] stream_filter_httplive stream: Meta playlist
[0x7f6c20007178] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=150000).
[0x7f6c200062d8] access_http access error: error: HTTP/1.1 404 Not Found
[0x7f6c200062d8] access_http access error: error: HTTP/1.1 404 Not Found
[0x7f6c200062d8] access_mms access error: error: HTTP/1.1 404 Not Found
[0x7f6c20007178] main stream error: no suitable access module for `http://192.168.1.223/hls-vod//hls-vod/sample1_150kbps.f4v.m3u8'
$ vlc http://192.168.1.223/hls_sample1_manifest.m3u8
VLC media player 2.0.8 Twoflower (revision 2.0.8a-0-g68cf50b)
[0x1acb108] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0x7f95c00072c8] stream_filter_httplive stream: HTTP Live Streaming (192.168.1.223/hls_sample1_manifest.m3u8)
[0x7f95c00072c8] stream_filter_httplive stream: Meta playlist
[0x7f95c00072c8] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=150000).
[0x7f95c00072c8] stream_filter_httplive stream: VOD Playlist HLS protocol version: 2
[0x7f95c00072c8] stream_filter_httplive stream: video on demand (vod) mode
[0x7f95c00072c8] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=500000).
[0x7f95c00072c8] stream_filter_httplive stream: VOD Playlist HLS protocol version: 2
[0x7f95c00072c8] stream_filter_httplive stream: video on demand (vod) mode
[0x7f95c00072c8] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=700000).
[0x7f95c00072c8] stream_filter_httplive stream: VOD Playlist HLS protocol version: 2
[0x7f95c00072c8] stream_filter_httplive stream: video on demand (vod) mode
[0x7f95c00072c8] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=1000000).
[0x7f95c00072c8] stream_filter_httplive stream: VOD Playlist HLS protocol version: 2
[0x7f95c00072c8] stream_filter_httplive stream: video on demand (vod) mode
[0x7f95c00072c8] stream_filter_httplive stream: bandwidth adaptation detected (program-id=1, bandwidth=1500000).
[0x7f95c00072c8] stream_filter_httplive stream: VOD Playlist HLS protocol version: 2
[0x7f95c00072c8] stream_filter_httplive stream: video on demand (vod) mode
[0x7f95c00072c8] stream_filter_httplive stream: Choose segment 0/15 (sequence=2)
[0x7f95c00072c8] stream_filter_httplive stream: downloaded segment 0 from stream 0
[0x7f95c00072c8] stream_filter_httplive stream: detected faster bandwidth (1500000) stream
[0x7f95c00072c8] stream_filter_httplive stream: downloaded segment 1 from stream 4
[0x7f95c00072c8] stream_filter_httplive stream: playing segment 0 from stream 0
Unknown event: 11 msg: Unspecified or invalid track path/url.
play failed:
Closing video screen
Status: ok
LogType: http.connect
TargetIp: 192.168.1.223
HttpCode: 200
Datetime: <Component: roDateTime>
OrigUrl: http://192.168.1.223/hls_sample1_manifest.m3u8
Url: http://192.168.1.223/hls_sample1_manifest.m3u8
Method: GET
showHomeScreen | msg = Unspecified or invalid track path/url. | index = 0
Video status: 0 0
showHomeScreen | msg = | index = -5
Video request failure: -5 1
<Component: roVideoScreenEvent>
showHomeScreen | msg = | index = 0
Screen closed
Button pressed: 2 0
Function showVideoScreen(episode As Object)
if type(episode) <> "roAssociativeArray" then
print "invalid data passed to showVideoScreen"
return -1
endif
port = CreateObject("roMessagePort")
screen = CreateObject("roVideoScreen")
screen.SetMessagePort(port)
screen.SetPositionNotificationPeriod(30)
screen.SetContent(episode)
screen.Show()
' debugging
syslog = CreateObject("roSystemLog")
syslog.SetMessagePort(port)
syslog.EnableType("http.error")
syslog.EnableType("http.connect")
while true
msg = wait(0, port)
if type(msg) = "roVideoScreenEvent" then
print "showHomeScreen | msg = "; msg.getMessage() " | index = "; msg.GetIndex()
if msg.isScreenClosed()
print "Screen closed"
exit while
elseif msg.isRequestFailed()
print "Video request failure: "; msg.GetIndex(); " " msg.GetData()
elseif msg.isStatusMessage()
print "Video status: "; msg.GetIndex(); " " msg.GetData()
elseif msg.isButtonPressed()
print "Button pressed: "; msg.GetIndex(); " " msg.GetData()
elseif msg.isPlaybackPosition() then
nowpos = msg.GetIndex()
RegWrite(episode.ContentId, nowpos.toStr())
else
print "Unexpected event type: "; msg.GetType()
end if
elseif type(msg) = "roSystemLogEvent" then
print msg.GetInfo()
else
print "Unexpected message class: "; type(msg)
end if
end while
End Function
Status: ok
LogType: http.connect
TargetIp: 192.168.1.223
HttpCode: 200
Datetime: <Component: roDateTime>
OrigUrl: http://192.168.1.223/hls_sample1_manifest.m3u8
Url: http://192.168.1.223/hls_sample1_manifest.m3u8
Method: GET
StreamBitrate: 0
MeasuredBitrate: 9765
Url: http://192.168.1.223/hls_sample1_manifest.m3u8
showHomeScreen | msg = An unexpected problem (but not server timeout or HTTP error) has been detected. | index = -3
Video request failure: -3 0
invalid
showHomeScreen | msg = | index = 0
Screen closed
Button pressed: 2 0
$ cat sample1_150kbps.f4v.m3u8
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-VERSION:2
#EXT-X-TARGETDURATION:8
#EXTINF:8,
sample1_150kbps.f4vFrag1Num0.ts
#EXTINF:8,
sample1_150kbps.f4vFrag1Num1.ts
#EXTINF:8,
sample1_150kbps.f4vFrag2Num2.ts
#EXTINF:8,
sample1_150kbps.f4vFrag3Num3.ts
#EXTINF:8,
sample1_150kbps.f4vFrag4Num4.ts
#EXTINF:8,
sample1_150kbps.f4vFrag5Num5.ts
#EXTINF:8,
sample1_150kbps.f4vFrag6Num6.ts
#EXTINF:8,
sample1_150kbps.f4vFrag7Num7.ts
#EXTINF:8,
sample1_150kbps.f4vFrag8Num8.ts
#EXTINF:8,
sample1_150kbps.f4vFrag9Num9.ts
#EXTINF:8,
sample1_150kbps.f4vFrag10Num10.ts
#EXTINF:8,
sample1_150kbps.f4vFrag11Num11.ts
#EXTINF:8,
sample1_150kbps.f4vFrag12Num12.ts
#EXTINF:8,
sample1_150kbps.f4vFrag13Num13.ts
#EXTINF:3,
sample1_150kbps.f4vFrag14Num14.ts
#EXT-X-ENDLIST