首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在浏览器(HTML5)中显示RTSP H264流的现代方法

在浏览器(HTML5)中显示RTSP H264流的现代方法
EN

Stack Overflow用户
提问于 2020-01-09 09:00:15
回答 1查看 12.4K关注 0票数 14

是的,这个话题也不时地出现在这里。

我读过很多关于这个话题的文章,也尝试过一些解决方案,但我有一些限制:

  1. 浏览器无关(大多数浏览器都应该工作)
  2. 平台无关(应支持主要平台)
  3. 开箱即用(没有插件!)
  4. 低延迟(1秒以下为首选)
  5. 带宽有限(MJPEG不是选项之一)
  6. 没有转码!

因此,向前看:对于约束1和2,H264流似乎是完美的。

另外,我的源代码将一个活动的H264 (确切地说是:MPEG-4 AVC,第10部分)生成到RTSP容器中。

但浏览器中仍然不支持RTSP。

我查过的是:

上面的所有帖子都与这个问题有关,并且有很多有价值的信息。

我还读过2014年的好文章 (!)很详细也很前瞻。

因此,从今天起,最好的解决方案是:

  1. 解析RTSP并提取h264流。
  2. 重构流(将其转换为分段MP4)
  3. websocket (稍后见)
  4. 如果浏览器有fMP4,HTML5视频可以轻松播放MSE (另一种方法是使用broadway.js,这很酷,但CPU很密集)。

在某些解决方案中,步骤1和步骤2发生在服务器端,然后将fMP4推到websocket中。客户端使用websocket中的数据并将其传递给MSE组件以进行显示。

2014年的文章显示,step2也可以发生在客户端。在这种情况下,只有步骤1发生在服务器上,然后h264被推入websocket,在客户端当然有重组和显示。

乍一看,斯特拉中值似乎是一个很好的解决方案,但他们并没有发布服务器端代码,他们的站点返回时也有一天出现了502错误。

我不想使用 GStreamer ffmpeg,它们都太重了。

然而,有一些很好的项目可以帮助:

  • MP4Box.js -将一个MP4文件分割为与媒体源扩展API一起使用
  • mux.js -视频文件的检查和操作工具

回到我的清单上,step2可以用MP4Box来完成--至少我相信/希望。

Step3step4都很直截了当,有大量的操作方法。

然而,我对step1有点困惑。它应该在服务器端完成,最好是使用一种可以轻松地与websockets交互的语言(比如java)。

--这就是我问题的重点:我需要用java从RTSP中提取h264流,我如何在不调用外部程序的情况下做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2022-01-24 03:44:03

使用WebCodecs API在浏览器中解码H.264包如何?该API将利用现代浏览器提供的硬件加速功能。顺便说一下,在我看来,延迟主要发生在解码过程中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59660342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档