Commit graph

568 commits

Author SHA1 Message Date
Alessandro Ros
813611057d
add runOnUnDemand hook (#2645) 2023-11-04 13:07:51 +01:00
Alessandro Ros
faf7218fda
webrtc: restore compatibility when running behind a proxy, in a subpath (#2638) 2023-11-03 17:36:51 +01:00
Alessandro Ros
4f876ed207
fix crash when publishing to a path with 'runOnDemand' from outside 'runOnDemand' (#2636) (#2637) 2023-11-03 16:54:25 +01:00
Alessandro Ros
d41e4025de
hls: format code (#2634) 2023-11-03 09:42:37 +01:00
Dr. Ralf S. Engelschall
39a239caba
hls: bugfix, stability and resilience improvements in the webpage
- STABILITY: await MEDIA_ATTACHED event before performing "loadSource" on HLS
- STABILITY: await MANIFEST_PARSED event before performing "play" on video element
- RESILIENCE: on "MEDIA_ERROR" event perform "recoverMediaError" on HLS
2023-11-03 09:14:01 +01:00
Alessandro Ros
15f1c73314
hls: apply readTimeout to HLS sources (#2627) 2023-11-02 12:45:46 +01:00
Lukinoh
107a9a4281
webrtc: add options (width, height, framerate, audio capture) and store parameters in URL (#1837) (#2167) (#2584) 2023-11-02 12:24:28 +01:00
Alessandro Ros
43d41c070b
move static sources into dedicated package (#2616) 2023-10-31 14:19:04 +01:00
Alessandro Ros
e9528c0917
api: return empty list when page is empty (#2604) (#2614) 2023-10-30 19:53:16 +01:00
Alessandro Ros
ecee2af05c
webrtc: fix crash in case of errors during PATCH (#2609) (#2613) 2023-10-30 19:53:03 +01:00
Alessandro Ros
4c25529369
move rpicamera into internal/protocols (#2607) 2023-10-30 11:40:55 +01:00
Alessandro Ros
4b4d57f18e
api: add path name to config/paths/list and config/paths/get (#2535) (#2596) 2023-10-28 15:06:06 +02:00
Alessandro Ros
bbb989ee87
api: return full configuration in config/paths/list and config/paths/get (#2535) (#2595) 2023-10-28 14:53:23 +02:00
Alessandro Ros
64eb90738a
webrtc: return detailed errors in responses (#2594) 2023-10-28 14:08:34 +02:00
Alessandro Ros
cde19097bd
api: send error messages in response body (#2518) (#2583) 2023-10-27 20:43:34 +02:00
Alessandro Ros
07ff79f553
api: return 500 instead of 404 in case of non-existing items (#2582)
This is needed to differentiate between calls to non-existent andpoints
and calls to valid endpoints, but with an ID pointing to a non-existing
item, and to return JSON in the latter case.
2023-10-27 20:23:46 +02:00
Alessandro Ros
99bc327d67
move protocol-related code into internal/protocols (#2572) 2023-10-26 21:46:18 +02:00
Alessandro Ros
3ebc585539
restart recordings in case of errors (#2439) (#2571) 2023-10-26 21:40:44 +02:00
Alessandro Ros
28452acf56
move webrtc utilities into internal/webrtc (#2559) 2023-10-25 11:48:57 +02:00
Rui Lopes
9f5169ba26
webrtc: support WHIP/WHEP DELETE method (#2507) 2023-10-24 16:30:44 +02:00
Alessandro Ros
3a5bb06e26
add environment variable MTX_QUERY to some hooks (#2483) (#2522) 2023-10-18 11:50:26 +02:00
Alessandro Ros
95ab9375c7
support recording to MPEG-TS (#2505) 2023-10-14 22:52:10 +02:00
Alessandro Ros
4ec12a6c8b
add runOnRecordSegmentCreate hook (#2451) (#2503) 2023-10-14 16:48:02 +02:00
Aakash Singh
18733294c0
webrtc: expose ice servers on OPTIONS CORS requests (#2479)
the link header was getting ignored by browser fetch as it was not exposed by Access-Control-Expose-Headers
2023-10-09 18:26:34 +02:00
Alessandro Ros
6c727b4472
rename 'all' path configuration into 'all_others' (#2443) 2023-10-09 18:13:44 +02:00
Alessandro Ros
8a633d2b79
allow setting different recording parameters for each path (#2410) (#2457) 2023-10-07 23:48:37 +02:00
Alessandro Ros
9a01ab7fd5
allow changing default path settings; bump API in order to allow so (#2455) 2023-10-07 23:32:15 +02:00
PieterFabry
3c4039b81f
Supports webrtc interface filtering on server (#2460)
* Supports webrtc interface filtering on server

* test(#2707): Fixed testing for build

* lint(#2707): Fixed lint issues for build

* normalize setting name

* move instructions in the configuration file

---------

Co-authored-by: Pieter Fabry <pieterfabry@observe.tech>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-10-07 17:51:01 +02:00
Alessandro Ros
64f4185537
webrtc: optimize publish page for mobile devices (#2066) (#2472) 2023-10-06 23:31:36 +02:00
Alessandro Ros
3b4cac5af7
webrtc: disallow publishing screen on devices that don't support it (#2066) (#2471) 2023-10-06 23:00:15 +02:00
Alessandro Ros
412a48ac74
webrtc: fix reading Opus stereo tracks with Chrome (#2043) (#2470) 2023-10-06 22:09:08 +02:00
Alessandro Ros
c37fd38f5c
webrtc: print lost packets (#2468) 2023-10-06 21:06:29 +02:00
Rui Lopes
215f88e2dd
webrtc: add Location header to CORS-allowed headers (#2453) 2023-10-04 17:00:15 +02:00
Alessandro Ros
9c6168e7e3
print path of configuration file (#2441) 2023-10-01 22:56:51 +02:00
Alessandro Ros
eb975027b2
add runOnRecordSegmentComplete and rclone integration (#2404) (#2428) 2023-09-29 18:24:10 +02:00
Alessandro Ros
442a48363c
allow to start/stop recording without disconnecting clients (#2395) (#2434) 2023-09-28 19:39:56 +02:00
Paxx
72e74b6456
api: fix crash when retrieving RTMP and SRT connections (#2430)
Co-authored-by: Paxx <daniel.botta@hiway.media>
2023-09-28 17:45:34 +02:00
Alessandro Ros
42aa979309
api: save errors in logs (#2426) 2023-09-27 15:18:02 +02:00
Alessandro Ros
61b77a3ff9
api: return 400 in case of non-existent config fields (#2425) 2023-09-27 14:56:31 +02:00
Alessandro Ros
f1e28d053f
webrtc: fix ETag header name according to specification (#2396) (#2401) 2023-09-23 14:21:53 +02:00
rmcnew
75f518a827
Support SRT encryption passphrases on configured paths (#2385)
* Support SRT encryption passphrases on configured paths

* Fix namespace; make passphrase use more clear

* Updates from Alessandro's feedback and lint output

* Fix lint findings

* Update lint.yml

* Update lint.yml

* Fix lint findings

* Add SRT passphrase tests for conf/path

* Reformat test to pass lint

* More changes to pass lint

* More changes to pass lint

* Use safeConf to prevent race conditions

* update API docs

* split configuration checks from connection checks

* add tests

* rename publishSRTPassphrase into srtPublishPassphrase, readSRTPassphrase into srtReadPassphrase

* remove redundant alias

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-09-23 12:55:45 +02:00
Alessandro Ros
cadc6b3ea7
rename 'external commands' into 'hooks' (#2400) 2023-09-23 12:49:08 +02:00
Alessandro Ros
3a7d86ec03
normalize configuration (#2399) 2023-09-23 12:48:34 +02:00
Alessandro Ros
d07ba5983e
update gortsplib (#2390) 2023-09-21 17:21:18 +02:00
Alessandro Ros
e4df14a447
fix timestamp of outgoing RTSP/RTP packets in case of aggregated access units (#2389) 2023-09-21 16:13:40 +02:00
Alessandro Ros
fadfda936d
support AC-3 tracks in SRT and UDP; support recording AC-3 tracks (#2376) 2023-09-19 22:33:00 +02:00
Alessandro Ros
f2f417e451
search for configuration file in various paths, print paths if configuration is not found (#1993) (#2276) (#2357) 2023-09-16 22:14:13 +02:00
Alessandro Ros
64d9060560
add additional environment variables to custom commands (#1414) (#2356)
new variables: MTX_CONN_TYPE, MTX_CONN_ID, MTX_SOURCE_TYPE, MTX_SOURCE_ID, MTX_READER_TYPE, MTX_READ_ID
2023-09-16 21:41:49 +02:00
Alessandro Ros
ed77560811
add runOnDisconnect, runOnNotReady, runOnUnread (#1464) (#2355) 2023-09-16 19:21:48 +02:00
Alessandro Ros
73ddb21e63
implement native recording (#1399) (#2255)
* implement native recording (#1399)

* support saving VP9 tracks

* support saving MPEG-1 audio tracks

* switch segment when codec parameters change

* allow to disable recording on a path basis

* allow disabling recording cleaner

* support recording MPEG-1/2/4 video tracks

* add microseconds to file names

* add tests
2023-09-16 17:27:07 +02:00