Google chrome 在Chrome中使用GStreamer的MJPEG流媒体

Google chrome 在Chrome中使用GStreamer的MJPEG流媒体,google-chrome,gstreamer,mjpeg,Google Chrome,Gstreamer,Mjpeg,我有一个使用OpenCV在嵌入式设备上运行的图像处理应用程序。为了显示结果,我使用Civetweb托管一个网页,并通过opencvvideowriter(它与GStreamer挂钩)流式传输我的应用程序的结果 要复制我的问题,可以使用以下代码段 gst-launch-1.0 \ videotestsrc \ ! videoconvert ! videoscale ! video/x-raw,width=320,height=240 \ ! cloc

我有一个使用OpenCV在嵌入式设备上运行的图像处理应用程序。为了显示结果,我使用Civetweb托管一个网页,并通过opencvvideowriter(它与GStreamer挂钩)流式传输我的应用程序的结果

要复制我的问题,可以使用以下代码段

gst-launch-1.0 \
        videotestsrc \
        ! videoconvert ! videoscale ! video/x-raw,width=320,height=240 \
        ! clockoverlay shaded-background=true \
        ! theoraenc ! oggmux ! tcpserversink host=127.0.0.1 port=8080

演示
使用首选服务器托管网页

Firefox显示一切正常,Chrome抛出一个
GEThttp://localhost:8080/ net::错误\u无效\u HTTP\u响应

  • 使用的Chrome版本:77.0.3865.120、78.0.3904.97
  • 使用的Firefix版本:70.0.1
  • 操作系统:Ubuntu Linux 16.04、18.04
这里可能有什么问题

更新2020/2/5
最后,我放弃了使用GStreamer完成这项任务的想法,实现了一个streamer类,它具有所有需要的特性。我的最终解决方案大致基于我在Github上找到的解决方案。

那么规范中如何说明这种传输应该如何完成?首先使用theora视频编解码器,MJPEG在哪里?这里的Gstreamer提供了一个TCP连接。浏览器发出HTTP请求(通过TCP)。GStreamer端的哪个组件应该在这里处理HTTP协议?@Florianwoch关于规范,我唯一发现的是。这澄清了无效HTTP响应问题。正如您所指出的,GStreamer提供TCP连接,无法处理HTTP协议。有没有一个GStreamer插件可以做到这一点?不幸的是,我不知道。我曾经做过的唯一的网络流媒体是通过HLS。因此,GStreamer创建媒体文件和清单文件,以及一个第三方(python内置)HTTP服务器来服务请求并向客户端交付媒体。