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

sin*_*800 6 video youtube html5 video-streaming wii-u

所以我现在有一个 Wii U 并测试了 Youtube Live 流媒体......它运行完美。哇,我想,我必须找出使用了什么样的编解码器、容器格式、协议等,但我在那个任务上有点失败。

我尝试使用 Chrome 访问 Youtube Live 版本,但<video>在它的source参数中为我提供此类信息的标签甚至可以出现在 DOM 中之前,它告诉我浏览器不支持任何可用的视频格式。我使用不同的浏览器(Opera、FF、IE9)尝试了相同的方法。停用 Flash,从而强制 html5 播放器启动。我总是收到相同的消息。

哇,到目前为止,HTML5 流媒体只能在我的 Wii U 上运行……而且可能是 IOS 设备,但我没有这些设备。

好的,所以基本上我想知道的是:他们如何实现<video>直播?使用什么容器格式、编解码器等?以我的知识,我无法真正访问该信息。

以及有关如何复制所述格式的任何提示。我不是想向全世界广播什么东西——我只是想向我的 Wii U 广播一些东西,否则在这个阶段任何事情都没有多大意义。我基本上只需要在 Windows 上接受 DirectShow 输入的任何东西。

sin*_*800 7

Youtube 实际上使用了 Apple 发明并试图标准化的 HLS“Http Live Streaming”方法。

我使用 VLC 和 HTTP Web 服务器的精心命令行复制了该方法,并且它在 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}
Run Code Online (Sandbox Code Playgroud)

为了快速设置,这里是访问此流的 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>
Run Code Online (Sandbox Code Playgroud)

无论谁使用它,您都必须更改其中的所有变量。它使用“块文件”,将其放在网络服务器的 wwwroot 上,然后可以通过 iDevice 或 Wii U 进行流式传输。

我个人认为这将是 ramdisk 上的最佳位置,因为数据会迅速变化,并且一次没有很多数据。