我正在开发一个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与某些亚马逊服务直接连接,将其代理到运动学。有可能吗?
谢谢!
答案 0 :(得分:0)
我也在出于普通教育/研究目的而对此进行研究。最接近的示例出现在AWS博客上。 这是github repo。从README.md
如果源是一系列缓冲的网络摄像头帧,则浏览器客户端会将帧数据发布到API网关-Lambda代理端点,从而触发lambda / WebApi / frame-converter函数。此功能使用FFmpeg从图像帧序列中构造出一个短MKV片段。有关如何执行此API请求的详细信息,请参见特定于功能的文档。