我正在开发一个Web应用程序,该应用程序从网络摄像头捕获视频并将流保存到Amazon Kinesis。
我想到的第一种方法是getUserMedia / mediaRecorder / XMLHttpRequest,它将分块的MKV发布到我的unix服务器(不是AWS),简单的PHP后端代理通过putMedia将其传输到Kinesis。

这应该可以,但是来自用户的所有媒体流都将通过我的服务器,这可能会成为瓶颈。据我所知,由于跨域问题,不可能将分块的mkv直接从浏览器发布到Amazon。如果我错了或者对此有解决方案的话,请纠正我。

我觉得我想念的另一件事是WebRTC。 XHR有点像2019年流媒体的遗产。但是,如果我想让它正常工作,我将需要一堆三台服务器:用于建立连接的webrtc服务器,webrtc-> rtsp代理和Kinesis gstreamer插件,后者可获取rtsp流并将其推送到Kinesis。看起来有点复杂,并且媒体流量仍然通过我的服务器运行。还是有更好的方法?

我需要有关如何为我的应用程序制作更好的体系结构的建议。我觉得最好的解决方案是将Webrtc与某些亚马逊服务直接连接,将其代理到运动学。可能吗?

谢谢!

最佳答案

我也在出于通识教育/研究目的而对此进行研究。最接近的示例出现在AWS博客上。
这是github repo。从README.md


  如果源是一系列缓冲的网络摄像头帧,则浏览器客户端会将帧数据发布到API网关-Lambda代理端点,从而触发lambda / WebApi / frame-converter函数。此功能使用FFmpeg从图像帧序列中构造出一个短MKV片段。有关如何执行此API请求的详细信息,请参见特定于功能的文档。

07-26 09:30
查看更多