关于如何从 YouTube here 和 here 中提取 mp4 URL 的讨论存在
关于如何在 Roku 上进行 airplay 风格的视频播放,您可以使用 External Control Protocol 启动一个带有您要播放的视频 URL 的频道,或者一旦您的频道启动,我们在结合 roInput 组件将 URL 发送到您的频道。然后,您的频道会将 URL 发送到视频播放组件,该组件将从 Youtube 或您发送的任何来源开始播放。如果您想从您的设备 (android/IOS) 播放 URL,您需要在设备上运行 Web 服务器以向设备提供视频。
here is an Open Source YouTube project 在第二个线程中引用。
如果 YouTube 认为您的项目不符合他们的目标,任何播放 YouTube 视频的非官方项目都会受到 DMCA 的删除。
roInput 并没有很好的记录,这里有一个示例,演示了 roInput 和启动参数(启动参数是您在 http POST 中包含的关键字):
function main(params as object)
if params.parameter <> invalid then
print "This channnel was launched with Launch Parameters!"
print params
else
print "launched without input parameters"
end if
port=CreateObject("roMessagePort")
input=createobject("roInput")
input.setmessageport(port)
while true
msg=wait(100,port)
if type(msg)="roInputEvent" then
params=msg.getinfo()
print params
end if
end while
end function
如果您想发送多个比特率视频,您的参数可能是“vidurl=http://myserver.com/video300k.mp4&vidurl=http://myserver.com/video600k.mp4”。
RokuSDK 中有很多关于如何在 Roku 上播放视频的示例,最简单的是 simplevideoplayer 示例。
关于 UPNP 问题的最后一部分,您可以通过端口 8060 上的蛮力 telnet 到每个 ip 或使用 SSDP 在您的局域网上找到一个 roku,也记录在上面链接的 ECP 指南中