我正在为一个项目做研究,在其中我需要玩相机流。经过多次点击和跟踪和谷歌搜索,我甚至没有接近解决方案流ESP-32摄像头流直接到我自己的RMTP服务器。
已经尝试过的解决办法:
1)我尝试了用Raspberry pi再流ESP-32摄像机,这很好,但不是我正在寻找的东西(因为不想使用Raspberrypi用于重流目的而被丢弃)。
2) ESP-32-凸轮:用时间触发器记录和FTP传输(没有尝试,但认为这不是一个好方法)。{被丢弃,因为它不是实时的}
3) ESP32 Try to send image file to php with HTTPClient我尝试过,但是它只适用于图像,第二,代码是用循环函数执行的,所以由于保存和投递操作的延迟很长。
请注意:我不是在看ESP-32摄像机作为流服务器和浏览器可以连接到它的解决方案,如:https://www.hackster.io/BnBe_Club/9-rtsp-video-streamer-using-the-esp32-cam-board-8832b4。
我已经尝试过了,它运行得很好,但不适用于usecase,它涉及流到RTMP服务器,而不需要重流。
**
i想要实现ESP-32 CAM可以直接将/流发送到RTMP云托管服务器,从技术上讲,这似乎是可能的,因为ESP-32 cam支持连接wifi并访问云服务器。
**
在谷歌上,我发现了一条类似的线索:https://forum.arduino.cc/index.php?topic=634605.0这个有解决方案的家伙不想分享它。
可能是以下代码所需的一些修改,请参阅:https://github.com/espressif/esp32-camera
发布于 2020-03-29 12:23:15
你应该阅读(并理解)你发布的链接。
有两种选择。一种是由rtsp库使用的,Arduino充当rtsp服务器,所以像vlc这样的程序可以在桌面上解码流。
或者是BnBe解决方案,Esp32cam充当客户端,像youtube这样的服务器可以接收流并对其进行解码。
ESP是在这种情况下通过AP连接到互联网。可以使用浏览器组件来配置它。
在客户机服务器场景中没有第三个解决方案(一个充当客户端,另一个充当服务器)。仔细阅读BnBe解决方案的代码。如果你想硬编码你的配置-简单可行。
您的评论:"usecase,它涉及流到RTMP服务器而不重流“对不起,我看不到至少在我的代码中会发生这种情况。
您的意思是,作者从凸轮(方法esp_camera_fb_get())获得流,这不是由于espressif的封闭源而产生的,因为espressif是访问准备好的相机流的唯一方法。如果你不喜欢这个,你必须投资于其他硬件。
你用图表编辑了你的问题。这就是BnBe解决方案所做的!所以不能再流了。
OP希望将espressif函数esp_camera_fb_get()的结果直接发送到rtmp云服务。从技术上讲,这是不可能的,因为API只允许访问以mpeg编码的帧缓冲区(粘合在一起)。因此,必须将帧缓冲区转换为有效的rtmp流。即使您查看OV2640的数据表,您也会看到源已关闭,并且只有API访问固件是可能的。因此,除了逆向工程之外,不存在任何可能性。
使用BnBe解决方案,它的工作和节省你的1/2年的发展,你可以改进它,如果你是一个好的编码器,但忘记多流的ESP32 CPU大麦处理之一!
->特别关注CRtspSession.h和CRtspSession.cpp的代码以及OV2640.h和OV2640.cpp (在这里您可以找到凸轮模块的所有API函数)。
https://stackoverflow.com/questions/60908201
复制