Winlin
35e2808f0c
Support IPv6 for all protocols: RTMP, HTTP/HTTPS, WebRTC, SRT, RTSP. v7.0.67 ( #4457 )
...
This PR adds comprehensive IPv6 support to SRS for all major protocols,
enabling dual-stack (IPv4/IPv6) operation across the entire streaming
server.
Key Features:
* RTMP/RTMPS: IPv6 support for streaming ingestion and playback
* HTTP/HTTPS: IPv6 support for HTTP-FLV streaming and API endpoints
* WebRTC: IPv6 support for UDP/TCP media transport (WHIP/WHEP)
* SRT: IPv6 support for low-latency streaming
* RTSP: IPv6 support for standards-based streaming
For config, see `conf/console.ipv46.conf` for example.
Publish RTMP or RTMPS via IPv6:
```bash
ffmpeg -re -i ./doc/source.flv -c copy -f flv 'rtmp://[::1]:1935/live/livestream'
ffmpeg -re -i ./doc/source.flv -c copy -f flv 'rtmps://[::1]:1443/live/livestream'
```
Play RTMP or RTMPS stream via IPv6 by ffplay:
```bash
ffplay 'rtmp://[::1]:1935/live/livestream'
ffplay 'rtmps://[::1]:1443/live/livestream'
```
Play by IPv6 via HTTP streaming:
* HTTP-FLV:
[http://[::1]:8080/live/livestream.flv ](http://[::1]:8080/players/srs_player.html )
* HTTPS-FLV:
[https://[::1]:8088/live/livestream.flv ](https://[::1]:8088/players/srs_player.html )
To access HTTP API via IPv6:
* HTTP API: `curl 'http://[::1]:1985/api/v1/versions '`
* HTTPS API: `curl -k 'https://[::1]:1990/api/v1/versions '`
```json
{
"code": 0,
"data": {
"major": 7,
"minor": 0,
"revision": 66,
"version": "7.0.66"
}
}
```
Using HTTP API, publish by IPv6 WHIP via
[HTTP](http://[::1]:8080/players/whip.html ), and play by
[WHEP](http://[::1]:8080/players/whep.html )
* WHIP: `http://[::1]:1985/rtc/v1/whip/?app=live&stream=livestream `
* WHEP: `http://[::1]:1985/rtc/v1/whep/?app=live&stream=livestream `
Using HTTPS API, publish by IPv6 WHIP via
[WHIP](https://[::1]:8088/players/whip.html ), and play by
[WHEP](https://[::1]:8088/players/whep.html )
* WHIP: `https://[::1]:1990/rtc/v1/whip/?app=live&stream=livestream `
* WHEP: `https://[::1]:1990/rtc/v1/whep/?app=live&stream=livestream `
Publish SRT stream by FFmpeg via IPv6:
```bash
ffmpeg -re -i ./doc/source.flv -c copy -pes_payload_size 0 -f mpegts \
'srt://[::1]:10080?streamid=#!::r=live/livestream,m=publish'
```
Play SRT stream by ffplay via IPv6:
```bash
ffplay 'srt://[::1]:10080?streamid=#!::r=live/livestream,m=request'
```
Play RTSP stream by ffplay via IPv6:
```bash
ffplay -rtsp_transport tcp -i 'rtsp://[::1]:8554/live/livestream'
```
---------
Co-authored-by: OSSRS-AI <winlinam@gmail.com>
2025-08-30 08:52:21 -04:00
Winlin
1fa2cba7c0
Organize utility functions to kernel. v7.0.65 ( #4455 )
2025-08-27 21:35:58 -04:00
Winlin
1b6f97bd2d
Refine source lock to fix race condition in source managers. v7.0.61 ( #4449 )
...
This PR fixes a critical race condition in SRS source managers where
multiple coroutines could create duplicate sources for the same stream.
- **Atomic source creation**: Source lookup, creation, and pool
insertion now happen atomically within lock scope
- **Consistent interface**: Standardize on `ISrsRequest*` interface
throughout codebase
- **Handler simplification**: Remove `ISrsLiveSourceHandler*` parameter,
obtain from global server instance
---------
Co-authored-by: OSSRS-AI <winlinam@gmail.com>
2025-08-23 07:36:41 -06:00
Winlin
6e1134fe9b
Use clang format. v7.0.52 ( #4433 )
...
---------
Co-authored-by: ChenGH <chengh_math@126.com>
2025-08-11 23:19:19 -04:00
ChenGH
13597d1b7f
update copyright to 2025. v5.0.218 v6.0.159 v7.0.21 ( #4271 )
...
update copyright to 2025
---------
Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
2025-01-14 17:35:18 +08:00
Winlin
e7069788e9
SmartPtr: Support shared ptr for live source. v6.0.129 ( #4089 )
...
Detail change log:
1. [Simple,Refactor] Remove member fields of http entry, etc.
e34b3d3aa4
2. [Ignore] Rename source to live_source.
846f95ec96
3. [Ignore] Use directly ptr in consumer.
d38af021ad
4. [Complex, Important] Use shared ptr for live source.
88f922413a
The object relationship:

---
Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-06-15 07:54:56 +08:00
winlin
2a2da2253f
Switch to 2013-2024. v6.0.109
2024-01-01 10:51:24 +08:00
winlin
29eff1a242
Refine LICENSE.
2023-10-23 14:33:19 +08:00
winlin
c46ef81ff2
SRS5: Update license date to 2023. v5.0.123
...
PICK 72f8ed4916
2023-01-01 08:56:20 +08:00
winlin
d117145b95
Update date from 2021 to 2022.
2022-06-20 19:22:25 +08:00
winlin
fa78cf3354
Prefix with srs_protocol in protocol directory.
2022-06-09 20:26:58 +08:00
winlin
665ad564fb
Rename service to protocol files.
2022-06-09 19:59:51 +08:00
winlin
d5c86dc5fa
Switch LICENSE from MIT to **MIT or MulanPSL-2.0**. v5.0.21
2022-01-13 18:40:22 +08:00
Winlin
c8a1e0f3da
Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8 ( #2464 )
...
* Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8
* Update README.md
* Update README.md
* Refine format for AUTHORS.md
2021-07-08 14:30:47 +08:00
winlin
15901cacee
SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3
2021-05-31 13:42:20 +08:00
winlin
e3bca883e1
SuqashSRS4: Build SRT native
2021-05-16 16:14:00 +08:00
winlin
8b74c7cb89
SquashSRS4: Happy 2021
2021-04-16 09:29:43 +08:00
winlin
d783a12f89
Happy 2020
2019-12-30 10:10:35 +08:00
winlin
5a3fd1e68a
Release v3.0-a2, 3.0.67
2019-12-01 19:24:17 +08:00
winlin
e5285ecabf
Fix #1501 , use request ip for origin cluster. 3.0.66
2019-11-30 18:50:24 +08:00
winlin
b2d1d84634
Change to 2019
2019-01-01 21:37:28 +08:00
winlin
bd797ad385
Fix utest build failed for ::atoi
2018-03-03 09:33:15 +08:00
winlin
c70421e656
Fix #464 , support origin cluster
2018-02-16 16:39:07 +08:00
winlin
2f09ec4353
For #464 , refine result of origin cluster api
2018-02-16 14:13:14 +08:00
winlin
55c96192e2
For #464 , refine code
2018-02-16 10:19:48 +08:00
winlin
ec362b2774
For #464 , query origin info and ip addresses
2018-02-16 09:37:31 +08:00
winlin
469250f850
For #464 , support origin cluster api
2018-02-15 20:55:34 +08:00