海康RTSP流格式:
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
說明:
username: 用戶名。例如admin。
password: 密碼。例如12345。
ip: 為設備IP。例如 192.0.0.64。
port: 端口號默認為554,若為默認可不填寫。
codec:有h264、MPEG-4、mpeg4這幾種。
channel: 通道號,起始為1。例如通道1,則為ch1。
subtype: 碼流類型,主碼流為main,輔碼流為sub。
例如,請求海康攝像機通道1的主碼流,Url如下
主碼流:
rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream
子碼流:
rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream
大華RTSP視頻流:
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
說明:
username: 用戶名。例如admin。
password: 密碼。例如admin。
ip: 為設備IP。例如 10.7.8.122。
port: 端口號默認為554,若為默認可不填寫。
channel: 通道號,起始為1。例如通道2,則為channel=2。
subtype: 碼流類型,主碼流為0(即subtype=0),輔碼流為1(即subtype=1)。
例如,請求某設備的通道1的主碼流,Url如下
rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=1&subtype=1
ffmpeg拉流命令說明
ffmpeg -i {rtsp} -fflags flush_packets -max_delay 1 -an -flags -global_header -hls_time 1 -hls_list_size 5 -hls_wrap 5 -vcodec copy -y {m3u8}
說明:
rtsp是監控視頻充
m3u8是輸出的hls索引文件,需要全路徑
如果攝像頭是h265等其它編碼格式,就需要進行編碼轉換
ffmpeg -i {rtsp} -fflags flush_packets -max_delay 1 -an -flags -global_header -hls_time 1 -hls_list_size 5 -hls_wrap 5 - -c:v libx264 -c:a aac -y {m3u8}
使用VideoJS進行播放
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script> <video id="video" width="640" height="360"></video> <script> if(Hls.isSupported()) { var video = document.getElementById('video'); var hls = new Hls(); hls.loadSource('65.m3u8');//m3u8訪問文件路徑,需要apache或nginx等web服務器配合 hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED,function() { video.play(); }); } </script>