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
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
Jacob Su
75ddd8f5b6
Fix misspelling error in app config. v6.0.133 ( #4077 )
...
1. misspelling fix;
2. remove finished TODO;
---------
Co-authored-by: Haibo Chen <495810242@qq.com>
2024-06-29 11:18:26 +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
3e2f8622f8
APM: Support distributed tracing by Tencent Cloud APM. v5.0.63
2022-09-16 18:54:28 +08:00
winlin
d117145b95
Update date from 2021 to 2022.
2022-06-20 19:22:25 +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
19c0a9eb4b
Suqash: Merge 4.0
2021-09-05 14:17:41 +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
8b74c7cb89
SquashSRS4: Happy 2021
2021-04-16 09:29:43 +08:00
winlin
248085edfe
For #2109 , Add more utest for srs_string_split
2021-01-07 12:30:51 +08:00
xbpeng121
47422b7819
GB28181: 无法对接平台问题及一些小bug ( #2109 )
...
* 1-新增srs_string_split2函数,该函数支持空串也能按照原有顺序进行切分并放入数组
2-SrsGb28181Device增加属性字段,并在收到catalog命令时能够更新该属性
3-修复sip包解包不严谨bug(body中有可能会有SRS_RTSP_CRLFCRLF那么导致header_body[1]就不一定是body了可能只是body的一部分)
* 1-修复停用rtp多路复用参数(invite_port_fixed)不起作用bug
* bugfix: 当srs发送invite时会指定一个ssrc作为流媒体序列号,但有些平台发流时并不使用这个作为ssrc,而是自己新生成一个。(修复该bug是在invite response时解析内容中的sdp,把对方生成的流媒体序列号ssrc读出来,并且更新srs的channel映射)
* Update push.gb28181.conf
恢复成原来的conf
* bugfix,在取得muxer时需要更新。之前写反了
* Merge branch 'develop' into 4.0release
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 修改sdp_map相同属性的连接符
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 修改sdp_map相同属性的连接符
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 回退原来代码
* 删除parse_sdp存储至map相关代码
* 格式恢复
* 格式恢复
* 恢复格式
* srs_string_split() 函数的bugfix
Co-authored-by: xbpeng <xianbin.peng@sibat.cn>
2021-01-06 15:37:02 +08:00
莫战
dc7124cd05
support base64 encode
2020-12-01 16:04:55 +08:00
winlin
8c1eca98b0
Merge SRS3.0
2020-10-31 19:25:56 +08:00
winlin
86f8cbb5eb
Remove some global elements for debugging. 3.0.152
2020-10-31 18:01:16 +08:00
winlin
deb54b8866
Core: Refine utility string/hex
2020-07-13 14:30:44 +08:00
winlin
ed338f4c0a
Refactor macro SRS_AUTO_XXX to SRS_XXX.
2020-04-29 20:02:28 +08:00
winlin
c339542ce0
Support macOS OSX
2020-03-28 17:20:40 +08:00
winlin
10464a5fbe
Always use string instance to avoid crash risk. 3.0.95
2020-01-05 22:17:15 +08:00
winlin
d783a12f89
Happy 2020
2019-12-30 10:10:35 +08:00
winlin
2df1dcb05a
Fix HTTP-FLV and VOD-FLV conflicting bug.
2019-12-17 16:01:04 +08:00
winlin
e045b0a619
We prefer ipv4, only use ipv6 if ipv4 is disabled. 3.0.59
2019-10-07 10:34:55 +08:00
winlin
8b595c4cdf
Cover more kernel time.
2019-05-15 08:57:46 +08:00
winlin
35fe05d62c
Refine typo in kernel.
2019-04-22 09:19:05 +08:00
winlin
53357e92fe
Refine headers
2019-04-11 09:27:16 +08:00
winlin
170cca1f58
Refine srs_get_system_startup_time in time unit
2019-04-10 09:11:54 +08:00
winlin
6c12aa0eca
Refine srs_update_system_time in time unit
2019-04-10 09:07:03 +08:00
winlin
9b7c0802a9
Refine srs_update_system_time in time unit
2019-04-10 08:32:46 +08:00
winlin
b2d1d84634
Change to 2019
2019-01-01 21:37:28 +08:00
winlin
ba4ef34d27
Merge 2.0release
2018-11-27 21:24:51 +08:00
MakarovYaroslav
e62ac29f48
add ignoring _definst_ at the end of app ( #1261 )
2018-11-11 13:31:29 +08:00
Harlan
22c5af62cf
Merge branch '3.0release' of https://github.com/ossrs/srs into 3.0release
...
# Conflicts:
# trunk/src/kernel/srs_kernel_utility.hpp
2018-08-15 07:37:12 +08:00
Harlan
ac6b37de4b
rewrite ff_data_to_hex
2018-08-12 14:10:18 +08:00
winlin
41c6e833b9
Replace hex to string to match MIT license. 3.0.33
2018-07-22 18:47:38 +08:00
winlin
84f81983aa
Replace base64 to match MIT license. 3.0.32
2018-07-22 17:56:38 +08:00
Harlan
52596a0b04
add HLS encryption feature
2018-03-25 12:05:52 +08:00
winlin
ca1395a807
Change date from 2017 to 2018
2018-01-07 10:58:53 +08:00
winlin
922a8f3a5c
For #988 , refine code.
2018-01-01 22:45:22 +08:00
Thomas Dreibholz
feaae341b9
IPv6 support (for 3.0 release) ( #988 )
...
* IPv6 support, part 1.
* IPv6 support, part 2.
* Some more IPv6 work.
* Made functions for address:port paŕsing IPv6-capable.
* Fixed type (compile warning).
* Fixed formatting.
* Reverted option change.
* Replaced abort() by proper error handling.
* Also retrieving local IPv6 addresses now.
2018-01-01 22:43:58 +08:00
winlin
204ef041da
For #913 , Kernel MP4 FLV HTTP support complex error.
2017-12-31 12:11:48 +08:00
winlin
abcaba33ee
For #913 : TS/HLS/MPEGTS support complex error
2017-09-22 21:50:54 +08:00
winlin
0a57a46016
Refine LICENSE
2017-03-25 21:29:29 +08:00
winlin
f32aab3d92
For #299 , refine code.
2017-03-25 17:21:39 +08:00
winlin
afbc3443f3
fix #738 , support DVR general mp4. 3.0.17
2017-02-07 21:56:20 +08:00
winlin
b16ab038ce
for #742 , refine the u_intxx_t to uintxx_t
2017-01-30 17:32:18 +08:00