1 Introduction
- After a large number of tests, the webpage shows that the real-time performance of video streams is webrtc > ws-flv > flv > hls in descending order. When the player opens the rtsp/rtmp video stream, the real-time performance is controlled by the specific player, such as cache size and cache time, whether audio and video are synchronized, etc.
- Since the same source address of flv streaming can support up to 6 channels of simultaneous playback, so if you want to have high real-time performance and support multiple channels for web playback, choose ws-flv, and hls has the worst real-time performance.
- The hls/webrtc stream launched by mediamtx can be directly copied to the browser to open, without relying on additional js players to play.
- Port 554 on the Windows system may be occupied by system services. It is recommended to change it to other ports such as 5541.
2 mediamtx
At the same time, it supports rtsp/rtmp push-pull stream, and the pull stream also supports hls/webrtc two methods. The recent V1.0 release also supports the srt method. The launched hls/webrtc can be directly embedded in an iframe webpage to play (refer to the code to know that the streaming media server returns a piece of webpage code that supports hls/webrtc playback), without any dependencies. If you want to play directly in the webpage without dependencies, It is strongly recommended to use mediamtx, and the recommendation index is five stars.
Open source address: https://github.com/bluenviron/mediamtx
type | port | Format |
---|---|---|
rtsp | 8554 | rtsp://127.0.0.1:8554/live/stream |
rtmp | 1935 | rtmp://127.0.0.1:1935/live/stream |
hls | 8888 | http://127.0.0.1:8888/live/stream |
webrtc | 8889 | http://127.0.0.1:8889/live/stream |
3 LiveQing
It only supports rtmp push stream, supports various pull streams such as rtmp/hls/flv/ws-flv/webrtc, and has a web page background management, which is very convenient. The disadvantage is that there is only a one-month trial, and after the expiration, you have to download it from the official website again, and the corresponding expiration verification mechanism is hard-coded in the program. It needs to be recommended by the background of the webpage management, and the recommendation index is four stars.
Official address: https://www.liveqing.com/
type | port | Format |
---|---|---|
rtmp | 10085 | rtmp://127.0.0.1:10085/hls/stream |
hls | 18000 | http://127.0.0.1:18000/hls/stream/stream_live.m3u8 |
flv | 18000 | http://127.0.0.1:18000/flv/hls/stream.flv |
ws-flv | 18000 | ws://127.0.0.1:18000/ws-flv/hls/stream.flv |
webrtc | 18000 | webrtc://127.0.0.1:18000/rtc/hls/stream |
4 EasyDarwin
It only supports rtsp push-pull streaming, the default port is 5541, and does not support other formats of streaming. If it is only used by surveillance cameras, it is very convenient. There is a webpage management background that will not expire and can be used all the time. The disadvantage is that the function is single and can only be used in his View the video stream in the background, or play it with a player. The recommendation index is two stars.
Official website address: https://www.easydarwin.org/
5 nginx-rtmp
Only supports rtmp push-pull stream, the default port is 1935, does not support other formats pull stream, the function is extremely single, not recommended.
6 ZLMediaKit
At the same time, it supports rtsp/rtmp push-pull stream, and supports h265 push-pull stream (the push stream end must support 265 ffmpeg/pull stream player must also support 265 player), supports various formats of pull stream, many users, recommended Count five stars.
Open source address: https://github.com/ZLMediaKit/ZLMediaKit/
type | port | Format |
---|---|---|
rtsp | 554 | rtmp://127.0.0.1:554/live/stream |
rtmp | 1935 | rtmp://127.0.0.1:1935/live/stream |
hls | 80 | http://127.0.0.1:80/live/stream/hls.m3u8 |
flv | 80 | http://127.0.0.1:80/live/stream.live.flv |
ws-flv | 80 | ws://127.0.0.1:80/live/stream/live.flv |
7 srs
Support rtmp streaming, earlier versions supported rtsp streaming, I don’t know why it was removed. It supports streaming in some formats, but does not support ws-flv streaming. There are many users, and the recommendation index is four stars.
Open source address: https://github.com/ossrs/srs
type | port | Format |
---|---|---|
rtmp | 1935 | rtmp://127.0.0.1:1935/live/stream |
hls | 8080 | http://127.0.0.1:8080/live/stream.m3u8 |
flv | 8080 | http://127.0.0.1:8080/live/stream.flv |
webrtc | 8080 | webrtc://127.0.0.1:8080/live/stream |
8 ABLMediaServer
At the same time, it supports rtsp/rtmp push-pull streaming, and also supports 265 push-pull streaming. It is written by an audio and video server master in China. There is currently no official website and homepage. The biggest advantage is that the CPU usage is extremely low, and a special optimization has been made, sacrificing part of the memory. Under the same streaming environment, 25 channels of video occupy 0.3% of the CPU, and ZLMediaKit and srs occupy 3%, but the memory usage of ZLMediaKit and srs is extremely low. Users who are sensitive to CPU usage are recommended to choose ABLMediaServer. The recommendation index is four stars.
type | port | Format |
---|---|---|
rtsp | 554 | rtmp://127.0.0.1:554/live/stream |
rtmp | 1935 | rtmp://127.0.0.1:1935/live/stream |
hls | 9088 | http://127.0.0.1:9088/live/stream.m3u8 |
flv | 8088 | http://127.0.0.1:8088/live/stream.flv |
ws-flv | 6088 | ws://127.0.0.1:6088/live/stream.flv |