标签: http-streaming

适用于iOS设备的非http流媒体视频

我正在使用wowza将源rtsp流重定向到多种类型的终端设备.由于基于http的流式传输的缓冲限制,我不能将它用于我的应用程序.我需要在我的restream中使用RTMP或RTSP.

除此之外:HTTP打包流需要大约3倍的密钥长度,或30秒的视频(银光和快速时间),因此我必须保持我的源流在wowza中保持缓冲区.这在我的应用程序中是不可能的,因为我必须节省wowza和源流之间的带宽.

据我了解,iOS不支持RTMP.因此,为iOS设备留下了RTSP.

使用像JWPlayer这样的东西来保持一致性会很好,但是JWplayer不支持RTSP !!

那么,是否有一个优雅的解决方案.像JWplayer这样的东西会自动为正确的客户端播放器服务(RTSP和RTMP客户端是唯一需要的).或者我必须自己扮演角色.

rtmp rtsp jwplayer http-streaming ios

8
推荐指数
1
解决办法
4069
查看次数

优化:将JSON从Streaming API转储到Mongo

背景: 我有一个python模块设置为从流API中获取JSON对象,并使用pymongo将它们(一次25个批量插入)存储在MongoDB中.为了便于比较,我也有一个bash命令curl从相同的流API和pipemongoimport.这两种方法都将数据存储在单独的集合中

我会定期监控count()收藏品,以检查收藏情况.

到目前为止,我看到该python模块滞后于该curl | mongoimport方法背后的大约1000个JSON对象.

问题: 如何优化python模块以便与 curl | mongoimport?同步?

我无法使用,tweetstream因为我没有使用Twitter API,而是使用第三方流媒体服务.

有人可以帮帮我吗?

Python 模块:


class StreamReader:
    def __init__(self):
        try:
            self.buff = ""
            self.tweet = ""
            self.chunk_count = 0
            self.tweet_list = []
            self.string_buffer = cStringIO.StringIO()
            self.mongo = pymongo.Connection(DB_HOST)
            self.db = self.mongo[DB_NAME]
            self.raw_tweets = self.db["raw_tweets_gnip"]
            self.conn = pycurl.Curl()
            self.conn.setopt(pycurl.ENCODING, 'gzip')
            self.conn.setopt(pycurl.URL, STREAM_URL)
            self.conn.setopt(pycurl.USERPWD, AUTH)
            self.conn.setopt(pycurl.WRITEFUNCTION, self.handle_data)
            self.conn.perform()
        except Exception as ex: …
Run Code Online (Sandbox Code Playgroud)

python json mongodb pymongo http-streaming

8
推荐指数
1
解决办法
1798
查看次数

在压缩的,分块的HTTP流到达时有效地读取行

我编写了一个HTTP-Server,它生成由JSON结构事件组成的无限HTTP流.与Twitter的流媒体API类似.这些事件由\n(根据服务器发送的事件和Content-Type:text/event-stream)分隔,并且长度可以不同.

回应是

  • chunked(HTTP 1.1 Transfer-Encoding:chunked)由于源源不断
  • 压缩(Content-Encoding:gzip)以节省带宽.

我想尽快在Python中使用这些行,并尽可能节省资源,而不需要重新发明轮子.

由于我目前正在使用python-requests,你知道如何让它工作吗?如果您认为,python-requests在这里无法提供帮助,我对其他框架/库完全开放.

我当前的实现基于请求iter_lines(...)接收线路的用途.但chunk_size参数很棘手.如果设置1为非常强大,因为某些事件可能是几千字节.如果设置为大于1的任何值,则某些事件会一直停留到下一个到达并且整个缓冲区"已填满".事件之间的时间可能是几秒钟.我期望它chunk_size是某种"接收的最大字节数",就像在unix中一样recv(...).相应的手册页说:

接收呼叫通常会返回任何可用的数据,直到请求的数量,而不是等待收到所请求的全部金额.

但这显然不是它在请求库中的工作方式.他们或多或少地使用它作为"接收的确切字节数".在查看源代码时,我无法确定哪个部分对此负责.也许httplib的Response或ssl的SSLSocket.

作为一种解决方法,我尝试将服务器上的线路填充到块大小的倍数.但是,请求库中的块大小用于从压缩响应流中获取字节.所以这不会起作用,直到我可以填充我的行,使他们的压缩字节序列是块大小的倍数.但这似乎太过于苛刻了.

我已经读过Twisted可以用于客户端上的http流的非阻塞,非缓冲处理,但我只找到了在服务器上创建流响应的代码.

python http-streaming python-requests

8
推荐指数
2
解决办法
3575
查看次数

XHR流媒体是否按设计关闭连接?

我正在阅读这篇文章:http://blog.pusher.com/what-c​​ame-before-websockets/,以下文字引起了我的注意:

XHR Streaming在所有浏览器中工作,XMLHttpRequest对象的responseText将继续增长,直到连接关闭,这意味着必须最终强制重新连接以清除此缓冲区.

如果我理解正确的话,这是否意味着每当缓冲区达到一定大小时(顺便说一下,这里的实际大小是多少?),连接会自行重置以清除此缓冲区?换句话说,XHR流式传输的长度与此缓冲区的大小一样长?

有人可以确认一下.

javascript protocols xmlhttprequest http-streaming

7
推荐指数
1
解决办法
3820
查看次数

Http Media Streaming Server

我用RED5媒体服务器(RTMP)开发了视频流应用程序.而不是RTMP需要通过HTTP流式传输实时视频.

任何开源HTTP媒体服务器??

是否有支持RTMP和HTTP的开源服务器?

提前致谢.

html5 video-streaming audio-streaming http-live-streaming http-streaming

7
推荐指数
2
解决办法
3万
查看次数

HTTP流和服务器发送事件有什么区别?

我的理解是HTTP流式传输涉及客户端发送HTTP请求,然后响应随时间发送的请求,允许服务器基本上推送到客户端.在我所看到的情况下,SSE似乎按照相同的原则运作,但更为正式化.这接近正确的理解吗?

我看到了这些问题,但他们并没有直接回答我的问题.

HTTP:流水线,保持活动和服务器发送事件之间的关系是什么? 什么是长轮询,Websockets,服务器发送事件(SSE)和Comet?

我还查看了这个https://www.html5rocks.com/en/tutorials/eventsource/basics/#disqus_thread 教程来设置SSE,看起来我想象的是如何设置HTTP流.

http node.js http-streaming server-sent-events

7
推荐指数
2
解决办法
1109
查看次数

Node.js HTTP Get 流在 docker 容器内冻结

我使用httpmodule.js 在 Node.js 中编写了以下代码。它基本上监听事件流(因此连接是永久的)。

http.get(EVENT_STREAM_ADDRESS, res => {
  res.on('data', (buf) => {
    const str = Buffer.from(buf).toString();
    console.log(str);
  });

  res.on('error', err => console.log("err: ", err));
});
Run Code Online (Sandbox Code Playgroud)

如果我在 Mac 上运行上述代码,它工作正常,并且在几个小时后我会将数据记录到控制台。但在具有非常基本配置的 Docker 中,它在一段时间后停止接收数据,没有任何错误。应用程序中的其他端点工作正常(例如 Express 端点),但这个端点http.get listener只是挂起。

Dockerfile


FROM node:current-alpine

WORKDIR /app

EXPOSE 4000

CMD npm install && npm run start
Run Code Online (Sandbox Code Playgroud)

你有什么想法我可以如何克服这个问题吗?

调试起来确实很困难,因为要重现有时需要等待几个小时的情况。

干杯

http node.js http-streaming docker

7
推荐指数
1
解决办法
584
查看次数

Rails 3.1 http streaming - 身体头部或底部的js?

在Rails 3.1中,可以选择启用HTTP流式处理,以便可以将页面放入块中.在关于此功能的Railscast中,Ryan建议最好启用此功能,以便在仍然呈现页面的其余部分时可以下拉CSS和JavaScript.

我总是遵循指南,在加载所有页面内容之后脚本应位于页面底部,这样可以减少感知的加载时间,但这样做不会利用HTTP流.

您认为现在的最佳做法是什么?

javascript ruby-on-rails http-streaming ruby-on-rails-3

6
推荐指数
1
解决办法
589
查看次数

http自适应流媒体

是否有任何开源流媒体解决方案支持Http Adaptive Streaming?根据我的研究,VLC不支持自适应流媒体.我不确定Darwin Streaming Server.有任何想法吗?

http-streaming libvlc

6
推荐指数
1
解决办法
1670
查看次数

Flash HTTP Streaming - 多个文件

借助Flash 10.1+以及在NetStream上使用appendBytes的功能,可以在Flash中使用HTTP流进行视频传输.但似乎交付方法要求将段存储在磁盘上的单个文件中,该文件只能通过FMS或Apache模块分解为离散的段文件.您可以在创建单个段文件后对其进行缓存,但文档表明您仍必须始终使用FMS/Apache模块在第一个实例中生成这些文件.

是否可以在不使用FMS,Wowza产品或Apache的情况下将单个磁盘文件分成多个磁盘段?

actionscript flash-media-server netstream http-streaming

6
推荐指数
1
解决办法
258
查看次数