ffmpeg转码直播
ffmpeg transcode to live stream
我需要在 html 视频标签中显示 ip 摄像机流,我已经想出了如何从这样的 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 文档,但我没有找到与此用例相关的任何示例以及其他问题,例如这个 FFmpeg Stream Transcoding,这与我上次尝试但没有成功类似
顺便说一句,这是我使用的相机 DS-2CD2020F-I(W) - http://www.hikvision.com/en/Products_accessries_157_i5847.html
他们提供了一个 httppreview 但它只是一个更新但似乎不稳定的 img 标签源
这是我第一次尝试做这样的事情,所以任何关于如何实现它的见解都将非常有用和感激
像这样的东西应该可以从摄像机创建实时 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 页面来检查它是否正常工作。
我需要在 html 视频标签中显示 ip 摄像机流,我已经想出了如何从这样的 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 文档,但我没有找到与此用例相关的任何示例以及其他问题,例如这个 FFmpeg Stream Transcoding,这与我上次尝试但没有成功类似
顺便说一句,这是我使用的相机 DS-2CD2020F-I(W) - http://www.hikvision.com/en/Products_accessries_157_i5847.html 他们提供了一个 httppreview 但它只是一个更新但似乎不稳定的 img 标签源
这是我第一次尝试做这样的事情,所以任何关于如何实现它的见解都将非常有用和感激
像这样的东西应该可以从摄像机创建实时 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 页面来检查它是否正常工作。