标签: streaming

无法通过更新标志更新数据流作业

我正在尝试通过将 DataflowPipelineOptions 中的 setUpdate 标志设置为 true 来更新 DataFlow 作业。我有一个函数可以检查具有名称的现有作业,如果该作业不存在,我将 setUpdate 标志设置为 false,否则设置为 true。这意味着对于第一次部署作业,setUpdate 标志设置为 false,并且所有后续部署都会将标志设置为 true。

options.setUpdate(jobExists(options));
Run Code Online (Sandbox Code Playgroud)

管道代码如下:

    pipeline
    .apply("Read", pubsubDownload)
    .apply("Window", Window.into(FixedWindows.of(WINDOW_DURATION)))
    .apply("Extract", ParDo.of(new Extract()))
    .apply("Count", ApproximateUnique.perKey(0.06))
    .apply("View As Map", View.asMap()); //<-- ****Fails here
Run Code Online (Sandbox Code Playgroud)

注意:我只是想测试更新后的标志,因此没有更改部署中代码的任何部分。只是想测试该标志是否能够用新工作取代旧工作。

然而这不起作用。我第一次就能成功部署该作业。当我尝试再次重新部署作业时,出现以下错误:

工作流程失败。原因: (9a8ccc4f2e36c2d6):新作业与 <JOB_ID> 不兼容。原始作业尚未中止。, (9a8ccc4f2e36c371):阶段 View As Map/StreamingViewAsMap/Combine.Globally/Combine.PerKey/GroupByKey 已以与更新不兼容的方式更改。

View.asMap函数不可更新吗?根据文档,SideInput是可更新的。正如错误所述,如果View不可更新并且SideInput需要View,则文档包含错误信息。

请注意,这无需View.asMap管道步骤即可工作。

java streaming google-cloud-platform google-cloud-dataflow

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

Haskell 中字节流的高效流式传输和操作

在为大型(<bloblength><blob>)*编码二进制文件编写反序列化器时,我陷入了各种 Haskell 生产-转换-消费库的困境。到目前为止,我知道四个流媒体库:

这是一个简单的示例,说明当我尝试使用 进行Word32流式传输时,会出现问题conduit。一个稍微更实际的示例将首先读取Word32确定 blob 长度的 a,然后生成ByteString该长度的惰性(然后进一步反序列化)。但在这里我只是尝试以流方式从二进制文件中提取 Word32:

module Main where

-- build-depends: bytestring, conduit, conduit-extra, resourcet, binary

import           Control.Monad.Trans.Resource (MonadResource, runResourceT)
import qualified Data.Binary.Get              as G
import qualified Data.ByteString              as BS
import qualified Data.ByteString.Char8        as C
import qualified Data.ByteString.Lazy         as BL
import           Data.Conduit
import qualified Data.Conduit.Binary          as CB
import qualified …
Run Code Online (Sandbox Code Playgroud)

streaming haskell bytestring haskell-pipes bytestream

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

Node/Express:stream.pipe() 上没有下载

当我通过管道传输响应时,有什么方法可以强制下载吗?如果我查看 Chrome 工具,我会发现响应正常,标题也很好:

HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
X-Powered-By: Express
Content-Type: application/pdf
Date: Mon, 10 Oct 2016 20:22:51 GMT
Transfer-Encoding: chunked
Via: 1.1 vegur
Request Headers
view source
Run Code Online (Sandbox Code Playgroud)

我什至在详细响应中看到了 pdf 文件代码,但没有启动文件下载。也许我错过了什么?

我的路线代码如下所示:

router.post('/reports/create', access.Regular, function (req, res, next) {
    ...

    pdf.create(html).toBuffer(function(err, buffer){
        res.writeHead(200, {
            'Content-Type': 'application/pdf',
            'Content-Disposition': 'attachment; filename=some_file.pdf',
            'Content-Length': buffer.length
        });
        res.end(buffer)
    });
});
Run Code Online (Sandbox Code Playgroud)

streaming download node.js express

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

如何使用 Gstreamer 通过 RTMP 进行流式传输?

我正在尝试使用 Gstreamer 将视频和音频流式传输到 RTMP 服务器 (Wowza),但存在许多问题。

几乎没有关于如何正确使用rtmpsink插件(通过 RTMP 将媒体发送到指定服务器)的文档。不仅如此,制作rtmpsink兼容的正确 Gstreamer 管道目前只是一个反复试验的过程。

我当前的 Gstreamer 管道是:

sudo gst-launch-1.0 -e videotestsrc ! queue ! videoconvert ! x264enc ! flvmux streamable=true ! queue ! rtmpsink location='rtmp://<ip_address>/live live=true'
Run Code Online (Sandbox Code Playgroud)

在我的 Linux 机器上运行上面的命令会出现以下错误:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstRTMPSink:rtmpsink0: Could not     open resource for writing.
Additional debug info:
gstrtmpsink.c(246): gst_rtmp_sink_render (): /GstPipeline:pipeline0/GstRTMPSink:rtmpsink0: …
Run Code Online (Sandbox Code Playgroud)

streaming rtmp gstreamer wowza

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

火花流的奇怪延迟

最近在kafka中使用spark Streaming处理数据。

应用程序启动并完成几批后,出现持续延迟。

大多数时候,数据处理在1-5秒内完成。

但经过几个批次后,连续耗时41~45秒,大部分延迟发生在从stage0取数据的区域。

我无意中发现 Kafka request.timemout.ms 设置默认为 40 秒,并将此设置更改为 10 秒。

然后我重新启动应用程序并观察到该批处理在 11 到 15 秒内完成。

实际处理时间为1-5秒。我无法理解这种延迟。

怎么了?

我的环境如下。

Spark流2.1.0(createDirectStream)

卡夫卡:0.10.1

批次间隔:20s

请求超时时间:10s

/////

以下截图是 request.timeout.ms 设置为 8 秒时的图表。

在此输入图像描述

streaming scala apache-kafka apache-spark spark-streaming

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

如何将网络摄像头视频发送到 Amazon AWS EC2 实例

假设我要将网络摄像头捕获的视频流式传输到 Amazon AWS EC2 实例,以便在云中进行图像处理。一个人会怎样做呢?据我所知,文件传输的唯一方法是将文件复制到远程主机。我不知道从哪里开始将视频流传输到 AWS EC2。谷歌没有为我找到任何结果。有任何想法吗?

streaming amazon-ec2 amazon-web-services

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

webrtc - 使用 php 或 node.js 的信令服务器

我正在尝试构建一个简单的视频流 Web 应用程序,其中一个用户(聊天室所有者)从他的网络摄像头广播视频,其他用户(聊天室成员)能够实时看到它

\n

我在谷歌上做了很多研究,所以我发现我需要的是:

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0-获取adapter.js文件以实现兼容性(不知道从哪里获取它)

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0- 从网络摄像头获取视频流

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0-将其发送到服务器

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0-让服务器将其发送给某些用户

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0- 客户端接收该视频流并将其显示在 < video > 标记内

\n

我只能做第一步,我在网上找到的例子很清晰简单

\n

对于其他步骤,我在网上找到的所有示例都解释了如何在单个页面上本地执行此操作,但我想远程执行此操作,甚至遵循 O'reilly WebRTC 书中的指南

\n

我不知道应该在服务器端代码中编写什么或如何发送接收到的视频流(我有一些示例,但我不明白代码)

\n

我不知道客户端将如何接收该流(没有找到此流的示例,所有示例都在同一页面上发送和接收视频)

\n

谁能帮忙,我的服务器端语言是 PHP,但如果必须的话我可以切换到 Node.js

\n

php streaming video-streaming node.js webrtc

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

当我从 Azure 流作业插入数据时,如何在 CosmosDB 中使用 GUID 作为 ID

您好,我有一个 Azure 流作业,它从事件中心获取数据并将其插入到 CosmosDB 数据库中。我想在插入数据时使用 GUID 作为 id,而不是文档中的值。我怎样才能在查询中实现这一点?

sql streaming azure azure-eventhub azure-cosmosdb

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

OpenCV 中的 RTSP 视频流捕获

目标是从磁盘获取视频文件,将其转换为 RTSP 流,通过 LAN 将其提供给另一台 PC,并将该视频流捕获到 OpenCV 中。我的电脑是192.168.1.100。

我运行 VLC 的语法如下。

vlc --vlm-conf=vlm.conf -I telnet --telnet-password mypassword
Run Code Online (Sandbox Code Playgroud)

我有一个 vlm.conf 文件,如下所示:

new video1 broadcast enabled loop
setup video1 input video1.mkv
setup video1 output #rtp{mux=ts,sdp=rtsp://192.168.1.100:8554/video1.sdp}
setup video1 option sout-keep
control video1 play
Run Code Online (Sandbox Code Playgroud)

video1.mkv是本地磁盘上的视频文件。

OpenCV 版本:

>>> cv2.__version__
'3.4.0-dev'
Run Code Online (Sandbox Code Playgroud)

我们可以尝试在 LAN 上的另一台 PC 上用 Python 打开该流,但失败了。

>>> cap = cv2.VideoCapture("rtsp://192.168.1.100:8554/video1.sdp")
[rtsp @ 0xabddc0] method SETUP failed: 459 Client error
Run Code Online (Sandbox Code Playgroud)

我们可以尝试rtsp://192.168.1.100:8554/video1.sdp使用 VLC 查看相同的 RTSP 流 ( ),并且效果成功。

作为类似的测试,我们可以尝试使用提供网络流的网络监控摄像头。

rtsp://root:mypassword@192.168.1.105/axis-media/media.amp
Run Code Online (Sandbox Code Playgroud)

我们可以在 VLC 中查看该流,这成功了。 …

video streaming opencv vlc rtsp

5
推荐指数
0
解决办法
1981
查看次数

如何使用 Java 传输 HTTP 请求的正文

我有一个InputStream和将要输出的数据的大小(HTTP 请求的响应)。由于空间复杂性的原因,我无法阅读全文。我想要的是将数据直接发送到新的请求正文中。我尝试使用 OkHttp 执行此操作,但无法使其工作。我不知道有任何其他 HTTP 客户端可以做到这一点。

如果可能的话,我想避免与Socket. 有什么建议吗?

编辑:添加的限制是该解决方案必须与 Java 8 一起使用

java streaming http

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