Прямая трансляция (какого-либо канала) Воспроизведение через Roku Box

Я пытался присоединиться к прямой трансляции igmp и воспроизвести ее в roku box. Но это не сработало. Разве мы не можем присоединиться к многоадресной потоковой передаче в коробках Roku? Если можно сделать через HLS, то какое может быть решение? Я попробовал ссылку в github по ссылке: https://github.com/thetrime/trimeplay/blob/master/source/trimeplay.brs Пожалуйста, обратитесь к другому коду, который я использовал в качестве ссылки:

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

person Ankita    schedule 20.10.2014    source источник


Ответы (1)


Я не хочу сказать, что то, что вы пытаетесь сделать, совершенно невозможно, но это непрактично.

Вы должны были бы сделать что-то вроде этого:

Используйте roStreamSockets для сбора данных UDP и записи их в tmp:/ в виде видеофайла h.264, возможно, в виде фрагментов HLS, а затем укажите компоненту воспроизведения видео через файлы .m3u8, которые вы также записываете на лету. Это должно быть сделано в Brightscript. Я не уверен, что Brightscript достаточно быстр для этого. Я не говорю, что это невозможно сделать, но Roku изначально не воспроизводит мультикаст или другие форматы видеопотока UDP.

Единственными официально поддерживаемыми форматами видео для прямых трансляций являются HLS и Microsoft Smooth.

person alphablender    schedule 29.10.2014
comment
не могли бы вы добавить его? (воспроизведение UDP-потока) пожалуйста - person nhed; 18.06.2016