【发布时间】:2023-04-10 10:04:01
【问题描述】:
我需要在 html 视频标签中显示一个 ip camera 流,我已经想出了如何像这样从 rtsp 流转码为文件
ffmpeg -i "rtsp://user:password@ip" -s 640x480 /tmp/output.mp4
现在我需要能够像这样在视频标签中实时流式传输 rtsp 输入
<video id="video" src="http://domain:port/output.mp4" autoplay="autoplay" />
我试图在我的服务器(亚马逊上的一个 ubuntu 微型实例)中执行类似的操作,以便重现视频标签中的视频,但没有成功
ffmpeg -i "rtsp://user:password@ip" -s 640x480 http://localhost:8080/stream.mp4
我得到了这个日志
[tcp @ 0x747b40] Connection to tcp://localhost:8080 failed: Connection refused
http://localhost:8080/stream.mp4: Connection refused
我真的不明白发生了什么,不确定它是将输出发送到那个 url 还是在那里提供输出,我一直在检查 ffmpeg man docs,但我没有找到任何与此相关的示例用例以及类似FFmpeg Stream Transcoding 之类的其他问题,类似于我上次尝试但没有成功
顺便说一句,这是我使用的相机 DS-2CD2020F-I(W) - http://www.hikvision.com/en/Products_accessries_157_i5847.html 他们提供了一个 httppreview,但它只是一个 img 标签源,它会更新但似乎不稳定
这是我第一次尝试做这样的事情,所以任何关于如何实现它的见解都会非常有用和感激
【问题讨论】:
-
见stackoverflow.com/questions/26999595/…,需要结合ffserver和ffmpeg。还有一些非开源产品可以在免费许可下执行此操作(这将为您省去麻烦)。
-
@Rudolfs 这些天来,FFMPEG 确实支持 HTTP 实时流,而不需要任何 FFServer。主要缺点是延迟较高。
标签: video ffmpeg streaming video-streaming html5-video