所以我现在有一台 Wii U,并测试了 Youtube Live 流媒体……它运行完美。哇,我想,我必须找出使用哪种编解码器、容器格式、协议等,但我有点失败了。
我尝试使用 Chrome 访问 Youtube Live 版本,但在 DOM 中出现一个<video>
可以向我提供此类信息的标签之前source
,它告诉我浏览器不支持任何可用的视频格式。我尝试使用不同的浏览器(Opera、FF、IE9)进行同样的操作。停用 Flash,从而强制启动 html5 播放器。我总是收到相同的消息。
哇,到目前为止,HTML5 流媒体仅适用于我的 Wii U......可能还有 IOS 设备,但我没有。
好的,我基本上想知道的是:他们如何实现<video>
直播?使用什么容器格式、编解码器等?我无法真正以我的知识获取这些信息。
以及有关如何复制所述格式的任何提示。我并不是想向全世界广播某些东西 - 我只是想向我的 Wii U 广播一些东西,否则在这个阶段就没有多大意义了。我基本上只需要在 Windows 上接受 DirectShow 输入的任何东西。
答案1
Youtube 实际上使用了 Apple 发明并正在努力标准化的 HLS“Http Live Streaming”方法。
我使用 VLC 的复杂命令行和 HTTP 网络服务器复制了该方法,并且它在 Wii U 上运行良好。
这是命令行:
"c:\program files (x86)\videolan\vlc\vlc" -I rc dshow:// vdev="XSplitBroadcaster" adev="XSplitBroadcaster" size="1280x720" --sout=#transcode{width=1280,height=720,fps=25,vcodec=h264,vb=256,venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1},acodec=mp3,ab=96,channels=2}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=C:\inetpub\wwwroot\stream\stream.m3u8,index-url=http://dennis/stream/stream-########.ts},mux=ts{use-key-frames},dst=C:\inetpub\wwwroot\stream\stream-########.ts}
为了快速设置,以下是访问该流的 HTML 代码:
<!doctype html>
<html>
<head></head>
<body>
<video width="320" height="240" controls="controls">
<source src="/stream/stream.m3u8" type="application/x-mpegURL" />
</video>
</body>
</html>
无论谁使用它,你都必须更改其中的所有变量。它使用“块文件”,将其放在 Web 服务器的 wwwroot 上,然后可以通过 iDevice 或 Wii U 进行流式传输。
我个人认为将其存储在 ramdisk 上是最佳选择,因为数据变化很快,并且一次不会有大量数据。