海康&大华&DSS视频拉流-RTSP转RTMP多媒体播放技术
海康&大华&dss获取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。
栗子:
ipc
rtsp://admin:123456@192.168.18.105:554/h264/ch1/main/av_stream
nvr
rtsp://admin:123456@192.168.18.106:554/streaming/channels/101
说明:
101,第一个1代表通道,最后一个1代表麻溜。
大华:
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)。
栗子:
rtsp://admin:admin@192.168.18.107:554/cam/realmonitor?channel=2&subtype=1
回放流
海康:
rtsp://[username]:[password]@[ip]:[port]/streaming/tracks/101?starttime=20120802t063812z&endtime=20120802t064816z
说明:
101:1,表示通道1;01,表示以单播形式回放指定设备的通道中的录像文件
starttime:开始时间
endtime:结束时间
时间范围是starttime到endtime,其中starttime和endtime的格式要符合iso 8601。
具体格式是yyyymmdd”t”hhmmss.fraction”z” ,y是年,m是月,d是日,t是时间分格符,h是小时,m是分,s是秒,z是可选的、表示zulu (gmt) 时间。
大华:
rtsp://[username]:[password]@[ip]:[port]/cam/playback?channel=1&subtype=0&starttime=2017_01_10_01_00_00&endtime=2017_01_10_02_00_00
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备ip。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。
starttime:开始时间
endtime:结束时间
大华dss:
rtsp://[ip]:[port]/dss/monitor/params?cameraid=设备编号%24通道号&substream=码流类型
说明:
[ip]:[port]:来自大华dss媒体网关mgw
设备编号:平台上设备编号,例如1000004
通道号:设备下通道,从0(通道一)开始。
码流类型:1代表主码流,2代表辅码流
栗子:
rtsp://192.168.19.102:9090/dss/monitor/params?cameraid=1000112$0&substream=1
rtsp转rtmp实战
一、下载nginx-rtmp-ffmpeg集合
https://download.csdn.net/download/yiyu1/10829669
二、修改nginx/conf文件夹下nginx.conf文件:
worker_processes 1; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 4000; # tv mode: one publisher, many subscribers application mylive { live on; } } } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 20000; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
三、启动nginx
四、通过dos命令执行脚本
d:\ffmpeg\bin\ffmpeg.exe -re -rtsp_transport tcp -i "rtsp://192.168.19.102:9090/dss/monitor/params?cameraid=1000112$0&substream=1" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://localhost:1935/mylive/1"
五、通过html访问rtmp
<!doctype html> <html lang="en"> <head> <title>video.js | html5 video player</title> <!-- <link href="video-js-6.2.0/video-js.css" rel="stylesheet"> <script src="video-js-6.2.0/videojs-ie8.min.js"></script> --> <link href="http://vjs.zencdn.net/5.20.1/video-js.css" rel="stylesheet"> <script src="http://vjs.zencdn.net/5.20.1/videojs-ie8.min.js">> </head> <body> <video id="example_video_1" class="video-js vjs-default-skin" controls preload="auto" width="1280" height="720" poster="http://vjs.zencdn.net/v/oceans.png" data-setup="{}"> <!-- <source src="1.mp4" type="video/mp4"> --> <source src="rtmp://localhost:1935/mylive/1" type="rtmp/flv"> <p class="vjs-no-js">to view this video please enable javascript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports html5 video</a></p> </video> <script src="http://vjs.zencdn.net/5.20.1/video.js">> </body> </html>
注:需要运行flash
————————————————————
推荐阅读:
上一篇: 行为型模式之命令模式