1

事情是这样的,我正在使用 ASP.NET,我正在使用这个特殊的 SignalR 库向我的客户广播视频,但据我所知,我无法流式传输视频,因为 signalR 是一个消息传递系统,它不是有意的流式传输视频、文件或类似的东西。

现在我要做的是将视频拆分为 Base64 编码为字符串的缓冲区,然后在客户端上尝试将其加载到视频标签的源中。

在这里,我向您展示我在客户端上所做的事情:

HTML 代码:

<video id="myVideo">
   <source id="video_source">
</video>

Javascript代码:

 //here somehow I am getting the string with the base64-encoded video
 function playVideo(message) {
          var myVideo = document.getElementById("myVideo");
          var mySource = document.getElementById("video_source");
          mySource.setAttribute("src", getEncodedVideoString("mp4", message));
          myVideo.load();
          myVideo.play();         
      };

  // here I am formatting and concatenating the string for my source attribute 
  function getEncodedVideoString(type, message) {
        return 'data:video/' + type + ';base64,' + message;
    }

正如你所看到的,目前我面临一个有点奇怪的场景,但我已经在客户端上编码了视频,现在我只需要找出重现该视频的方法。

这里是当我的问题出现时,是否有人以前做过这样的事情,或者你有任何想法或建议这样做?

4

1 回答 1

2

感谢您提出一个有趣的问题;我以前从未想过它,但它似乎是可能的。Ian Devlin 解释了如何将数据 URI 与 HTML5 媒体(包括视频)一起使用 -还包括一个工作示例。

我看到的唯一区别是标签type中添加了一个属性;<source>如果添加这个不起作用,你确定你的编码正确吗?当你尝试时会发生什么,你有任何错误吗?

于 2012-10-30T04:16:53.393 回答