Alessandro Ros
44fda6650f
rtsp server: make runOnConnect work again ( #1409 )
2023-01-22 21:30:03 +01:00
Alessandro Ros
b02d3b83c7
Send additional fields to the external authentication URL ( #1408 )
...
* send 'protocol' to the external authentication URL
* send session ID to the external authentication URL
2023-01-22 19:48:33 +01:00
Alessandro Ros
bf97435eb3
replace command line parser ( #1383 )
2023-01-16 21:45:20 +01:00
aler9
79562b15ab
update gortsplib
2023-01-11 01:11:05 +01:00
aler9
36d2fbcd12
hls muxer: fix race condition
2023-01-08 21:57:15 +01:00
aler9
d5dfce16ea
hls muxer: fix race condition
2023-01-08 21:16:20 +01:00
aler9
20448ec6a8
webrtc muxer: fix sending local candidates
2023-01-08 19:18:13 +01:00
aler9
7420ef1ce4
hls muxer: avoid infinite loop when hlsAlwaysRemux is true
...
when hlsAlwaysRemux is true and a muxer fails, add a pause between its
recreation, in order to avoid infinite loops
2023-01-08 16:08:10 +01:00
aler9
b20abbed6c
webrtc muxer: keep the WebSocket connection
...
The WebSocket connection is kept open in order to use it to notify
shutdowns.
2023-01-08 15:37:47 +01:00
aler9
f3f55452e5
webrtc muxer: fix multiple race conditions
2023-01-08 13:36:55 +01:00
aler9
2de0941e5c
update gortsplib
2023-01-08 13:36:27 +01:00
aler9
e7e8d5ce20
api: add more attributes to WebRTC connections
...
new attributes: peerConnectionEstablished, localCandidate, remoteCandidate
2023-01-07 13:48:03 +01:00
aler9
cca4702357
webrtc muxer: fix race condition
...
this happened when server was recreated due to API or hot reloading
2023-01-07 13:11:19 +01:00
aler9
9d19ccc837
add WebRTC and low-latency HLS tests
2023-01-07 12:33:28 +01:00
aler9
ec1f957627
webrtx muxer: fix timeout in case of H264 tracks
2023-01-06 20:30:43 +01:00
aler9
777860f757
webrtc muxer: fix freeze on Firefox
2023-01-06 20:02:23 +01:00
aler9
5a0143056a
webrtc muxer: fix HTTP status code of index page
...
Status code was 404, not is 200.
2023-01-06 18:47:54 +01:00
aler9
f837ba6a83
hls source: support proxying H265 and Opus tracks
2023-01-06 15:39:20 +01:00
aler9
3f7009f72a
hls source: support proxying any number of tracks
...
Tracks were previously limited to 2
2023-01-06 15:25:35 +01:00
aler9
e3fff72b7c
move format processors into dedicated folder
2023-01-05 12:54:00 +01:00
aler9
535cbe41e8
speed up tests
2023-01-05 00:01:15 +01:00
aler9
034e42f463
hls muxer: support reading Opus tracks ( #1338 )
2023-01-03 18:36:13 +01:00
aler9
b26f848613
webrtc: add webrtcICEUDPMuxAddress
2022-12-30 17:23:41 +01:00
aler9
c42e2a5b8a
webrtc: print ICE candidate descriptions
2022-12-30 16:56:55 +01:00
aler9
3e0419358a
fix crash when webrtcICETCPMuxAddress is already taken
2022-12-30 15:42:35 +01:00
andrew-ld
b27c363ecf
(webrtc) added support for ice mux tcp and nat1to1ips ( #1323 )
...
* add webrtcp static tcp mux port
* add ice nat1 host configuration and cleanup
* typo
* rename config keys
* apply codecov suggestions
* apply review suggestions
* typo
* dont use deepequal for WebRTCICETCPMuxAddress
* unexport NewPeerConnection()
* remove Dockerfile
* use an empty list instead of nil value in webrtcICEHostNAT1To1IPs
* drop webrtcICETCPMuxEnable and enable TCP mux when webrtcICETCPMuxAddress is filled
* run go mod tidy
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2022-12-30 15:39:20 +01:00
Alessandro Ros
5de600ffaa
support reading H265 tracks with HLS ( #1342 )
...
* support reading H265 tracks with HLS
* update README
2022-12-29 20:46:31 +01:00
aler9
37baa33fc8
hls muxer: add workaround for bug on latest iPhone iOS
...
In iPhone iOs 16.1.1, the EXT-X-PRELOAD-HINT file is requested without
the last character, and "partXX.mp4" becomes "partXX.mp"
2022-12-29 20:41:21 +01:00
aler9
ec8175e434
fix tests
2022-12-29 16:36:24 +01:00
aler9
fbf8e82db5
update gortsplib
2022-12-28 20:32:03 +01:00
aler9
455b8beff7
simplify code
2022-12-27 18:01:58 +01:00
Alessandro Ros
ad52b3fab7
Support publishing with RTMP and H265 (for OBS Studio) ( #1333 )
...
* support publishing with RTMP and H265 (for OBS Studio)
* rtmp source: block H265 tracks
2022-12-27 13:55:30 +01:00
aler9
738c953a59
update gortsplib
2022-12-22 21:19:06 +01:00
aler9
f394c9f8a8
api: add ID to WebRTC readers ( #1318 )
2022-12-21 12:50:02 +01:00
aler9
bab5caee01
webrtc: fix connection in case of high latency
...
When latency is high, one side of the peer connection switched to the
"connected" state before the other one, and then closed the WebSocket
connection since it's useless after the peer connection has been
established. This caused the other side of the connection to detect a
WebSocket error and to exit.
The WebSocket connection must remain open, otherwise the
"connected" state is not set by both parts.
2022-12-20 13:30:30 +01:00
aler9
ec86401037
webrtc: make HTTPS optional ( #1312 )
2022-12-19 23:26:07 +01:00
aler9
0e68aedf12
webrtc: fix support for video + audio
2022-12-19 23:08:24 +01:00
aler9
aac0f1b8a2
webrtc: fix sending of RTCP sender reports
2022-12-19 22:48:06 +01:00
aler9
ac371d8dca
remove sendrecv comment
2022-12-19 22:13:54 +01:00
aler9
0772db509a
fix freeze when reading a stream with both HLS and RTSP
2022-12-18 23:16:20 +01:00
Alessandro Ros
5efe97abf1
Support reading with WebRTC ( #1242 )
2022-12-16 00:50:47 +01:00
aler9
478607a602
hls muxer: ask credentials again after failed attemps
2022-12-14 23:51:18 +01:00
aler9
57015e2bf0
fix authentication with VLC
...
This fixes the case in which VLC is trying to read a path with a query
(i.e. stream?mykey=myval) and the path requires read credentials.
2022-12-14 19:07:39 +01:00
aler9
6524130ab9
implement resizing of oversized H265 RTP packets
2022-12-14 18:54:35 +01:00
aler9
ffbdf51669
fix handling of oversized H264 RTP packets
...
Resized RTP packets were wrongly mixed with original packets.
Original packets are now discarded correctly.
2022-12-14 17:50:40 +01:00
aler9
39da300345
update H265 track parameters when resolution, VPS, SPS or PPS change
2022-12-14 15:41:59 +01:00
aler9
4bafa4ea9b
add dedicated processors for H265 and Opus
2022-12-13 21:26:35 +01:00
Alessandro Ros
c778c049ce
switch to gortsplib v2 ( #1301 )
...
Fixes #1103
gortsplib/v2 supports multiple formats inside a single track (media). This allows to apply the resizing algorithm to single formats inside medias.
For instance, if a media contains a a proprietary format and an H264 format, and the latter has oversized packets, they can now be resized.
2022-12-13 20:54:17 +01:00
aler9
7ed0a873f5
use Track.String() instead of reflect for getting track names
2022-11-28 11:16:31 +01:00
Alessandro Ros
e605727c78
produce same absolute time in RTSP and HLS ( #1249 )
...
* add a NTP timestamp to each data unit
* use that NTP timestamp in all protocols
2022-11-28 09:00:05 +01:00