标签: streaming

如何使用DirectShow.NET C#访问音频流

我想做的是将任意音频文件传递给DirectShow过滤器图并最终使用.NET 3.5 C#和DirectShow.NET接收(PCM音频)流对象.我想说的是我可以说:

 Stream OpenFile(string filename) {...}
Run Code Online (Sandbox Code Playgroud)

stream.Read(...)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了DirectShow几天,并认为我已经开始掌握过滤器和过滤器图的想法.我找到了如何播放音频或将其写入文件的示例(文件/设备),但似乎找不到Stream对象的解决方案.这甚至可能吗?如果我错过了什么,你能指出我正确的方向吗?

最好,

Hauke

c# streaming directshow directshow.net .net-3.5

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

如何在Python中读取连续的HTTP流数据?

如何在python中从HTTP流媒体服务器读取二进制流.我做了一个搜索,有人说urllib2可以完成这项工作,但有阻塞问题.有人建议使用Twisted框架.

我的问题是:

  1. 如果它只是一个流媒体客户端读取后台数据,我可以忽略urllib2引起的阻塞问题吗?

  2. 如果urllib2无法赶上流媒体服务器会发生什么?数据会丢失吗?

  3. 如果流媒体服务器在检索数据之前需要通过GET或POST一些参数的用户身份验证,可以通过urllib2完成吗?

  4. 我在哪里可以找到urllib2和Twisted的一些流客户端示例?

谢谢.

插口

python streaming client stream

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

使用XSLT进行XML提取而不必将整个DOM树读入内存?

我有一种情况,我想从一些非常大但常规的XML文件中提取一些信息(只需要使用500 Mb文件),并且XSLT将是完美的.

不幸的是,我所知道的那些XSLT实现(除了最昂贵的Saxon版本之外)不支持只读取DOM的必要部分,而是读取整个树.这导致计算机交换死亡.

有问题的XPath是

//m/e[contains(.,'foobar')
Run Code Online (Sandbox Code Playgroud)

所以它基本上只是一个grep.

是否有可以执行此操作的XSLT实现?或者给出合适的"建议"的XSLT实现可以修复内存中不再需要的部分吗?

我更喜欢Java实现,但Windows和Linux都是可行的本机平台.


编辑:输入XML看起来像:

<log>
<!-- Fri Jun 26 12:09:27 CEST 2009 -->
<e h='12:09:27,284' l='org.apache.catalina.session.ManagerBase' z='1246010967284' t='ContainerBackgroundProcessor[StandardEngine[Catalina]]' v='10000'>
<m>Registering Catalina:type=Manager,path=/axsWHSweb-20090626,host=localhost</m></e>
<e h='12:09:27,284' l='org.apache.catalina.session.ManagerBase' z='1246010967284' t='ContainerBackgroundProcessor[StandardEngine[Catalina]]' v='10000'>
<m>Force random number initialization starting</m></e>
<e h='12:09:27,284' l='org.apache.catalina.session.ManagerBase' z='1246010967284' t='ContainerBackgroundProcessor[StandardEngine[Catalina]]' v='10000'>
<m>Getting message digest component for algorithm MD5</m></e>
<e h='12:09:27,284' l='org.apache.catalina.session.ManagerBase' z='1246010967284' t='ContainerBackgroundProcessor[StandardEngine[Catalina]]' v='10000'>
<m>Completed getting message digest component</m></e>
<e h='12:09:27,284' l='org.apache.catalina.session.ManagerBase' z='1246010967284' t='ContainerBackgroundProcessor[StandardEngine[Catalina]]' v='10000'>
<m>getDigest() 0</m></e>
......
</log>
Run Code Online (Sandbox Code Playgroud)

Essentialy我想选择一些m节点(我知道XPath是错误的,它只是一个快速的黑客),但保持XML布局.


编辑:似乎STX可能是我正在寻找的(我可以使用另一种转换语言),并且Joost是一个实现.有经验吗?


编辑:我发现带有-Xmx1500m的Saxon 6.5.4可以加载我的XML,所以这让我现在可以使用我的XPath.这只是一个幸运的中风所以我仍然想要一般性地解决这个问题 - 这意味着可编写脚本,这反过来意味着首先没有手工制作的Java过滤.


编辑:哦,顺便说一下.这是一个非常类似于log4j XMLLayout生成的日志文件.XML的原因是能够做到这一点,即对日志进行查询.这是最初的尝试,因此是一个简单的问题.后来我希望能够提出更复杂的问题 - …

java xml xslt streaming stx

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

如何在C++中从相机流式传输图像/数据

我在我的电脑上插入了一个USB摄像头(使用Windows 7),我正在尝试创建一个程序来从摄像头流式传输图像.

我该怎么做呢?我有相机的VID和PID,但对此却一无所知.请帮忙.

谢谢

c++ streaming camera image

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

在Android中使用JWplayer在Phonegap中播放流式视频

我正在尝试使用JWPlayer作为Android的一种方式,不支持在Phonegap中的Webview中进行HLS播放(或者至少我无法使用它,只能使用WebM流和https://github.com/上的视频插件macdonst/VideoPlayer,HLS流只提供音频)

我知道用户需要安装闪存,但目前对我来说最重要的是获得设备上显示的RTMP或HLS(.m3u8)(2.3,4.0或4.1,无论哪个都有效!)

但是,当我在android中实现JWplayer时,我一直收到"Error loading player:找不到可播放的源代码"错误.到目前为止,我只在模拟器中测试过.

代码没什么特别的,在包含cordova JS之后的HTML文件中我所做的就是:

 <script type="text/javascript" src="jwplayer/jwplayer.js" ></script>
 <script type="text/javascript">jwplayer.key="b+mykey"</script>
 <div id="my-video"></div> 
 <script type="text/javascript">
        jwplayer('my-video').setup({
            flashplayer: "javascripts/lib/jwplayer/player.swf",      
                 streamer: "rtmp://myserveraddressgoeshere",
                 file: "corecctfile.goeshere-sdh",
                 provider:"rtmp",
                 autostart: 'true',
                 controlbar: "over",
                 width: '720',
                 height: '405'
         });</script>
Run Code Online (Sandbox Code Playgroud)

显然,我有正确的路径,但出于客户隐私原因,这里模糊了它们.

有没有人知道为什么这不起作用?或者我如何让RTMP/HLS流在Android设备上运行?如上所述,该应用程序是PhoneGap应用程序.

谢谢!

video streaming android rtmp cordova

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

使用tweepy从twitter流式api中排除转发

当使用python tweepy库从twitter的流媒体API中提取推文时,可以排除转推吗?

例如,如果我只想要特定用户ex发布的推文:twitterStream.filter(follow = ["20264932"])但是这会返回转推,我想要排除它们.我怎样才能做到这一点?

先感谢您.

api twitter streaming tweepy

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

从iOS设备流式传输视频/音频

我在这里看了几篇关于用户录制时来自iOS设备的直播视频/音频的帖子.不幸的是,似乎没有任何"好"的解决方案.

据我所知,在录制时我必须能够访问文件,然后将文件发送到服务器,其他用户可以在其中实时观看我的流(时间间隔很小).

使用iOS对我来说不是问题,我更难以处理数据应该处理到服务器以及服务器上的整个处理.

我有几个问题:

  1. 说服务器很模糊,它应该是什么样的"服务器"?
  2. 我知道我必须使用一些协议来发送数据服务器,然后服务器获取数据,以便用户可以观看实时视频,我应该使用什么协议?
  3. 整个服务器端处理我感到非常迷茫,应该对发送到服务器的文件做些什么?
  4. 所有这些似乎都非常重要,是否有任何第三方解决方案?例如Periscope,Ustream或Meerkat等技术应用如何为用户提供实时流功能?

如果可能的答案对于每个问题都有多个单词,我也会非常感激.

audio video streaming video-streaming ios

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

使用Laravel为android服务mp3流

这是我的问题:我正在编写laravel后端,该后端必须提供mp3文件,该文件必须通过使用android标准媒体播放器来复制。

对于laravel后端,我需要使用JWT处理身份验证,因此在每个请求标头上,我都必须将“ Authorization”字段设置为“ Bearer {token} ”。
laravel路由为“ / songs / {id} ”,并通过以下方式处理:

public function getSong(Song $song) {
    $file = new File(storage_path()."/songs/".$song->path.".mp3");

    $headers = array();
    $headers['Content-Type'] = 'audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3';
    $headers['Content-Length'] = $file->getSize();
    $headers['Content-Transfer-Encoding'] = 'binary';
    $headers['Accept-Range'] = 'bytes';
    $headers['Cache-Control'] = 'must-revalidate, post-check=0, pre-check=0';
    $headers['Connection'] = 'Keep-Alive';
    $headers['Content-Disposition'] = 'attachment; filename="'.$song->path.'.mp3"';

    $user = \Auth::user();
    if($user->activated_at) {
        return Response::download($file, $song->path, $headers);
    }
    \App::abort(400);
}
Run Code Online (Sandbox Code Playgroud)

在android方面,我正在使用MediaPlayer以这种方式流mp3文件:

media_player = new MediaPlayer();
    try {
        media_player.setAudioStreamType(AudioManager.STREAM_MUSIC);

        String token = getSharedPreferences("p_shared", MODE_PRIVATE).getString("token", null);
        Map<String, String> headers …
Run Code Online (Sandbox Code Playgroud)

streaming mp3 android android-mediaplayer laravel

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

Spark Streaming处理时间与总延迟与处理延迟

我试图了解Spark Streaming输出的不同指标是什么意思,我稍微混淆了最后一批处理时间,总延迟处理延迟之间的差异是什么?

我已经看过Spark Streaming指南,它提到处理时间是一个关键指标,用于确定系统是否落后,但其他地方,如" Pro Spark Streaming:使用Apache Spark的实时分析的禅 "谈论使用总延迟处理延迟.我没有找到任何列出Spark Streaming生成的所有指标的文档,并解释了每个指标的含义.

如果有人可以概述这三个指标的含义或者指出任何可以帮助我理解这些指标的资源,我将不胜感激.

streaming metrics analytics apache-spark spark-streaming

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

Go - 解码JSON,因为它仍然通过net/http流式传输

在过去,我使用go以如下所示的方式从API端点解码JSON.

client := &http.Client{}

req, err := http.NewRequest("GET", "https://some/api/endpoint", nil)
res, err := client.Do(req)
defer res.Body.Close()

buf, _ := ioutil.ReadAll(res.Body)

// ... Do some error checking etc ...

err = json.Unmarshal(buf, &response)
Run Code Online (Sandbox Code Playgroud)

我很快就要开发一个端点,它可以按以下格式向我发送几兆字节的JSON数据.

{
    "somefield": "value",
    "items": [
        { LARGE OBJECT },
        { LARGE OBJECT },
        { LARGE OBJECT },
        { LARGE OBJECT },
        ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

JSON在某些时候将包含一个大的,任意长度的对象数组.我想将这些对象中的每一个分别放入消息队列中.我不需要解码对象本身.

如果我使用我的常规方法,这将在解码之前将整个响应加载到内存中.

是否有一种很好的方法可以拆分每个LARGE OBJECT项目,因为响应仍在流入并将其发送到队列中?我这样做是为了避免在内存中保存尽可能多的数据.

谢谢!

streaming json http go

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