我需要在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
我真的不明白发生了什么,不确定它是否将输出发送到该网址或提供输出那里,我一直在检查ffmpeg man docs但我没有找到任何与此相关的示例用例以及其他问题,例如FFmpeg Stream Transcoding,这与我上一次尝试没有成功相似
不过,这是我正在使用的相机DS-2CD2020F-I(W) - http://www.hikvision.com/en/Products_accessries_157_i5847.html 他们提供了一个httppreview,但它只是一个img标记源,它更新但似乎不稳定这是我第一次尝试做这样的事情,所以任何关于如何实现它的见解都会非常有用和赞赏
答案 0 :(得分:2)
这样的东西应该可以用来从摄像机创建一个实时的HLS流,但延迟不会很好。如果延迟很重要,您可能需要查看WebRTC。
ffmpeg -i“rtsp:// user:password @ ip”-s 640x480 -c:v libx264 -f ssegment -hls_flags delete_segments -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags + live -segment_time 10 out_%6d.ts
您需要在HTTP服务器后面找到生成的ts和m3u8文件的输出,然后您可以使用此test页面检查它是否正常工作。