FFMPEG拉監控視頻流輸出HLS進行實時預覽


海康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>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM