实时视频或音频流如何工作?

科斯莫零

我对生成html页面的服务器进行编码,以便用户可以在其浏览器中查看这些页面。

它具有onGetRequest事件,这是它的处理程序:

            var req = e.Request;
            var res = e.Response;

            var path = req.RawUrl.Replace("%20", " ");
            if (path == "/")
                path += "index.html";

            if (path.Contains("/../"))
            {
                res.StatusCode = (int)HttpStatusCode.Forbidden;
                return;
            }

            var content = this.ServerToRun.GetFile(path); //getting file to read
            if (content == null)
            {
                res.StatusCode = (int)HttpStatusCode.NotFound;
                return;
            }

            string extension = path.Substring(path.LastIndexOf('.'));

            string auto_mime = PageControls.MimeTypeDeterminer.GetMimeTypeFor(extension);

            if (string.IsNullOrEmpty(auto_mime))
            {
                if (extension.Length > 1)
                    res.ContentType = "application/" + extension.Substring(1);
                else
                    res.ContentType = "application/unknown";
            }
            else
                res.ContentType = auto_mime;

            if (path.EndsWith(".html") || path.EndsWith(".htm"))
                res.ContentEncoding = Encoding.UTF8;

            res.WriteContent(content); //sending content to client

我不了解支持实时流需要做什么。例如,我可以录制来自麦克风的音频,因此文件将每秒增加其大小。

我可以在html代码中执行此操作:

<audio>
    <source src = "live.wav" type = "audio/wav" />
</audio>

服务器将接收对该文件的查询,将其读取到最后,然后将其发送给客户端,但是在此之后,live.wav将获得服务器不再发送给客户端的更多声音。

因此,我被困住了,实时流如何工作以及我需要做什么?

我已经为每个客户端打开了WebSocket,所以我可以调用一些脚本。

Æðelstan

您应该使用Transfer-Encoding: ChunkedHTTP标头。此标头允许您以块的形式发送数据,而无需指定Content-Length,因此客户端将不会关闭套接字,直到服务器指示已发送了最后一个块为止。参见https://en.wikipedia.org/wiki/Chunked_transfer_encoding

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何合并实时视频和音频流

来自分类Dev

Android实时流视频-音频不起作用

来自分类Dev

如何使用nginx缓存实时音频流(音频/ mpeg)?

来自分类Dev

实时音频流Java

来自分类Dev

如何设置到DLNA兼容设备的实时音频流?

来自分类Dev

如何设置到DLNA兼容设备的实时音频流?

来自分类Dev

流实时视频并将音频仅中继到icecast2服务器

来自分类Dev

如何为Android上的实时视频流准备文件?

来自分类Dev

如何在局域网上实时广播视频流?

来自分类Dev

如何在自动化中验证音频/视频流

来自分类Dev

如何在Vbscript中检查视频或音频流是否在线?

来自分类Dev

如何在Firefox中播放音频和视频流?

来自分类Dev

如何在自动化中验证音频/视频流

来自分类Dev

视频上传和实时流

来自分类Dev

Ubuntu RTMP实时视频流

来自分类Dev

带Phonegap的实时视频流

来自分类Dev

实时视频流的GOP大小

来自分类Dev

网络流视频+音频FFmpeg

来自分类Dev

OpenCV实时流视频捕获很慢。如何丢帧或与实时同步?

来自分类Dev

如何在OpenCV Python中找到实时视频流(Android IPWebcam)的光流?

来自分类Dev

在Android上保持实时的WebRTC音频流

来自分类Dev

播放实时音频流-html5

来自分类Dev

HTTP实时音频流服务器

来自分类Dev

实时音频HLS流无法播放

来自分类Dev

在PC上实时捕获音频流

来自分类Dev

在PC上实时捕获音频流

来自分类Dev

通过UDP的低延迟实时音频流

来自分类Dev

如何在Matlab中实时处理多个麦克风输入音频流

来自分类Dev

如何从cordova-plugin-audioinput获取音频流以进行实时可视化