标签: http-streaming

Rails 3.1.1使用Apache + Passenger进行HTTP流式传输

在关于HTTP流媒体的Railscasts中,一些评论者已经确认可以使用Apache + Passenger进行HTTP流媒体,但奇怪的是我无法通过Google找到任何指令.

Rails文档也没有提供任何说明.所有详细说明到处都是Unicorn.我绝不是唯一一个想通过Apache和Passenger进行HTTP流媒体的人.请帮忙.

apache ruby-on-rails passenger http-streaming

5
推荐指数
1
解决办法
2063
查看次数

EventMachine和Twitter流媒体API

我正在使用Twitter流API运行EventMachine流程.如果流的内容不频繁,我总是有问题.

这是脚本的最小版本:

require 'rubygems'
require 'eventmachine'
require 'em-http'
require 'json'

usage = "#{$0} <user> <password> <track>"
abort usage unless user = ARGV.shift
abort usage unless password = ARGV.shift
abort usage unless keywords= ARGV.shift

def startIt(user,password,keywords)
EventMachine.run do
  http = EventMachine::HttpRequest.new("https://stream.twitter.com/1/statuses/filter.json",{:port=>443}).post(
                    :head =>{ 'Authorization' => [ user, password ] } , 
                    :body =>{"track"=>keywords},
                    :keepalive=>true,
                    :timeout=>-1)

  buffer = ""
  http.stream do |chunk|
    buffer += chunk
    while line = buffer.slice!(/.+\r?\n/)
      if line.length>5
          tweet=JSON.parse(line)
          puts Time.new.to_s+"#{tweet['user']['screen_name']}: #{tweet['text']}"
      end
    end

  end
   http.errback {
        puts Time.new.to_s+"Error: …
Run Code Online (Sandbox Code Playgroud)

ruby twitter eventmachine http-streaming

5
推荐指数
1
解决办法
1051
查看次数

AVPlayer seekToTime:不使用缓冲区

我正在开发一个使用HTTP Live Streaming技术播放视频的应用程序.
为此我使用AVPlayer init,如下所示:

[[AVPlayer alloc] initWithURL:[NSURL URLWithString:VIDEO_URL]];

然后我使用self.player.currentItem.loadedTimeRanges我的自定义视图检查缓冲区的状态并显示该范围.

问题是当在加载的区域中倒带时[self.player seekToTime:timeToSeek toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];,加载视频就像它不在缓冲区中一样.

video avfoundation http-live-streaming http-streaming ios

5
推荐指数
1
解决办法
1429
查看次数

RTMP与HLS对比HDS

我想使用JW播放器在以下平台上传输VOD/Live,但不确定哪种流媒体最适合每个平台

  1. 桌面
  2. iOS版
  3. Android的

我知道RTMP不会在移动设备上播放.

那么我是否需要针对桌面和移动设备的HLS进行RTMP,或者我是否只能在所有3个平台上使用HLS流?

或者还有其他方法来有效地传输VOD/Live吗?

android rtmp jwplayer http-streaming ios

5
推荐指数
1
解决办法
3825
查看次数

akka-http chunked响应连接

我正在使用akka-http一个请求发送回chunked响应的http服务.这就是代码的相关位置:

val httpRequest: HttpRequest = //build the request
val request = Http().singleRequest(httpRequest)
request.flatMap { response =>
    response.entity.dataBytes.runForeach { chunk =>
        println("-----")
        println(chunk.utf8String)
    }
}
Run Code Online (Sandbox Code Playgroud)

并且命令行中生成的输出如下所示:

-----
{"data":
-----
"some text"}

-----
{"data":
-----
"this is a longer
-----
text"}

-----
{"data": "txt"}

-----
...
Run Code Online (Sandbox Code Playgroud)

逻辑数据 - 在这种情况下json以行尾符号结束\r\n,但问题是,json并不总是适合单个http响应块,如上例中清晰可见.

我的问题是 - 如何将传入的chunked数据连接成完整的jsons,以便生成的容器类型仍然保留Source[Out,M1]Flow[In,Out,M2]?我想遵循的思想akka-stream.

更新:值得一提的是,响应是无止境的,聚合必须是实时完成的

scala akka http-streaming akka-stream akka-http

5
推荐指数
1
解决办法
2775
查看次数

如何在不使用其Streaming服务器的情况下实现Adobe HTTP Streaming规范

从Flash 10.1开始,他们添加了通过appendBytes方法将字节添加到NetStream对象的功能(在此处描述http://www.bytearray.org/?p=1689).这一新增的主要原因是Adobe最终支持视频的HTTP流媒体.这很棒,但您似乎需要使用Adobe Media Streaming Server(http://www.adobe.com/products/httpdynamicstreaming/)从现有视频中创建正确的视频块,以实现流畅的流式传输.

我曾经试图在我交换NetStream对象的过程中做一个被黑客攻击的HTTP流媒体版本(类似于http://video.leizhu.com/video.html),但是这些块之间总会暂时停顿一下.使用新的appendBytes,我尝试使用前一个站点的两段视频进行快速模拟,但即便如此,跳过仍然存在.

有没有人知道如何形成两个连续的.FLV文件,以便NetStream对象上的appendBytes方法创建一个漂亮的平滑视频,而段之间没有明显的跳过?

flash actionscript netstream http-streaming

4
推荐指数
1
解决办法
6961
查看次数

使用Rails 3.1和Unicorn在Heroku上进行HTTP流式传输

受到HTTP Streaming上RailsCast的启发,我决定在我的服务器上打开它.但是,listen 3000 :tcp_nopush => falseRyan建议添加到我的线路unicorn.rb并不适合Heroku(它们不允许您指定端口).Heroku是否支持流媒体,如何启用它?

heroku unicorn http-streaming ruby-on-rails-3.1

4
推荐指数
1
解决办法
2834
查看次数

流式HTTP与GZIP由StreamReader缓冲?

苦苦寻找遇到类似问题或任何类似问题的人.

我目前正在使用具有GZip要求的http(json)流,我遇到了从发送数据到reader.ReadLine()读取数据时的延迟.有人向我建议,这可能与解码保留缓冲区中的数据有关?

这就是我目前的情况,它除了延迟之外还可以正常工作.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endPoint);
request.Method = "GET";

request.PreAuthenticate = true;
request.Credentials = new NetworkCredential(username, password);

request.AutomaticDecompression = DecompressionMethods.GZip;
request.ContentType = "application/json";
request.Accept = "application/json";
request.Timeout = 30;
request.BeginGetResponse(AsyncCallback, request);
Run Code Online (Sandbox Code Playgroud)

然后在AsyncCallback方法中我有:

HttpWebRequest request = result.AsyncState as HttpWebRequest;

using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result))
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{

    while (!reader.EndOfStream)
    {
        string line = reader.ReadLine();
        if (string.IsNullOrWhiteSpace(line)) continue;

        Console.WriteLine(line);
    }
}
Run Code Online (Sandbox Code Playgroud)

它只是坐下来reader.Readline()直到收到更多的数据,然后甚至阻止其中一些.还有收到的保持活动的新行,当它决定阅读某些内容时,通常会立即读出这些新行.

我已经测试了运行curl命令并行运行的流,curl命令完全接收和解压缩数据.

任何见解都会很棒.谢谢,

编辑 在streamreader上使用缓冲区大小没有运气. …

c# gzip http httpwebrequest http-streaming

4
推荐指数
1
解决办法
1941
查看次数

Rust中的HTTP服务器推送(流)客户端?

由于缺少一个更好的例子,假设我想用Rust编写一个简单的客户端,可以建立连接并从Twitter的HTTP Streaming API接收数据.这可能吗?我一直在关注IronNickel,这似乎是一个很好的框架,但我不认为他们有这个功能呢?

http-streaming rust

3
推荐指数
1
解决办法
1210
查看次数

在JavaScript中异步使用分块数据

我有一个(GET)端点,它以块(Transfer-Encoding: chunked)的形式发送数据。数据经过JSON编码并逐行发送。

有没有办法在JavaScript中(或使用某些JavaScript库)以异步方式使用此终结点发送的数据?

明确地说,我知道如何执行异步操作GET,但是我希望GET请求不等待整个数据传输,而是在到达时逐行读取数据。例如,在执行以下操作时:

curl  http://localhost:8081/numbers
Run Code Online (Sandbox Code Playgroud)

当下面的行可用时,将逐行显示(我制作的示例服务器在发送第二行之前等待一秒钟)。

{"age":1,"name":"John"}
{"age":2,"name":"John"}
{"age":3,"name":"John"}
{"age":4,"name":"John"}
Run Code Online (Sandbox Code Playgroud)

我想curl在浏览器中重现相同的行为。我不想让用户等到所有数据变得可用以显示任何内容。

javascript asynchronous http http-streaming

3
推荐指数
1
解决办法
1022
查看次数