Note: This is FAQ for SRS Stack, please see SRS FAQ for SRS FAQ.
- Video Guides: Video tutorials.
- Getting Started: How to use, start, and get started with SRS Stack Server.
- How to Upgrade: How to upgrade to the latest or stable version, and why the interface click upgrade is not supported.
- How to set a domain: How to set up a domain to access the admin panel, why can't the admin panel be opened, and why can't the admin panel be accessed via IP.
- Supported Platforms: Supported platforms, supported images, want to use the server or command line installation directly, or aaPanel installation.
- How to push multiple streams: Want to push multiple streams, want to change the default stream name and stream address.
- Too many machine resources: The machine has a lot of CPU, how can we support more platform forwarding, or more streams and recording, etc.
- Low bandwidth, increase bandwidth: Insufficient bandwidth, want to increase bandwidth, use SRS Stack in CVM.
- How to set up free HTTPS: How to apply for a free HTTPS certificate, how to apply for certificates for multiple domain names.
- How to modify the push authentication key: Update the push authentication key, replace the push key.
- How to disable push authentication: Don't want push authentication, the device does not support special characters.
- How to record to local disk: How to record to the local disk of SRS Stack.
- Difference between cloud recording and cloud on-demand: Whether to use cloud recording or cloud on-demand, and what are the differences.
- How to record to cloud storage: Record to COS, OSS, or S3, etc. cloud storage.
- Unavailable after installation: Error prompt after installation, or Redis not ready.
- Difference between SRS re-streaming and OBS re-streaming: The difference between SRS multi-platform re-streaming and OBS re-streaming plugin.
- How SRS re-streams to custom platforms: How SRS multi-platform re-streaming pushes to custom live platforms.
- How to replace FFmpeg: How to replace the FFmpeg in SRS Stack with a custom version.
- aaPanel installation of SRS is very slow: Overseas aaPanel installation is very slow, access to Alibaba Cloud image is too slow.
- How to install the latest SRS Stack in aaPanel: Manually install aaPanel plugin, install the latest plugin.
- aaPanel CentOS7 installation failed: CentOS7 aaPanel installation failed, cannot find the directory, or GLIBC version problem.
- How to purchase AI face-swapping service: How to implement AI face-swapping? How to buy models? Who to buy from?
- How to implement the requirements or features: Want to implement more features, want to customize, want to optimize and improve.
- Unable to achieve the desired effect: Encounter problems, cannot achieve the desired effect.
- Difference between SRS Stack and SRS: The difference between SRS Stack and SRS, why there is SRS Stack.
- Difference with aaPanel: Difference with virtual machine management software aaPanel.
- Difference with Video Cloud: Difference with general video cloud services.
- How to reinstall the system: For friends who already have Lighthouse or CVM.
- How to authorize troubleshooting: How to authorize machine permissions when encountering problems.
- Cost Optimization: About cost and cost optimization.
- OpenAPI: About open API, using API to get related information.
- Feature List: About the list of supported features.
- Version Planning: About versions and milestones.
You can also search for keywords on the page.
The following are video materials for answering questions, which explain a certain topic in detail. If your question is similar, please watch the video directly:
How to get started
Please purchase and set up SRS Stack Server first.
After entering the SRS Stack Server, there will be corresponding video tutorials according to different application scenarios, as shown in the following figure:
Each scenario also has a complete introduction and detailed operation steps, as shown in the following figure:
Please do not try randomly, be sure to follow the guide, audio and video random testing will definitely cause problems.
How to upgrade
How to upgrade to the latest version or stable version, and why not support click upgrade on the interface?
Since SRS Stack supports multiple platforms, including Docker, and Docker cannot upgrade itself, SRS Stack also does not support interface upgrades and needs to be upgraded manually.
The Docker startup specifies the version, such as
ossrs/srs-stack:v1.0.293, and you only need to delete the container and start with the new version, such as
If you use
ossrs/srs-stack:1, it is the latest version, and you need to update manually, such as
docker pull ossrs/srs-stack:1.
If you use BT panel, just delete the application and reinstall the new version, the data is saved in the
/data directory and will not be lost.
How to set a domain
How to set up a domain to access the admin panel, why can't the admin panel be opened, and why can't the admin panel be accessed via IP.
Please replace the following domain names and IPs with your own domain names and IPs, which can be either private or public IPs, as long as your browser can access them.
When installing SRS Stack with aaPanel, you need to enter the domain name of the management backend, such as
bt.yourdomain.com, and it will automatically create the management backend website.
Note: When installing with aaPanel, if you want to use IP access, you can set it to
bt.yourdomain.com, and then set the
srs.stack.localwebsite as the default website in aaPanel.
If you install it in other ways, it's the same. You just need to resolve your domain name to the SRS Stack IP.
There are several ways to set up domain name resolution:
- DNS domain name resolution: In the backend of your domain name provider, set an A record pointing to the SRS Stack IP.
A bt.yourdomain.com 184.108.40.206
- Modify the local
/etc/hostsfile in Linux/Unix to resolve the domain name to the SRS Stack IP.
- Modify the local
C:\Windows\System32\drivers\etcfile in Windows to resolve the domain name to the SRS Stack IP.
Note: If you need to apply for a free HTTPS certificate through Let's Encrypt, the IP address must be a public IP, and you cannot use the method of modifying the hosts file.
SRS Stack supports Docker images, installation scripts, DigitalOcean images, and can be installed on other platforms using aaPanel.
It is recommended to install directly using Docker, which also allows for multiple installations. Be sure to use Ubuntu 20+ system:
- Docker image installation: here
If you are used to aaPanel, you can install it with aaPanel, which can coexist with multiple websites. Be sure to use Ubuntu 20+ system:
- aaPanel: You can download the plugin for installation, and refer to How to Setup a Video Streaming Service with aaPanel for usage.
- Script: You can also use the script directly, refer to Script
It supports various cloud platforms, and the most convenient method is using images, which are cloud server images. If you want to keep it simple and save time, please use images:
- DigitalOcean: Overseas lightweight cloud server images, refer to How to Setup a Video Streaming Service by 1-Click for usage.
If you find that some features are missing, it may be because the version you chose is older. According to the update speed of features:
Docker/Script > aaPanel > DigitalOcean
If you consider convenience and simplicity, the recommended order is:
DigitalOcean > aaPanel > Docker/Script
You can choose the platform and installation method according to your situation.
How to push multiple streams
By default, there is only one push stream address. What if you want to push multiple streams? How to change the stream address?
You can change the stream name, for example, the default push stream address is:
You can modify
livestream to any other name, and then push directly:
As shown in the figure below, you can click the update button to automatically change the push stream and playback name:
Note: Of course, the playback must also be changed to the corresponding stream name.
Too many machine resources
The machine has a lot of CPU, how can we support more platform forwarding, or more streams and recording, etc.
You can choose to use Docker to start SRS Stack, which makes it very easy to run many isolated SRS Stack instances that don't affect each other and utilize the machine resources.
For example, start two instances listening on ports 2022 and 2023, and use different ports for streaming media:
docker run --rm -it -p 2022:2022 -p 1935:1935 \
-p 8080:8080 -p 8000:8000/udp -p 10080:10080/udp --name srs-stack \
-v $HOME/data:/data ossrs/srs-stack:5
Then, open http://localhost:2022 to log in to the backend.
docker run --rm -it -p 2023:2022 -p 1936:1935 \
-p 8081:8080 -p 8001:8000/udp -p 10081:10080/udp --name srs-stack1 \
-v $HOME/data:/data ossrs/srs-stack:5
Then, open http://localhost:2023 to log in to the backend.
Note: Be careful not to use duplicate ports and make sure the mounted data directories are unique. Keep the two SRS Stacks completely separate.
If you only need multi-platform streaming or virtual streaming without involving the push stream port, you can use it directly.
If you need to push streams to two SRS Stack instances, you need to specify the ports, such as pushing streams to these two SRS Stacks:
Other protocol ports should also be changed accordingly, such as HLS:
Of course, this doesn't mean you can start thousands of SRS Stacks. You should pay attention to your CPU and memory, as well as whether your machine has enough bandwidth.
Low bandwidth, increase bandwidth
The bandwidth of lightweight application servers ranges from 4 to 20Mbps, which is somewhat limited for audio and video. If you want higher bandwidth, such as 100Mbps, you can choose CVM or AWS VPS.
Note: The usage of SRS Stack is consistent, but the purchase and platform configuration are different.
The advantages of CVM cloud servers are:
- The bandwidth can be up to 100Mbps, and multiple platforms can be used to forward to other CVM servers. Ten CVMs can achieve 1Gbps bandwidth, but of course, you have to consider your budget.
- Pay-as-you-go, you can stop the machine at any time without charge, and use it again when needed. It is more friendly for low-frequency application scenarios.
The disadvantages of CVM cloud servers are:
- High cost, no free traffic package. Lightweight servers have low cost, and the free traffic package is basically enough for general live streaming. So please calculate the cost yourself.
- Complex operation, CVM's security group is much more complicated than the lightweight firewall operation. Please try it yourself. If it doesn't work, switch to lightweight.
- No background link, the interface is more complex. If it doesn't work, switch to lightweight.
If you still want to choose CVM after knowing the advantages and disadvantages, please refer to SRS Stack: Support CVM image.
How to set up free HTTPS
SRS Stack supports applying for free HTTPS certificates, and you can apply for certificates for multiple domain names and automatically renew them. For example, the certificates for the following HTTPS websites are all automatically applied after running SRS Stack:
- https://ossrs.io SRS's overseas documentation website.
- https://www.ossrs.io SRS's overseas documentation website.
- https://r.ossrs.net SRS's stable version demo server.
The operation is very simple, just follow these three steps, please see here:
- Purchase a domain name and complete the filing. You must have your own legal domain name, otherwise, you cannot apply for a certificate.
- Resolve the domain name to the public IP of SRS Stack. You can add multiple domain names to resolve, for example,
www.ossrs.ioare both resolved to the same SRS Stack server.
- In SRS Stack's
System Settings > HTTPS > Automatic HTTPS Certificate, fill in your domain name, separate multiple domain names with semicolons, and click Apply.
Note: Just apply for the domain name, do not upload it again. Once applied, you don't need to upload it again.
Note: If you're using aaPanel to install SRS Stack, you can choose to apply through aaPanel or apply within SRS Stack.
If you encounter an error while applying and the message says
Could not obtain certificates: error: one or more domains had a problem, the possible reasons are:
- The domain is not pointing to the SRS Stack's IP. You must use DNS to point the domain to the SRS Stack's IP, instead of setting it in the hosts file.
- The IP of the SRS Stack must be publicly accessible, meaning it should be an IP that anyone on the internet can access, not just within a private network.
- The port must be 80, not 2022, because Let's Encrypt will verify your domain in reverse and access it through port 80.
After the application is successful, enter https plus your domain name in the browser, and you can access your website.
How to modify the push authentication key
If you need to update the push authentication key or change the push key, you can follow these steps:
- Enter the
- Select the
- Enter the new stream key.
- Click the
- Refresh the pages of each scene, and the push key will be automatically updated.
As shown in the picture below:
If you need to disable push authentication, please refer to the instructions below.
How to disable push authentication
In the scene page, the standard push format is with
?secret=xxx authentication, such as
It is found that some cameras do not support the
?secret=xxx format, so the address is not supported.
In this case, you can actually put the key
xxx directly in the stream name, such as:
rtmp://ip/live/livestreamsecretxxx, and there will be no problem.
Of course, if you only need to push one stream, you can directly use the key as the stream name, such as:
Note: Of course, the playback must also be changed to the same stream name, and the key must be included, because the key is placed in the stream name here, so the playback must also be changed.
This way, there is security, and it can support devices that do not support special characters. In addition, the push key can be changed, so you can change it to the way you want.
How to record to local disk
How to record to the local disk of SRS Stack? After upgrading to v1.0.252, you can see local recording in the recording.
For the limitations and solutions of local recording, please refer to #42
Difference between cloud recording and cloud on-demand
SRS Stack provides two similar functions, cloud recording and cloud on-demand. What is the difference between using cloud recording or cloud on-demand for recording?
Cloud recording can be considered as writing live streaming to the cloud disk, saving it in HLS format, which is the original video stream. If you want to download HLS for transcoding and editing, it would be more suitable. Cloud recording is stored in Tencent Cloud COS cloud storage, which can be considered as an unlimited disk, avoiding overwriting the disk of SRS Stack.
Cloud on-demand provides both HLS and MP4 formats, and more features will be added in the future, such as outputting multiple bit rates, adding logos and watermarks, media asset management, and many other useful features. Cloud on-demand is a video-on-demand system, not just a storage disk. It can be considered as a Bilibili or YouTube. If you want to do more diverse businesses, you must choose cloud on-demand.
In terms of cost, cloud on-demand will be slightly higher than cloud recording, depending on which features are used. Currently, SRS Stack uses HLS to MP4 conversion, which is very low in cost because there is no transcoding. In the future, if you want to use advanced features, the cost will be higher. Overall, the cost of cloud on-demand is very low, similar to cloud recording. If there is no additional computing cost, it will be the same as cloud recording.
In short, it is recommended to use cloud on-demand, which is easy to use and not expensive.
How to record to cloud storage
SRS Stack supports recording to COS, Tencent Cloud Storage. Please refer to Usage: Cloud Storage.
SRS Stack can also record to other cloud storage, such as Alibaba Cloud OSS or AWS S3. According to the guidance of cloud storage, mount the cloud storage to SRS Stack, and then use local recording, configure the local storage path, so that you can write files to cloud storage.
Note: To modify the local recording path, you can go to
Local Recording/Recording Folder, and soft link the recording path to the cloud storage path.
Unable to access after installation
In the new version of the aaPanel plugin, to avoid conflicts with existing website settings, it no longer automatically sets itself as the default website. Instead, you need to specify a domain or manually set the default website. Please refer to How to Set a Domain.
After installation, an error is prompted, such as:
Or Redis is not ready, such as:
This is because it takes time for SRS Stack to start after installation. Refresh the page after waiting for 3 to 5 minutes.
Difference between SRS Restream and OBS Restream
SRS's multi-platform restreaming can push the stream to multiple platforms, and its working diagram is as follows:
OBS/FFmpeg --RTMP--> SRS Stack --RTMP--> Video number, Bilibili, Kuaishou, and other live streaming platforms
In fact, OBS also has a restreaming plugin, and its working diagram is as follows:
OBS --RTMP--> Video number, Bilibili, Kuaishou, and other live streaming platforms
It seems that OBS's link is shorter and simpler, and it doesn't need to go through SRS Stack or pay money. So why does SRS Stack still need to do restreaming, and what are the drawbacks of OBS's solution?
The advantage of OBS restreaming is that it doesn't cost money and can be restreamed directly. The disadvantage is that its uplink/upload bandwidth is doubled. For example, a 2Mbps stream, if restreamed to 3 platforms, will be 6Mbps. If more video numbers need to be pushed, it will be even more, such as pushing to 10 platforms, which will be 20Mbps.
Higher bandwidth will cause all push streams to stutter or interrupt, making it impossible for all viewers to watch the live broadcast, resulting in a live broadcast accident. As long as there is a rollover once, most of the people in the live broadcast room will run away, which is a very serious accident.
Basically, 80% of live broadcast rollovers are caused by problems with the anchor's push stream. Because the problems of cloud platforms and viewer viewing have been almost solved, the only unsolvable problem is the anchor's push stream.
If you have a dedicated fiber-optic line at home, such as buying a 100Mbps dedicated line, there will be no problem. The problem is that a 100Mbps dedicated line is very expensive, and even if it is temporarily free, there will be a day when it will be charged because a dedicated line is a dedicated resource and cannot be free forever. It's like someone giving you gold bars for free, how long can it be free?
SRS Stack also has doubled bandwidth, but it is the downstream bandwidth that is doubled because it has done a conversion, and essentially other platforms are downloading the stream from SRS Stack. Downstream/download bandwidth is generally more guaranteed. Moreover, between SRS Stack and the platform, they are all BGP bandwidth between servers, which is more guaranteed in quality than the home-to-platform connection.
How SRS Restreams to Custom Platforms
SRS's multi-platform restreaming can push to custom live streaming platforms, such as pushing to the video number's push stream address and stream key, and can also fill in any other live streaming platform.
Note: The reason why SRS Stack is divided into video numbers and platforms like Bilibili is to provide better guidance. The RTMP address format of these platforms is similar, so you can fill in any platform, and SRS Stack will not verify the specific platform.
If the RTMP address of the live streaming platform is a single address, such as:
Then, you can split it into:
- Push stream address:
- Stream key:
Note: The part after the last slash is the stream key.
How to Replace FFmpeg
If you are using the Docker version, you can replace the FFmpeg in SRS Stack with a custom version by specifying the command at startup:
You can use the command
which ffmpeg to find the path of your FFmpeg.
Note: Non-Docker versions are not supported.
Baota Installation of SRS is Very Slow
Some users have reported that overseas Baota installations are very slow, and accessing Alibaba Cloud's mirror is too slow.
This is because Baota cannot be used overseas. Installing other tools with Baota overseas is also very slow because downloading data across countries back to China is naturally very slow.
The overseas version of Baota is called aaPanel. Please use aaPanel, which installs software quickly, and SRS Stack will also switch to overseas mirror downloads.
How to Install the Latest SRS Stack on Baota
Sometimes the version in the Baota store is older, and you can manually install the Baota plugin to install the latest plugin.
The latest version of SRS Stack can be found in Releases, and the
aapanel-srs_stack.zip attachment in each version can be downloaded as a plugin.
After downloading the plugin, you can go to Baota
Software Store > Third-Party Applications > Import Plugin and upload the downloaded
aapanel-srs_stack.zip to install.
aaPanel CentOS7 Installation Failure
Note: Ubuntu 20 (Focal) is highly recommend, please don't use CentOS.
Common errors for CentOS7 aaPanel installation failure are:
- GLIBC version issue:
version `GLIBC_2.27' not found
- Directory not found:
ln: failed to access '/www/server/nvm/versions/node/v18.12.1/bin/node'
These are all due to problems with nodejs on CentOS7. Generally, after installing pm2, nodejs18 is installed, which depends on a higher version of libc, so it cannot be used.
- Upgrade to SRS Stack v4.6.3+ and manually install the latest version. Refer to How to Install the Latest SRS Stack on aaPanel
- Open pm2 and switch to nodejs 16, which can also bypass this problem.
Note: SRS Stack v4.6.3+ no longer requires pm2 to install nodejs. As long as the system has nodejs, it can be used. You can choose to install it with the nodejs manager, or with pm2, or you can install it yourself.
Finally, if it is still not available after successful installation, you can try restarting the system.
How to implement the proposed features and how to record videos
Welcome everyone to submit questions and new features to SRS Stack, but please explain the real business.
Most friends don't know what real business is, and generally describe the implementation plan of the business. However, this plan may not be the most suitable, and there may even be other technical solutions that can achieve this business goal. Therefore, please describe the business instead of describing the technical implementation of the function or plan.
Please describe the business scenario in detail and try to answer the following questions:
- What kind of business are you in? As an ordinary person, how can I use your products and services? Please give a real example.
- What problems are you solving in your business with SRS? Please give a real example.
- How is the demand or function you proposed for SRS applied in the business? Please give an example.
Note: If it is inconvenient to talk in the group, you can send it to me privately on WeChat.
The SRS Stack server open-source community works like this: you submit application scenarios, and we will prioritize implementation, using real nails to choose hammers, and welcome everyone to participate~
Unable to achieve the desired effect
If the expected effect is not achieved, such as high latency or failure to push and pull streams, the following methods can solve all problems:
Don't change a word, follow the video tutorial and application scenario guidance, mouse operation copy and paste, it will definitely work well!
Don't change a word, follow the video tutorial and application scenario guidance, mouse operation copy and paste, it will definitely work well!
Don't change a word, follow the video tutorial and application scenario guidance, mouse operation copy and paste, it will definitely work well!
Because the only reason everyone has problems is that they think audio and video are simple and make random changes!
The difference between SRS Stack and SRS
SRS is an open-source server, a streaming media server, which generally works with FFmpeg and WebRTC clients to achieve audio and video capabilities. Please see this diagram to understand what SRS is.
SRS Stack is an audio and video solution that is based on SRS, Nodejs, REACT, etc. to implement common audio and video scenarios. Please see this diagram to understand what SRS Stack is.
After SRS is installed, it opens a streaming media server demo page with links to the player and console; after SRS Stack is installed, it opens a login management backend that provides guidance for many different scenarios.
If you need to study the streaming media server in detail, please follow the SRS documentation and join the SRS community, and do not ask in the SRS Stack group. SRS is an open-source audio and video server, aimed at highly skilled C/C++ programmers, and you can modify it at will, with strong customization capabilities.
If you want an out-of-the-box audio and video platform that can be used online, please use SRS Stack and do not ask in the SRS community. The meaning of SRS Stack is SRS in the cloud. It is a cloud-based service aimed at users who do not need to understand the details of audio and video and can operate according to the tutorial.
Both are open-source projects, and contributions are welcome.
The difference with aaPanel
aaPanel is a virtual machine management tool, and SRS Stack Server is an out-of-the-box audio and video solution. aaPanel can also install SRS Stack, please refer to supported platforms.
Note: The overseas version of Baota is called aaPanel, which also supports SRS Stack; if your machine is overseas, please do not use Baota, but use aaPanel; everyone uses different installation sources, and using Baota overseas may be very slow or even fail.
The difference with Video Cloud
Video Cloud is a large-scale service scenario, such as cloud live broadcasting, TRTC, IM, cloud on-demand, CDN, Tencent Meeting or ZOOM, which are all super-large-scale systems.
SRS Stack Server puts all these systems in a single
Lighthouse/CVM/Droplet/aaPanel cloud server, so it is mainly comprehensive, but the concurrency and scale are very small, only suitable for small and micro scenarios, quickly building applications to achieve business, understanding and learning new scenarios, and can run and slowly see how to implement.
Of course, in the future, SRS Stack Server will also support migration to mature video cloud services, allowing everyone to quickly meet business requirements while also getting scalable support as the business grows.
How to reinstall the system
If you already have a
Lighthouse/CVM/Droplet, or there is a problem with the image, you can reinstall the image to solve it. Do not log in and mess around by yourself, it will only cause more problems, it is better to choose to reinstall the system directly.
Take Lighthouse as an example, other platforms operate similarly. First, in the application management, select Reinstall System:
Then, in the image type, select
Application Image, and then select the corresponding
SRS image, as shown below:
Finally, click Confirm and OK, and it will be reinstalled very quickly.
How to authorize troubleshooting
How to authorize machine permissions when a problem occurs? It is recommended to use aaPanel:
- Panel settings.
- Security settings.
- Temporary access authorization management.
- Create temporary authorization.
Send the temporary authorization address to the troubleshooting classmates.
Regarding the open API, using AP to dock with SRS Stack, you can follow the guide in
System Configuration > OpenAPI.
All operations of SRS Stack are done by calling the API, and these APIs can be seen in the Chrome Network panel for specific requests.
All operations that can be completed on the SRS Stack page can be completed through OpenAPI.
SRS Stack (i.e., SRS Stack Server) is an open-source solution implemented in nodejs, with the code in srs-stack. Everyone is welcome to join.
SRS Stack Server is aimed at mouse programming, allowing everyone to do audio and video business. It is suitable for those who do not understand audio and video, those who understand audio and video, those who farm, those who pull network cables, those who cut movies, those who carry cameras, those who dance, those who sing, those who sell second-hand goods, those who exchange open-source projects, those who live on multiple platforms, those who build their own source stations, those who can use computers and have WeChat, and those who are law-abiding citizens.
For instructions on using SRS Stack, please refer to the video SRS Stack Server: Getting Started, Purchasing, and Introduction.
Currently, the scenarios and functions supported by SRS Stack include:
- SRS Stack: Getting Started, Purchasing, and Introduction: How to purchase and set up the environment, a must-read.
SupportedDocking with aaPanel or aaPanel: SRS can be installed with aaPanel, supporting all CentOS or Ubuntu machines, and can be installed with aaPanel command line after installing SRS.
SupportedPrivate Live Room: OBS pushes the stream to SRS, and you can watch movies with good friends, private live rooms, exclusive BGP bandwidth, and watch whatever you want.
SupportedUltra HD Real-Time Live Streaming: Using SRT low-latency push streaming, you can also do conferences, much clearer than WebRTC, and suitable for other low-latency SRT scenarios.
SupportedLocal Recording: Record to the local file of the SRS Stack server and provide HLS download. #42
SupportedRecording to Cloud Storage: Avoid local disk limitations and facilitate subsequent live stream processing, support recording video streams to cloud storage, see details in #1193.
SupportedRecording to Cloud VOD: A more advanced capability than cloud recording, cloud storage is unlimited disk, and cloud VOD is a short video system, more convenient and more advanced.
SupportedMulti-Platform Rebroadcast: Push the stream to SRS Stack and forward it to video platforms such as Weishi, Kuaishou, Bilibili, Douyin, etc., see details in #2676.
SupportedDocking with WordPress: Support WordPress plugin and Typecho plugin, insert live stream address in Post.
SupportedDigitalOcean Image: Overseas support for DigitalOcean Droplet image, multi-language version in Chinese and English.
SupportedVirtual Live Streaming: Server-side OBS, pushing VOD files, images, or streams to live streaming, with simple layout capabilities.
SupportedOne-click Automatic HTTPS: Upload HTTPS certificate, or one-click automatic application for Let's Encrypt certificate, a basic capability of the WebRTC scenario.
SupportedSupport self-host HLS CDN, to serve 10k+ viewers
In planningCloud Camera: Support camera GB access, support cloud platform, cloud recording.
In planningE-commerce Live Room: Live room, text chat capability, with product list and purchase, etc., see details in #2858.
In planningInteractive Live Streaming: Live room, support file chat, send gifts and likes, etc.
In planningCloud Live Streaming: Docking with cloud live streaming or CDN distribution, support millions of people watching, docking with CDN distribution stream.
In planningOne-on-one chat: One-on-one chat on all platforms, see details in #2857.
In planningVideo Conference: Multi-person video conference, see details in #2924.
In planningLive Transcoding: Use FFmpeg to transcode live streams into multiple live streams, allowing different devices to watch different bit rates, see details in #2869.
In planningCloud Director: Cloud OBS, add watermark, LOGO, background music, multi-channel switching to live stream.
In planningDevelopment Environment: Contains the source code of audio and video related tools, such as OBS and WebRTC, development environment, see details in #2891.
In planningAI: Face detection, object recognition, automatic subtitles, etc.
In planningDocking with Moodle: Support Moodle plugin, open-source online education website.
In planningGraphical Dashboard: Display background data in the form of charts, such as CPU, etc., see details in Prometheus.
Welcome to join the group to discuss the use of SRS Stack. All these SRS peripheral services are open-source and can be customized and deployed by yourself.
The following are the update records for the SRS Stack server.
- Refine README. v5.10.1
- Refine DO and droplet release script. v5.10.2
- VLive: Fix bug of link. v5.10.2
- Record: Fix bug of change record directory. v5.10.2 (#133)
- Streaming: Add SRT streaming. v5.10.2
- Streaming: Add OBS SRT streaming. v5.10.3
- Fix lighthouse script bug. v5.10.4
- Update NGINX HLS CDN guide. v5.9.2
- Move DVR and VoD to others. v5.9.3
- Remove the Tencent CAM setting. v5.9.4
- Refine Virtual Live start and stop button. v5.9.5
- Refine Record start and stop button. v5.9.6
- Refine Forward start and stop button. v5.9.7
- Move SRT streaming to others. v5.9.8
- Support vlive to use server file. v5.9.9
- Add test for virtual live. v5.9.10
- Add test for record. v5.9.11
- Add test for forward. v5.9.12
- Refine test to transmux to mp4. v5.9.13
- Upgrade jquery and mpegtsjs. v5.9.14
- Support authentication for SRS HTTP API. v5.9.15
- Don't expose 1985 API port. v5.9.16
- Load environment variables from /data/config/.srs.env. v5.9.17
- Change guide to use $HOME/data as home. v5.9.18
- Translate forward to English. v5.9.19
- Refine record, dvr, and vod files. v5.9.20
- Translate record to English. v5.9.21
- Refine virtual live files. v5.9.22
- Translate virtual live to English. v5.9.23
- Support always open tabs. v5.9.24
- Remove record and vlive group. v5.9.25
- Refine project description. v5.9.26
- Refine DO and droplet release script. v5.9.27
- Fix bug, release stable version. v5.9.28
- VLive: Fix bug of link. v5.9.28
- Record: Fix bug of change record directory. v5.9.28 (#133)
- Streaming: Add SRT streaming. v5.9.28
- Always dispose DO VM and domain for test. v1.0.306
- Fix docker start failed, cover by test. v1.0.306
- Switch default language to en. v1.0.306
- Support include for SRS config. v1.0.306
- Support High Performance HLS mode. v1.0.307
- Show current config for settings. v1.0.307
- Switch MIT to AGPL License. v1.0.307
- Use one version strategy. v5.8.20
- Always check test result. v5.8.21
- SRT: Enable srt in default vhost. v5.8.22
- Add utest for HP HLS. v5.8.23
- Migrate docs to new website. v5.8.23
- BT and aaPanel plugin ID should match filename. v5.8.24
- Add Nginx HLS Edge tutorial. v5.8.25
- Download test file from SRS. v5.8.26
- Do not require version. v5.8.26
- Fix Failed to execute 'insertBefore' on 'Node'. v5.8.26
- Eliminate unused callback events. v5.8.26
- Add docker for nginx HLS CDN. v5.8.27
- Update SRS Stack architecture. v5.8.27
- Use DO droplet s-1vcpu-1gb for auto test. v5.8.28
- Use default context when restore hphls. v5.8.28
- Support remote test. v5.8.29
- Enable CORS and timestamp in HLS. v5.8.30
- Release stable version. v5.8.31
- Refine DigitalOcean droplet image. v1.0.302
- Support local test all script. v1.0.302
- Rewrite script for lighthouse. v1.0.303
- Set nginx max body to 100GB. v1.0.303
- Use LEGO instead of certbot. v1.0.304
- Rename SRS Cloud to SRS Stack. v1.0.304
- Support HTTPS by SSL file. v1.0.305
- Support reload nginx for SSL. v1.0.305
- Support request SSL from letsencrypt. v1.0.305
- Support work with bt/aaPanel ssl. v1.0.305
- Support self-sign certificate by default. v1.0.305
- Query configured SSL cert. v1.0.305
- 2023.08.13: Support test online environment. v5.7.19
- 2023.08.20: Fix the BT and aaPanel filename issue. v5.7.20
- 2023.08.06, v1.0.301, v5.7.18
- Simplify startup script, fix bug, adjust directory to
/datatop-level directory. v1.0.296
- Improve message prompts, script comments, and log output. v1.0.297
- Avoid modifying the global directory every time it starts, initialize it in the container and platform script. v1.0.298
- Improve release script, check version matching, manually update version. v1.0.299
- Remove upgrade function, maintain consistency of docker and other platforms. v1.0.300
- Improved BT and aaPanel scripts, added test pipeline. v1.0.300
- Always use the latest SRS 5.0 release. v1.0.301
- Use status to check SRS, not by the exit value. v1.0.301
- Simplify startup script, fix bug, adjust directory to
- 2023.04.05, v1.0.295, structural improvements
- Remove HTTPS certificate application, administrator authorization, NGINX reverse proxy, and other functions. v1.0.283
- Implement Release using Go, reducing memory requirements and image size. v1.0.284
- Remove dashboard and Prometheus, making it easier to support a single Docker image. v1.0.283
- Implement mgmt and platform using Go, reducing memory requirements and image size. v1.0.283
- Use Ubuntu focal(20) as the base image, reducing image size. v1.0.283
- Support fast upgrade, installation in about 40 seconds, upgrade in about 10 seconds. v1.0.283
- Solve the problem of forwarding without stream. v1.0.284
- Solve the problem of uploading large files and getting stuck. v1.0.286
- Remove AI face-changing video, B station review did not pass. v1.0.289 (stable)
- Remove Redis container and start Redis directly in the platform. v1.0.290
- Remove SRS container and start SRS directly in the platform. v1.0.291
- Support single container startup, including mgmt in one container. v1.0.292
- Support mounting to
/datadirectory for persistence. v1.0.295
- 2023.02.01, v1.0.281, experience improvement, Stable version.
- Allow users to turn off automatic updates and use manual updates.
- Adapt to the new version of Bao Ta, solve the nodejs detection problem.
- Bao Ta checks the plug-in status, and cannot operate before the installation is complete.
- Improve the display of forwarding status, add
- Improve image update, not strongly dependent on certbot. #47
- Merge hooks/tencent/ffmpeg image into the platform. v1.0.269
- Support custom platform for forwarding. v1.0.270
- Support virtual live broadcast, file-to-live broadcast. v1.0.272
- Upload file limit 100GB. v1.0.274
- Fix bug in virtual live broadcast. v1.0.276
- Release service, replace Nodejs with Go, reduce image size. v1.0.280
- Do not use buildx to build single-architecture docker images, CentOS will fail. v1.0.281
- 2022.11.20, v1.0.256, major version update, experience improvement, Release 4.6
- Proxy root site resources, such as favicon.ico
- Support SrsPlayer WebRTC push stream shortcode.
- Support local recording, recording to SRS Stack local disk.
- Support deleting local recording files and tasks.
- Support local recording as MP4 files and downloads.
- Support local recording directory as a soft link, storing recorded content on other disks.
- Improve recording navigation bar, merge into recording.
- Resolve conflicts between home page and proxy root directory.
- Solve the problem of not updating NGINX configuration during upgrade.
- Fix the bug of setting record soft link.
- Replace all images with standard images
- Support setting website title and footer (filing requirements).
- Prompt administrator password path, can retrieve password when forgotten.
- Allow recovery of the page when an error occurs, no need to refresh the page.
- 2022.06.06, v1.0.240, major version update, Bao Ta, Release 4.5
- Reduce disk usage, clean up docker images
- Improve dependencies, no longer strongly dependent on Redis and Nginx
- Support Bao Ta or aaPanel plugin, support CentOS or Ubuntu command line installation
- Migrate ossrs.net to lightweight server, no longer dependent on K8s.
- Login password default changed to display password.
- Stop pushing stream for a certain time, clean up HLS cache files.
- Create a 2GB swap area if memory is less than 2GB.
- Support collecting SRS coredump.
- Live scene display SRT push stream address and command.
- Support setting NGINX root proxy path.
- 2022.04.18, v1.0.222, minor version update, containerized Redis
- Improve instructions, support disabling push stream authentication.
- Support English guidance, medium articles.
- Improve simple player, support mute autoplay.
- Add CORS support when NGINX distributes HLS.
- Add English guidance, Create SRS and Set up HTTPS, WordPress.
- Enhance key length, strengthen security, and avoid brute force cracking.
- Support WordPress Shortcode guidance.
- Support setting home page redirection path, support mixed running with other websites.
- Support setting reverse proxy, support hanging other services under NGINX.
- Support applying for multiple domain names for HTTPS, solving the
wwwprefix domain name problem.
website, can set home page redirection and footer filing number.
- Improve NGINX configuration file structure, centralize configuration in
- Support setting simple load balancing, randomly selecting a backend NGINX for HLS distribution.
- Containers work in an independent
System > Toolsoption.
- Use Redis container, not dependent on host Redis service.
- 2022.04.06, v1.0.200, major version update, multi-language, Release 4.4
- 2022.03.18, v1.0.191, minor version update, experience improvement
- Scenes default to display tutorial.
- Support SRT address separation, play without secret.
- Separate Platform module, simplify mgmt logic.
- Improve UTest upgrade test script.
- Support changing stream name, randomly generating stream name.
- Support copying stream name, configuration, address, etc.
- Separate upgrade and UI, simplify mgmt logic.
- Separate container management and upgrade.
- Fast and efficient upgrade, completed within 30 seconds.
- Support CVM image, see SRS CVM.
- 2022.03.16, v1.0.162, Major version update, error handling, Release 4.3
- Support for React Error Boundary, friendly error display.
- Support for RTMP push QR code, core image guidance.
- Support for simple player, playing HTTP-FLV and HLS.
- Improved callbacks, created with React.useCallback.
- Improved page cache time, increased loading speed.
- Added REACT UI components and Nodejs project testing.
- Added script for installing dependency packages.
- Improved simple player, not muted by default, requires user click to play.
- Added Watermelon Player xgplayer, playing FLV and HLS
- 2022.03.09, v1.0.144, Minor version update, multi-platform forwarding
- Support for multi-platform forwarding, video number, Bilibili, Kuaishou.
- Restart forwarding task when modifying forwarding configuration.
- Support for setting upgrade window, default upgrade from 23:00 to 5:00.
- Support for jest unit testing, covering mgmt.
- Support for switching SRS, stable version and development version.
- Optimized display of disabled container status.
- 2022.03.04, v1.0.132, Minor version update, cloud on-demand
- Support for cloud on-demand, HLS and MP4 downloads.
- Cloud on-demand supports live playback, updating SessionKey.
- Disable password setting during upgrade to avoid environment variable conflicts.
- Restart all containers dependent on .env when initializing the system.
- Update the differences between cloud recording and cloud on-demand.
- SRT supports vMix tutorial.
- 2022.02.25, v1.0.120, Minor version update, cloud recording
- Improved upgrade script, restarting necessary containers.
- Modified Redis listening port, enhanced security.
- Resolved cloud recording, asynchronous long time (8h+) conflict issue.
- Improved key creation link, using cloud API key.
- Improved scene and settings TAB, loaded on demand, URL address identification.
- 2022.02.23, v1.0.113, Minor version update, cloud recording
- 2022.02.14, v1.0.98, Major version update, upgrade, Release 4.2
- Improved React static resource caching, increasing subsequent loading speed.
- Added Contact exclusive group QR code, scan code to join group.
- Support for setting Redis values, disabling automatic updates.
- Automatically detect overseas regions, use overseas sources for updates and upgrades.
- Improved upgrade prompts, countdown and status detection.
- Display video tutorials created by everyone on the page, sorted by play count.
- Support for authorizing platform administrators to access Lighthouse instances.
- Small memory systems, automatically create swap to avoid OOM during upgrades.
- 2022.02.05, v1.0.74, minor update, dashboard
- Support for Prometheus monitoring, WebUI mounted on
/prometheus, no authentication for now.
- Support for Prometheus NodeExporter, node monitoring, Lighthouse's CPU, network, disk, etc.
- Added dashboard, added CPU chart, can jump to Prometheus.
- Improved certbot, started with docker, not an installation package.
- Improved upgrade process to prevent duplicate upgrades.
- Support for upgrading machines with 1GB memory, disabling node's GENERATE_SOURCEMAP to prevent OOM.
- Support for Prometheus monitoring, WebUI mounted on
- 2022.02.01, v1.0.64, minor update, HTTPS
- Support for Windows version of ffplay to play SRT addresses
- Support for container startup hooks, stream authentication and authorization
- Change Redis listening on lo and eth0, otherwise container cannot access
- Support for setting HTTPS certificates, Nginx format, refer to here
- Support for Let's Encrypt automatic application of HTTPS certificates, refer to here
- 2022.01.31, v1.0.58, minor update, SRT
- Support for ultra-clear real-time live streaming scenarios, SRT push and pull streaming, 200~500ms latency, refer to here
- Chip/OBS+SRS+ffplay push and pull SRT stream address, support authentication.
- Support for manual upgrade to the latest version, support for forced upgrade.
- Improved upgrade script, execute after updating the script
- Support for restarting SRS server container
- 2022.01.27, v1.0.42, major update, stream authentication, Release 4.1
- Support for push stream authentication and management backend
- Support for updating backend, manual update
- Live room scenario, push stream and play guide
- SRS source code download, with GIT
- Support for Lighthouse image, refer to SRS Lighthouse.
- 2022.01.21, Initialized.
- Video Guides
- How to get started
- How to upgrade
- How to set a domain
- Supported platforms
- How to push multiple streams
- Too many machine resources
- Low bandwidth, increase bandwidth
- How to set up free HTTPS
- How to modify the push authentication key
- How to disable push authentication
- How to record to local disk
- Difference between cloud recording and cloud on-demand
- How to record to cloud storage
- Unable to access after installation
- Difference between SRS Restream and OBS Restream
- How SRS Restreams to Custom Platforms
- How to Replace FFmpeg
- Baota Installation of SRS is Very Slow
- How to Install the Latest SRS Stack on Baota
- aaPanel CentOS7 Installation Failure
- How to implement the proposed features and how to record videos
- Unable to achieve the desired effect
- The difference between SRS Stack and SRS
- The difference with aaPanel
- The difference with Video Cloud
- How to reinstall the system
- How to authorize troubleshooting