Commit graph

1120 commits

Author SHA1 Message Date
Balder
fe6ff1dce0 Fix for HTTPS WHIP 2024-07-04 14:20:15 +02:00
Thulinma
e712527d42 Fix RTMP outgoing push timestamps 2024-07-04 13:25:19 +02:00
Thulinma
a1737cdf8b Fix websockets pausing and then playing when the live point is out of the DVR window 2024-07-04 11:49:29 +02:00
Thulinma
56dc2db051 Improve default seeking behaviour for websocket-based outputs 2024-07-04 11:30:58 +02:00
Balder
bd238e367e fixup for websocket based outputs 2024-07-04 10:30:01 +02:00
Thulinma
2f6cc46f88 Fix various RTMP push issues:
- Fix RTMPS pushes, fix RTMP push "secret" Adobe handshake
- Switch RTMP URL parsing to split at last slash rather than first slash
- "Fix" compatibility with GO-RTMP-based RTMP implementations.
- Fix compatibility with Odysee, which does a strict RTMP version check and doesn't like our version 1.2.3.4 I guess..?
2024-07-03 12:33:22 +02:00
Thulinma
f2bb7ffa94 Prevent crash when applying limiter to a non-existing main track 2024-07-03 12:04:32 +02:00
Thulinma
90b16439cd Various HLS fixes:
- Fix HLS streamname length mismatch problems
- Prevent segfault on invalid track ID in HLS
- Fix segfault in HLS output when requesting an index for a track with exactly 1 segment available in the buffer
- Fix another HLS segfault
2024-07-03 12:04:05 +02:00
Thulinma
6eec3661ca Add support for non-URL-compatible parameter parsing (taking + to not mean space, not encoding as such either) and uses it for RTMP auth 2024-07-03 12:02:53 +02:00
Balder
caffcd9935 Disable liveSeek function when specified start time is used. 2024-07-03 12:00:12 +02:00
Thulinma
a4828c087d Prevent 100% CPU usage when no packet is available and we're inserting ghost packets repeatedly. 2024-06-26 17:24:33 +02:00
Thulinma
320ed53212 Fix DTSC pull output key mismatch errors, fix not starting at keyframes 2024-06-10 15:46:11 +02:00
Marco van Dijk
41039483d3 (Hopefully) fix output segfaults on full shared memory page 2024-06-10 15:44:43 +02:00
Thulinma
b103353cf9 Improve WebRTC things, fix CPU usage 2024-05-23 13:50:52 +02:00
Alex Henrie
ea47e19129 Fix spelling mistakes identified by Lintian
Co-authored-by: Thulinma <jaron@vietors.com>
2024-05-16 17:28:03 +02:00
Thulinma
4e2d95961f Fix JPG compile after rebase 2024-05-16 16:19:15 +02:00
Thulinma
dbafa808b8 Fix Cygwin compilation:
- Fix various incompatibilities and differences between Linux and Cygwin builds
- Make usrsctp an optional dependency
- Fix building without SSL
- Add new secure random bytes function, use it for websockets
- Switch to libsrtp2 v2.6.0 (currently latest release)
- Add patch that makes latest libsrtp2 build in latest Cygwin
- Add patch that makes srt build in latest Cygwin
- Correctly allow linking libsrtp2 and srt to local mbedtls version
2024-04-25 12:44:38 +02:00
Thulinma
db30be38c5 Fix header includes to be a bit more consistent 2024-04-25 12:44:38 +02:00
Gijs Peskens
ebe783666f Support for upstream mbedtls versions 2 and 3 when compiled with SRTP support
Co-authored-by: Thulinma <jaron@vietors.com>
2024-02-22 17:45:47 +01:00
Thulinma
3987cfec3f Support for WebRTC data tracks (output only, for now), rewrite of dTLS integration (now part of socket lib), support for multi-path WebRTC connections 2024-02-22 17:45:44 +01:00
Thulinma
56193f89b1 Fix memory leak in RTMP receiver code 🤦‍♂️ 2024-01-15 15:22:44 +01:00
Thulinma
ac58015e02 Added Meta::packetTimeToUnixMs, fixed datetimes in m3u8 recordings 2023-12-13 16:00:31 +01:00
Marco van Dijk
3fb92a01d3 TSSRT: fixes to timestamp rewriting 2023-12-13 16:00:24 +01:00
Marco van Dijk
d2d4b0acbe Segmenter: added noendlist url param to omit the ENDLIST tag 2023-12-13 16:00:18 +01:00
Balder
ec757f48e9 Added some missing capabilities to SRT
Attempted to fix SRT push & embed links.
Push works, embed needs help

Changed capa to say UDP port as it is binding UDP

added methods to dtsc for output. added webrtc whip as input push url

added url_rel to DTSC

added "/" to the always_match and source_match for SDP and playlist to match with other protocols

updated Playlist to have source/always_match as array.
Noticed "variables_match" which is unused, what to do with it?

fix typo in -h controller text
2023-12-13 13:04:44 +01:00
Marco van Dijk
d040421df9 WHIP: packet pacing fixup for WHIP/WHEP output 2023-12-13 12:58:13 +01:00
Balder
cb2c63db61 Changed SRT output default to select all tracks 2023-11-29 16:49:10 +01:00
Thulinma
16e22eadbe WebRTC websocket implementation now uses generalized base version, removed unused code from MP4 output 2023-11-27 15:02:12 +01:00
Thulinma
b9819eb40f MistInHLS improvements and speedups, part 4/2 2023-11-27 15:02:12 +01:00
Thulinma
b7c6815e4f Working MP4 push output 2023-10-17 00:13:45 +02:00
Thulinma
9b83002e69 Fixes to WebRTC capa 2023-10-17 00:13:45 +02:00
Thulinma
4d3f86aec1 Fixes to MistOutSanityCheck utility 2023-10-17 00:13:45 +02:00
Balder
431d03c733 Fix VoD seek timing issues introduced with getNowms feature 2023-10-17 00:13:45 +02:00
Thulinma
b61aab8719 Speedups to output code in general and MP4 in particular 2023-10-17 00:13:45 +02:00
Thulinma
0783c11663 Update HTTP TS output to use new HTTP handler 2023-10-17 00:13:45 +02:00
Balder
d63190387a Fixes to better support Safari/MacOS/iOS playback of MP4 output
Co-authored-by: Marco van Dijk <marco@stronk.rocks>
Co-authored-by: Thulinma <jaron@vietors.com>
2023-10-17 00:13:45 +02:00
Thulinma
963d7846a8 Fix empty segment being written, fix playlist updating at all when no data was written 2023-10-17 00:13:45 +02:00
Thulinma
7dbd60b208 Support limiting output range for most outputs and outgoing pushes 2023-10-17 00:13:45 +02:00
Thulinma
3e2a17ff93 Various metadata-related features and improvements:
- Added support for new "NowMs" field that holds up to where no new packets are guaranteed to show up, in order to lower latency.
- Added support for JSON tracks over all TS-based protocols (input and output)
- Added support for AMF metadata conversion to JSON (RTMP/FLV input)
- Fixed MP4 input subtitle tracks
- Generalized websocket-based outputs to all support the same commands and run the same core logic
- Added new "JSONLine" protocol that allows for generic direct line-by-line ingest of subtitles and/or JSON metadata tracks over a TCP socket or console standard input.
2023-09-26 17:10:23 +02:00
Marco
b0d4422d27 Added machine readable exit reasons, INPUT_END trigger, OUTPUT_END trigger, and updated RECORDING_END trigger to include all of these. 2023-08-23 10:55:53 +02:00
Thulinma
41cf557b48 TSSRT and TSRIST outputs in listen mode will now request not to be killed by the Comms library, since they handle multiple users 2023-07-24 10:37:42 +02:00
Balder
22e0036b8b Fix output timeout while waiting for delay buffer 2023-07-20 10:39:43 +02:00
Thulinma
7d55a3f1c4 Fix for slow SRT pushes 2023-07-20 10:39:38 +02:00
Balder
54cee366e2 SRT push input timestamp fix 2023-07-19 12:15:30 +02:00
Thulinma
a9abfa531e Support for AV1 MP4 input and output 2023-07-17 18:46:16 +02:00
Marco van Dijk
e8388b2a89 Fix WebRTC ingest 2023-07-17 13:14:03 +02:00
Balder
fca96eaeb1 fixed timeoffset 2023-07-12 10:34:47 +02:00
Thulinma
e6621fc09c Fix last-half-segment split prevention to _actually_ only work for VoD, excluding live-with-VoD 2023-06-19 17:28:56 +02:00
Thulinma
d7ec340d7e Fix local file targets when pushing to non-full-path 2023-06-19 17:25:08 +02:00
Thulinma
2a8f2f75d3 Implemented UDP socket packet send pacing, WebRTC now makes use of this new feature. 2023-06-15 12:34:25 +02:00