问题标签 [streaming-video]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
31 浏览

python-3.x - 将视频数据块从套接字重定向到 opencv 以进行视频重建

我尝试使用 pycam 文档3.13。录制到网络流,其中客户端是通过套接字发送 H.264 视频的 pycam,服务器增量读取类似文件的对象并将数据重定向到视频播放器。该代码开箱即用。

上面示例中的客户端对我来说似乎是一个完美的解决方案,因为我使用 pizero 进行视频捕捉,这种方法无需在发送端进行任何额外处理即可发送数据。因此,客户端不断发送数据:

另一方面,接收者通过套接字从类文件对象中读取数据,并将数据流推送给播放器:

播放器“知道”如何从接收到的数据中解码视频,但如果我想将视频保存到文件和/或在接收端处理/调整它的大小,我需要知道如何重建帧。

最终目标是接收视频流数据,然后将其保存到标准视频文件中,同时缩小视频的大小并进一步沿网络流式传输。我找到了很多这样的解决方案和这样的教程,关于如何使用 opencv 发送/接收视频,但我不知道如何针对我的具体情况调整它们。根据我的理解, cv2.VideoCapture() 只能从相机设备或文件中捕获。但是因为我有一个连续的视频流,我收到了 1024 字节的块(如上例所示),

  1. 如何将这些数据块重定向到 opencv 函数,即 cv2.VideoCapture(),以捕获和处理视频?
  2. 假设发送端保持不变,是否有另一种重建视频的方法?