srs/trunk/src/utest
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
..
srs_utest_amf0.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_amf0.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_app.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_app.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_avc.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_avc.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_config.cpp Support IPv6 for all protocols: RTMP, HTTP/HTTPS, WebRTC, SRT, RTSP. v7.0.67 (#4457) 2025-08-30 08:52:21 -04:00
srs_utest_config.hpp AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
srs_utest_config2.cpp Support IPv6 for all protocols: RTMP, HTTP/HTTPS, WebRTC, SRT, RTSP. v7.0.67 (#4457) 2025-08-30 08:52:21 -04:00
srs_utest_config2.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_core.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_core.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_fmp4.cpp HLS: Remove deprecated hls_acodec/hls_vcodec configs. v7.0.53 (#4225) 2025-08-13 06:34:05 -04:00
srs_utest_fmp4.hpp Feature: Support HLS with fmp4 segment for HEVC/LLHLS. v7.0.51 (#4159) 2025-08-11 20:55:06 -04:00
srs_utest_gb28181.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_gb28181.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_http.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_http.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_kernel.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_kernel.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_kernel2.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_kernel2.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_mp4.cpp MP4 DVR: Fix audio/video synchronization issues in WebRTC recordings. v6.0.172 v7.0.52 (#4230) 2025-08-12 09:54:29 -04:00
srs_utest_mp4.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_protocol.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_protocol.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_protocol2.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_protocol2.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_protocol3.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_protocol3.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_reload.cpp AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
srs_utest_reload.hpp AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
srs_utest_rtc.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_rtc.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_rtc2.cpp RTC: Fix null pointer crash in RTC2RTMP when start packet is missing. v6.0.175 v7.0.63 (#4451) 2025-08-26 18:46:39 -04:00
srs_utest_rtc2.hpp rtc2rtmp: Support RTC-to-RTMP remuxing with HEVC. v7.0.43 (#4349) 2025-07-03 08:24:42 -04:00
srs_utest_rtc3.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_rtc3.hpp RTC: audio packet jitter buffer. v7.0.48 (#4295) 2025-07-16 21:36:56 -04:00
srs_utest_rtmp.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_rtmp.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_service.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_service.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_source_lock.cpp Refine source lock to fix race condition in source managers. v7.0.61 (#4449) 2025-08-23 07:36:41 -06:00
srs_utest_source_lock.hpp Refine source lock to fix race condition in source managers. v7.0.61 (#4449) 2025-08-23 07:36:41 -06:00
srs_utest_srt.cpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_srt.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_st.cpp Support IPv6 for all protocols: RTMP, HTTP/HTTPS, WebRTC, SRT, RTSP. v7.0.67 (#4457) 2025-08-30 08:52:21 -04:00
srs_utest_st.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00
srs_utest_stream_token.cpp Organize utility functions to kernel. v7.0.65 (#4455) 2025-08-27 21:35:58 -04:00
srs_utest_stream_token.hpp AI: Implement stream publish token system to prevent race conditions across all protocols. v7.0.62 (#4452) 2025-08-26 10:27:53 -04:00
srs_utest.cpp AI: Remove multi-threading support and change to single-thread architecture. v7.0.59 (#4445) 2025-08-20 15:12:51 -06:00
srs_utest.hpp Use clang format. v7.0.52 (#4433) 2025-08-11 23:19:19 -04:00