将视频流从 NodeJS 实时发送到 python
Sending video stream from NodeJS to python in real time
我正在使用 NodeJS 服务器通过 WebRTC PeerConnection 捕获视频流,我需要将其发送到 python 脚本。
我使用 NodeJS 主要是因为它很容易在其中使用 WebRTC,并且包 'wrtc' 支持 RTCVideoSink 而 python 的 aiortc 不支持。
我正在考虑使用带有 ffmpeg 的命名管道来传输视频流,但出现了 3 个问题:
我应该使用 python 而不是 NodeJS 并完全避免通过命名管道部分的流吗? (这意味着有一种方法可以从 python 中的 MediaStreamTrack 中提取单个帧)
如果我坚持使用“NodeJS - Python”方法,我如何将流从一个脚本发送到另一个脚本?命名管道? Unix 域套接字 ?还有 FFMpeg ?
最后,出于性能目的,我认为发送一个流而不是每个单独的帧更好更简单,但这是真的吗?
谢谢大家!
最后发现Python的aiortc
的MediaStreamTrack API有recv()
.
下一帧 returns 是协程。所以我将使用这个协程将我的 NodeJS 脚本移植到 python 来替换 RTCVideoSink
。没有管道或任何东西!
我正在使用 NodeJS 服务器通过 WebRTC PeerConnection 捕获视频流,我需要将其发送到 python 脚本。
我使用 NodeJS 主要是因为它很容易在其中使用 WebRTC,并且包 'wrtc' 支持 RTCVideoSink 而 python 的 aiortc 不支持。
我正在考虑使用带有 ffmpeg 的命名管道来传输视频流,但出现了 3 个问题:
我应该使用 python 而不是 NodeJS 并完全避免通过命名管道部分的流吗? (这意味着有一种方法可以从 python 中的 MediaStreamTrack 中提取单个帧)
如果我坚持使用“NodeJS - Python”方法,我如何将流从一个脚本发送到另一个脚本?命名管道? Unix 域套接字 ?还有 FFMpeg ?
最后,出于性能目的,我认为发送一个流而不是每个单独的帧更好更简单,但这是真的吗?
谢谢大家!
最后发现Python的aiortc
的MediaStreamTrack API有recv()
.
下一帧 returns 是协程。所以我将使用这个协程将我的 NodeJS 脚本移植到 python 来替换 RTCVideoSink
。没有管道或任何东西!