ffmpeg转码为直播

时间:2016-09-11 00:14:25

标签: video ffmpeg streaming video-streaming html5-video

我需要在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标记源,它更新但似乎不稳定

这是我第一次尝试做这样的事情,所以任何关于如何实现它的见解都会非常有用和赞赏

1 个答案:

答案 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页面检查它是否正常工作。