preface
I haven't updated it for a long time. One is that I don't have time. The other is that I may pay more attention to an opportunity. I'm afraid to write wrong in semi familiar fields, and I dare not write in too familiar fields. Only things I just touch dare to write indiscriminately.
Well, it's just the sentence that newborn calves are not afraid of tigers. To get back to business, this article mainly records the initial use process and some problems encountered during WVP + zlmedia kit.
1, WVP
WEB VIDEO PLATFORM It is an out of the box network video platform based on GB28181-2016 standard. It is responsible for realizing the background part of core signaling and equipment management, supporting NAT penetration, and supporting IPC, NVR and DVR access of Haikang, Dahua, Yushi and other brands. Support national standard cascading, forward video streams such as rtsp/rtmp to the national standard platform, and push streams such as rtsp/rtmp to the national standard platform.
1.1. WVP operation
- Installing the Java development environment
- Install Redis( windows installation package point I download,centos installation tutorial point I open)
- Clone and import the project (it is recommended to clone the project directly from git clone instead of downloading the zip file directly from the web page)
- Modify the configuration file (application dev.yml)
spring: # REDIS database configuration redis: # [must be modified] Redis server IP, REDIS is installed on the local computer, and 127.0.0.1 is used host: 127.0.0.1 # [must be modified] port number port: 6379 # [optional] database DB database: 6 # [optional] access password. If your redis server does not have a password set, you do not need to use a password to connect password: # [optional] timeout timeout: 10000 # [optional] jdbc database configuration. The project uses sqlite as the database, which generally does not need to be configured datasource: # name: wvp # url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true # username: # password: # type: com.alibaba.druid.pool.DruidDataSource # driver-class-name: com.mysql.cj.jdbc.Driver name: eiot url: jdbc:sqlite::resource:wvp.sqlite username: password: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: org.sqlite.JDBC max-active: 1 min-idle: 1 # [optional] the HTTP port that WVP listens to. This port is used for web pages and interface calls server: port: 18080 # [optional] HTTPS configuration, not enabled by default ssl: # [optional] whether to enable HTTPS access enabled: false # [optional] the path of the certificate file can be placed in the resource / directory, and xxx can be changed to the file name key-store: classpath:xxx.jks # [optional] certificate password key-password: password # [optional] certificate type. It defaults to jks and can be modified according to the actual situation key-store-type: JKS # Configuration as 28181 server sip: # [must be modified] the IP of this machine must be the IP of the network card ip: 172.18.139.248 # [optional] 28181 service listening port port: 5060 # According to the provisions of national standard 6.1.2, the domain should adopt the first ten digits of ID unified coding. The first 8 digits defined in Appendix D of the national standard are the central code (composed of provincial, municipal, district and grass-roots numbers, refer to GB/T 2260-2007) # The last two digits are industry codes. Refer to appendix D.3 for definitions # 3701020049 identifies the access of information industry in Lixia District, Jinan, Shandong # [optional] domain: 4401020049 # [optional] id: 44010200492000000001 # [optional] the default device authentication password, and the subsequent extensions use the device separate password password: admin123 #zlm server configuration media: # [must modify] zlm server's intranet IP ip: 172.18.139.248 # [optional] the public IP of zlm server, and the intranet deployment can be left blank wanIp: # [optional] the IP used by the hook of zlm server. SIP is used by default ip hookIp: # [must be modified] HTTP of zlm server port httpPort: 80 # [optional] HTTP of zlm server Sslport, null, use zlm configuration file for configuration httpSSlPort: # [optional] RTMP of zlm server Port, null, use zlm configuration file to configure rtmpPort: # [optional] RTMP of zlm server Sslport, null, use zlm configuration file for configuration rtmpSSlPort: # [optional] RTP of zlm server_ proxy. Port, null, use zlm configuration file to configure rtpProxyPort: # [optional] RTSP of zlm server Port, null, use zlm configuration file to configure rtspPort: # [optional] RTSP of zlm server Sslport, null, use zlm configuration file for configuration rtspSSLPort: # [optional] whether to configure ZLM automatically. If you want to configure ZLM manually, it can be set to false. It is not recommended for new users to modify it autoConfig: true # [optional] hook of zlm server admin_ params=secret secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc # [optional] General of zlm server streamNoneReaderDelayMS streamNoneReaderDelayMS: 18000 # When no one watches, the stream will be automatically closed, - 1 means it will never be automatically closed, that is, the on-demand pull stream will be closed # Enable multi port mode. Multi port mode uses ports to distinguish each flow, which has better compatibility. Single port uses ssrc to distinguish streams. Multi port test is recommended for on-demand timeout rtp: # [optional] whether to enable the multi port mode. After it is enabled, the port will be selected within the portRange for media streaming enable: true # [optional] select a port within this range for media streaming, portRange: 30000,30500 # Port range # [optional] log configuration, which generally does not need to be changed logging: file: name: logs/wvp.log max-history: 30 max-size: 10MB total-size-cap: 300MB level: com: genersoft: iot: info # [configured according to business requirements] userSettings: # [optional] automatic on-demand. When playing with a fixed stream address, if there is no on-demand, it will be automatically on-demand, requiring RTP enable=true autoApplyPlay: false # [optional] some devices need to extend SDP, and this setting needs to be turned on seniorSdp: false # true: the last position to save historical data, false: keep historical data only savePositionHistory: false # On demand waiting timeout, unit: ms playTimeout: 3000 # Wait for the audio and video coding information to return. true: you can select the appropriate player according to the coding. false: you can play on demand faster waitTrack: false # Enable interface authentication interfaceAuthentication: true # Online document: swagger UI (production environment is recommended to be closed) springfox: documentation: swagger-ui: enabled: true
- Run the test (Note: install the zlmedia kit and run it first)
WVP2.0 has integrated the web interface. The first time you run npm Install and build, and then run WVP project, you can directly access the web page. - Problems encountered
When adding an agent device, an error is reported. Check the console output as follows.
Troubleshooting reason: the parameter name should be the same as the sql condition name in the mapped file. At the same time, add notes, modify it as follows and run it again.
2, Zlmedia Kit
- ZLMediaKit Based on C++11 development, avoid the use of bare pointers, the code is stable and reliable, and the performance is superior.
- Support multiple protocols (RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC), and support protocol exchange.
- Developed with multiplexing / multithreading / asynchronous network IO mode, it has superior concurrency performance and supports massive client connections.
- After a large number of long-term stability and performance tests, the code has been commercially verified online for a long time. Support linux, macos, ios, android and windows platforms.
- It supports the second opening of the picture and very low delay (within 500 milliseconds, up to 100 milliseconds at least). Provide perfect standard C API, which can be used as SDK or called by other languages.
- Provide a complete MediaServer server, which can be directly deployed as a commercial server without development. Provide complete restful api and web
- hook, which supports rich business logic. Through the video monitoring protocol stack and live broadcast protocol stack, the RTSP/RTMP support is perfect.
- Fully support H265/H264/AAC/G711/OPUS.
2.1. Run zlmedia Kit
You can download it directly My installation package (centos) , unzip and run.
./MediaServer -d &
Of course, you can compile it yourself and check the details given by the boss wiki document , the screenshot of the operation is as follows (404 is returned when you don't have any content, which is successful).
3, Screenshot of page
THE END
Thanks for checkingYu Nianyu Hui: Editor