我正在寻找一种非常简单的方法来将RTMP流(来自IP摄像头)转换为我可以在浏览器中使用的内容。理想情况下,这个服务器将读取我的相机的rtmp://地址,重新编码流,然后以一种我可以在网页上的<video>标签中使用的格式来服务器流。
但是,我的理解是HTML5和<video>标签不支持直播。因此,我只能使用HLS或DASH。我的理解是,几乎所有设备都支持HLS (我只关心Linux桌面和Android设备上的Chrome浏览器)。
那么,从rtmp://流转换到HLS最简单的方法是什么呢?我尝试过使用nginx-rtmp-module (https://github.com/ut0mt8/nginx-rtmp-module),但是在重新编译Nginx之后,我无法让配置文件正常工作。我还遇到了一个问题,即我的rtmp:// URL似乎不符合我在大多数文档中看到的rtmp://localhost/$app/$name的“标准”模式。我的是这样的:admin,最后一部分是用Base64编码的用户名和密码( rtmp://192.168.1.103:1935/flash/1:YWRtaW46YWRtaW4= /admin)。
最终,我有多个摄像头,我想做一个简单的页面,在那里我可以显示它们。在Linux上做这件事最简单的方法是什么?
发布于 2018-09-18 21:16:12
对于那些可能正在搜索类似内容的人,我可以使用ZoneMinder。它配置的服务器正是我想要的:将RTSP流转换为可以通过img标记在浏览器中显示的内容。您只需在浏览器中检查元素,即可确定图像源的URL。
ZoneMinder服务器的代码在GitHub:https://github.com/ZoneMinder/zoneminder上,如果可以很容易地提取出将RTSP转换为图像数据的服务器,那就太好了,但最简单的上手方法是简单地配置整个服务。
发布于 2021-08-16 19:09:48
我的建议是使用https://github.com/aler9/rtsp-simple-server。它满足了你的“简单至极”的要求,只需要2到10行YAML配置就可以将RTMP转换成HLS。
https://stackoverflow.com/questions/52347277
复制相似问题