使用 html5 进行直播-另外 Youtube 是如何做到的?

使用 html5 进行直播-另外 Youtube 是如何做到的?

所以我现在有一台 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 上是最佳选择,因为数据变化很快,并且一次不会有大量数据。

相关内容