标签: streaming

从Python输出XML最容易的非内存密集型方法是什么?

基本上,类似于System.Xml.XmlWriter - 流式XML Writer,它不会产生大量的内存开销.因此排除了xml.dom和xml.dom.minidom.建议?

python xml streaming

14
推荐指数
2
解决办法
2526
查看次数

从Android上的M3U流式传输

我正在使用Android OS尝试从M3U流式传输.我不明白为什么这在Android上是一个大问题,但出于某种原因它是.M3U结构很简单,它基本上是外部MP3文件的URL列表.但是,当您在浏览器中单击M3U时,它会尝试启动,然后告诉我它是不受支持的文件类型.

MP3被记录为支持的流媒体协议:http: //developer.android.com/guide/appendix/media-formats.html

这在iPhone上完美无瑕.我真的很想相信"Droid确实"(因为他们做广告)并且我不想太讨厌它,但为什么不支持简单的M3U呢?

是否有支持这些必须首先安装的外部应用程序?

感谢任何能够对这一主题有所了解的人.我需要测试的只是当前的模拟器,但我的设备朋友可以确认这不起作用.

streaming android m3u

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

FastAPI StreamingResponse 不使用生成器函数进行流式传输

我有一个相对简单的 FastAPI 应用程序,它接受查询并从 ChatGPT 的 API 流回响应。ChatGPT 正在流回结果,我可以看到它在输入时被打印到控制台。

不工作的是StreamingResponse通过 FastAPI 返回。相反,响应会一起发送。我真的不知道为什么这不起作用。

这是 FastAPI 应用程序代码:

import os
import time

import openai

import fastapi
from fastapi import Depends, HTTPException, status, Request
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from fastapi.responses import StreamingResponse

auth_scheme = HTTPBearer()
app = fastapi.FastAPI()

openai.api_key = os.environ["OPENAI_API_KEY"]


def ask_statesman(query: str):
    #prompt = router(query)
    
    completion_reason = None
    response = ""
    while not completion_reason or completion_reason == "length":
        openai_stream = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": query}],
            temperature=0.0,
            stream=True,
        )
        for …
Run Code Online (Sandbox Code Playgroud)

python streaming python-requests fastapi openai-api

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

WCF和流请求和响应

在WCF中,我不能将服务写入客户端接收的流吗?

WCF支持流请求,响应或两者.我想支持一种情况,即数据生成器(流式传输请求时的客户端或流式响应时的服务器)可以在流上写入.这支持吗?

类比是来自ASP.NET请求的Response.OutputStream.在ASPNET中,任何页面都可以在输出流上调用Write,并且客户端会接收内容.我可以在WCF服务中执行类似的操作 - 在客户端接收的流上调用Write吗?

让我用WCF插图解释一下.WCF中最简单的Streaming示例是将FileStream返回给客户端的服务.这是一个流式响应.实现此目的的服务器代码如下:

[ServiceContract]
public interface IStreamService
{
    [OperationContract]
    Stream GetData(string fileName);
}
public class StreamService : IStreamService
{
    public Stream GetData(string filename)
    {
        return new FileStream(filename, FileMode.Open)
    }
}
Run Code Online (Sandbox Code Playgroud)

客户端代码是这样的:

StreamDemo.StreamServiceClient client = 
    new WcfStreamDemoClient.StreamDemo.StreamServiceClient();
Stream str = client.GetData(@"c:\path\on\server\myfile.dat");
do {
  b = str.ReadByte(); //read next byte from stream
  ...
} while (b != -1);
Run Code Online (Sandbox Code Playgroud)

(例子来自http://blog.joachim.at/?p=33)

清楚吧?服务器将Stream返回给客户端,客户端调用Read.

客户端是否可以提供Stream,并且服务器可以在其上调用Write?
换句话说,不是拉模型 - 客户端从服务器提取数据 - 它是推模型,客户端提供"接收"流并且服务器写入其中.服务器端代码可能类似于:

[ServiceContract]
public interface IStreamWriterService
{
    [OperationContract]
    void SendData(Stream clientProvidedWritableStream); …
Run Code Online (Sandbox Code Playgroud)

.net streaming wcf

13
推荐指数
1
解决办法
1万
查看次数

你可以从GridFS(MongoDB文件系统)流式传输视频吗?

你能告诉像Ngix这样的流媒体服务器来流式传输存储在GridFS中的视频吗?如果是,它会影响性能吗?

streaming mongodb gridfs

13
推荐指数
1
解决办法
5102
查看次数

使用XmlHttpRequest发送文件:Streaming?

我试图通过拖放上传大文件.我有这段Javascript代码:

xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader('X-File-Name', file.name);
xhr.setRequestHeader('X-File-Size', file.size);
xhr.setRequestHeader('Content-Type', file.type);
xhr.send(file);
Run Code Online (Sandbox Code Playgroud)

where url是一个目标url的字符串,file是一个文件拖放后检索Blob到的(根据http://www.w3.org/TR/XMLHttpRequest2/#the-send-method).此代码适用于Chrome 12,Safari 5和Firefox 4,并在HTTP请求正文中发送文件的原始内容.

但是,如果文件足够大,则永远不会发送请求.相反,XMLHttpRequest对象触发和错误事件(没有任何有用的消息).在我的环境中,此限制为86Mb,但因机器而异.

Chrome的javascript控制台显示以下消息:

POST http://localhost/xfiles/xfiles.php undefined (undefined)
Run Code Online (Sandbox Code Playgroud)

这与我的代码无关(与较小的文件完美配合).

浏览器似乎在内存中并在发送之前读取整个文件.可能有一个内存不足的异常或类似的东西会停止进程.在任何情况下,都没有发送HTTP请求,因此可以肯定服务器的限制与此问题无关.

无论如何,阅读整个文件是浪费资源.

是否有任何方法以流方式逐字节发送文件,而不必先将其存储在内存中?

javascript streaming upload xmlhttprequest

13
推荐指数
2
解决办法
1万
查看次数

在使用Android 2.2的HTC Desire上使用Android MediaPlayer进行流式传输时的奇怪行为

在我的一个项目中,我正在使用无尽的流来实现现场广播.我可以毫无问题地使用nativ Android MediaPlayer,也可以在运行旧版Android的设备上使用,因为该流的类型为audio/mpeg.我在运行1.6的HTC Magic上进行了测试,它运行完美无缺.即使在WLAN和3G之间切换它也只是缓冲起来,我只注意到一个小打嗝,然后它继续播放,好像什么也没发生.它也很少丢失连接,因为我在工作日期间一直在收听广播,也在上下班途中收听,以确保用户体验与我想要的完全一样.我已经为其他设备重复了相同的程序,例如运行Android 2.1的HTC Legend,运行2.2的HTC Wildfire和运行2.2的三星Galaxy Tab,结果相同.所有设备都能完美地处理流.

然而,这就是我遇到困难的地方,在运行2.2的HTC Desire上我遇到了严重的问题让游戏进行播放.当使用MediaPlayer的标准实现,即setDataSource(字符串路径)时,它会播放10 - 30秒,即使我在WLAN和3G上都有完全接收,它也会失去连接.我尝试了不同的方法来解决这个问题,一个是使用NPR新闻项目的StreamProxy,经过一些修改后实际上工作得很好.然而,HTC Desire仍然不时地断开连接,并且在某些情况下尝试重新连接4-5次,直到它实际上成功地保持稳定的连接.

我在使用代理时遇到的错误如下所示

08-08 09:35:17.810: ERROR/AwesomePlayer(67): Not sending buffering status because duration is unknown.
08-08 09:35:19.849: ERROR/HTTPStream(67): recv failed, errno = 11 (Try again)
08-08 09:35:19.849: INFO/HTTPDataSource(67): Retry ... 2 times left
08-08 09:35:19.849: WARN/HTTPStream(67): Calling connect()...
08-08 09:35:19.849: WARN/HTTPStream(67): Returned from connect()...
08-08 09:35:20.739: ERROR/(1576): Broken pipe
08-08 09:35:20.739: ERROR/(1576): java.net.SocketException: Broken pipe
08-08 09:35:20.739: ERROR/(1576):     at org.apache.harmony.luni.platform.OSNetworkSystem.writeSocketImpl(Native Method)
08-08 09:35:20.739: ERROR/(1576):     at org.apache.harmony.luni.platform.OSNetworkSystem.write(OSNetworkSystem.java:723) …
Run Code Online (Sandbox Code Playgroud)

java streaming android

13
推荐指数
1
解决办法
1763
查看次数

视频流网站开发

这是我第一次在生活中开展全旗视频网站开发工作,而不了解流技术和相关内容.

我对html,css,js,php和其他视频或任何艺术相关工具没有任何问题,也熟悉JW Player.

现在我的困惑如下

  1. 如何创建流媒体视频(首选HTML5以支持所有最新平台和设备)
  2. 我是否需要流媒体服务器来运行视频网站?或只是流视频会很好,可以在普通的专用服务器上托管?
  3. 什么是创建全旗视频网站的最佳方式.wordpress是大型观众的好解决方案吗?(因为我对wordpress非常熟悉)
  4. 在开发过程中我应该提到什么.

我真的像以前一样从你的专家那里得到很大的帮助.

非常感谢

video streaming video-streaming html5-video

13
推荐指数
1
解决办法
1万
查看次数

Android设备作为A2DP配置文件的接收器

基本上,我想现在要做的是使用Android设备作为A2DP接收器和配对成立时,Android的播放声音是从发射机接收.我担心如果我使用STP配置文件,可能会导致流式传输延迟.所以,我想使用A2DP,但是这可能使用Android设备作为A2DP的接收器吗?怎么做?

streaming android bluetooth audio-streaming a2dp

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

基于PHP的基于HTTP的录制文件实时视频流

我想基于PHP组织基于HTTP的录制文件的实时流式传输.

简介:在流媒体服务器上,我将视频写入本地文件(local_file.mpg),当收到来自客户端的请求,然后从
$start_byte = filesize("local_file.mpg")-10MB; local_file.mpg 开始流式传输,仍在编写,PHP脚本继续读取并刷新.

问题:我通过HTTP Range使用以下标头进行流式传输:

header('HTTP/1.1 206 Partial Content');
header("Content-Type: video/mpeg");
header('Content-Length: '.($seek_end - $seek_start));
header('Content-Range: bytes '.$seek_start.'-'.$seek_end.'/'.$size);
Run Code Online (Sandbox Code Playgroud)

冲洗如下:

while(!feof($fp)){
    $buf_size = 1024*8;
    $pos = ftell($fp);
    if ($pos >= $item["to_byte"]){
            fclose($fp);
            break;
    }

    if ($pos + $buf_size > $item["to_byte"]){
        $buf_size = $item["to_byte"] - $pos;
    }

    if ($buf_size > 0){
        echo fread($fp, $buf_size);
    }

    flush();
    ob_flush();
}
Run Code Online (Sandbox Code Playgroud)

我通过VLC或FFplay打开它,但它一直播放到请求流的时刻.这是预料之中的,因为我们确定文件的大小并将其提供给请求方.但是,如果我们人为地增加文件大小,例如
$size = filesize("local_file.mpg")+999999999999;它也没有帮助,因为视频播放器在没有记录时过早地请求新数据.并且在请求流的时刻也停止播放.

1.请建议如何根据PHP纠正通过HTTP记录文件组织实时流式传输.
2.是否可以使用HTTP RANGE机制进行,或者我应该使用其他方式?


更新:基于这个问题,我尝试了下一个代码:

<?php

$file = "online.mpg";

function flush_buffers(){ …
Run Code Online (Sandbox Code Playgroud)

php streaming http vlc video-streaming

13
推荐指数
1
解决办法
1148
查看次数