2014-10-20 92 views
1

我試圖加入igmp直播並在roku盒中播放。但它沒有奏效。 難道我們無法在Roku框中加入組播流? 如果可以通過HLS完成,那麼解決方案是什麼? 我試圖在鏈接在GitHub上的參考:https://github.com/thetrime/trimeplay/blob/master/source/trimeplay.brs 請參考我用作爲參考另一個代碼:直播(部分頻道)通過Roku Box播放

function SetupJoin() 
ssdpAddress = "239.60.60.7:6607" 
ssdpPort = 6607 
timeout = 300 * 60 * 1000 
groupAddr = CreateObject("roSocketAddress") 
groupAddr.setAddress(ssdpAddress) 
groupAddr.setPort(ssdpPort) 
listenAddr = CreateObject("roSocketAddress") 
listenAddr.setPort(ssdpPort) 
listenAddr.setAddress("0.0.0.0") 
listen = CreateObject("roDatagramSocket") 
listen.setReuseAddr(true) 
listen.setAddress(listenAddr) 
result = listen.joinGroup(groupAddr) 
listen.setMessagePort(canvas.GetMessagePort()) 
listen.notifyReadable(true) 
numResponses= Wait_SSDP(listen, timeout) 
? "Result : " result 
? "SSDP Listen got"; numResponses; " responses" 
end function 

function Wait_SSDP(socket as Object, timeout as Integer) as Integer 
numResponses = 0 
elapsed = CreateObject("roTimespan") 
remaining = timeout - elapsed.totalMilliseconds() 
while remaining > 0 
msg = wait(remaining, socket.getMessagePort()) 
if type(msg)="roSocketEvent" 
if socket.isReadable() 
results = socket.receiveStr(255) 
print "SSDP Listen gets from "; socket.getReceivedFromAddress().getAddress(); ":" 
print results 
numResponses = numResponses + 1 
end if 
else 
exit while 'enter code here 
end if 
remaining = timeout - elapsed.totalMilliseconds() 
end while 
return numResponses 
end function 

回答

3

我不會說,你正在嘗試做的是完全不可能的,但它是不切實際的。

你將不得不做一些有點像這樣:

使用roStreamSockets收集UDP數據並將它寫入tmp下:/爲H.264的視頻文件,可能是因爲HLS塊,再點視頻播放組件在它通過.m3u8文件,你也寫在飛。這必須在Brightscript中完成。我不確定Brightscript是否足夠快。我並不是說這樣做是不可能的,但是Roku本身不會播放多播或其他UDP視頻流格式。

直播正式支持的視頻格式是HLS和Microsoft Smooth。

+0

不會請你添加它嗎? (UDP流的玩法)可愛 – nhed 2016-06-18 19:59:53