Commit Graph

47 Commits

Author SHA1 Message Date
aler9
f3f55452e5 webrtc muxer: fix multiple race conditions 2023-01-08 13:36:55 +01:00
Alessandro Ros
5efe97abf1
Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
Alessandro Ros
4ac175d3cc
api, metrics: add endpoints and metrics for RTSP connections (#1233)
new API endpoints:

* /v1/rtspconns/list
* /v1/rtspsconns/list

new metrics:

* rtsp_conns
* rtsps_conns
2022-11-09 18:31:31 +01:00
aler9
fdb1955e1d api: autogenerate structs from configuration 2022-10-23 18:01:51 +02:00
aler9
a8d1f91646 fix tests that involve HTTP clients 2022-08-31 08:53:19 +02:00
aler9
f25e14183d api, hls, metrics, pprof: always close HTTP listeners
due to a race condition, HTTP listeners could remain open even after
the closure of a component.
2022-08-30 18:43:41 +02:00
Alessandro Ros
820ba067f2 support RTMPS (#1089) 2022-08-16 18:44:31 +02:00
Alessandro Ros
8c2b12a314 Add native support for the raspberry pi camera (#1057) 2022-08-16 18:44:31 +02:00
aler9
055e08ac6c remove "on" prefix from most communication functions between components 2022-08-04 21:07:45 +02:00
aler9
e45820b2c0 hls server: show real client IPs when behind a proxy (#955) 2022-06-21 13:54:19 +02:00
Alessandro Ros
e115983296
Implement Low-Latency HLS (#938)
* add hlsVariant parameter

* hls: split muxer into variants

* hls: implement fmp4 segments

* hls muxer: implement low latency mode

* hls muxer: support audio with fmp4 mode

* hls muxer: rewrite file router

* hls muxer: implement preload hint

* hls muxer: add various error codes

* hls muxer: use explicit flags

* hls muxer: fix error in aac pts

* hls muxer: fix sudden freezes with video+audio

* hls muxer: skip empty parts

* hls muxer: fix video FPS

* hls muxer: add parameter hlsPartDuration

* hls muxer: refactor fmp4 muxer

* hls muxer: fix CAN-SKIP-UNTIL

* hls muxer: refactor code

* hls muxer: show only parts of last 2 segments

* hls muxer: implementa playlist delta updates

* hls muxer: change playlist content type

* hls muxer: improve video dts precision

* hls muxer: fix video sample flags

* hls muxer: improve iphone audio support

* hls muxer: improve mp4 timestamp precision

* hls muxer: add offset between pts and dts

* hls muxer: close muxer in case of error

* hls muxer: stop logging requests with the info level

* hls muxer: rename entry into sample

* hls muxer: compensate video dts error over time

* hls muxer: change default segment count

* hls muxer: add starting gap

* hls muxer: set default part duration to 200ms

* hls muxer: fix audio-only streams on ios

* hls muxer: add playsinline attribute to video tag of default web page

* hls muxer: keep mpegts as the default hls variant

* hls muxer: implement encryption

* hls muxer: rewrite dts estimation

* hls muxer: improve DTS precision

* hls muxer: use right SPS/PPS for each sample

* hls muxer: adjust part duration dynamically

* add comments

* update readme

* hls muxer: fix memory leak

* hls muxer: decrease ram consumption
2022-05-31 19:17:26 +02:00
aler9
98c6cd4650 RTSP: automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:20:14 +02:00
aler9
b4649ef60b remove runOnPublish (breaking change) 2022-03-04 18:09:49 +01:00
aler9
343a5f17fb hls: add new parameter hlsSegmentMaxSize 2022-01-30 17:54:05 +01:00
aler9
b48e2f1f1b add TODO comments 2022-01-20 10:46:05 +01:00
aler9
49449eb5ad Add new parameter 'runOnReady' (#752)
This is called when a stream is ready, whether it is published or proxied.
It replaces 'runOnPublsh'.
2022-01-19 22:50:32 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +01:00
aler9
11760fd79f support external authentication (#504) (#517) 2021-12-22 19:13:56 +01:00
aler9
779d5b61cd update docs 2021-12-22 00:27:58 +01:00
aler9
7352244fd9 print closing message before an object is closed 2021-12-22 00:15:15 +01:00
aler9
02291f552a align listener opened / closed messages 2021-11-15 20:13:54 +01:00
aler9
9645d18ae4 move httpLogWriter in a dedicated file 2021-11-06 12:53:49 +01:00
aler9
21a149c0de rename struct 2021-11-06 12:52:12 +01:00
aler9
322ea55534 split API definitions between their corresponding structs 2021-11-05 17:53:24 +01:00
aler9
0c79efdab7 api: cleanup 2021-11-05 17:18:21 +01:00
aler9
79e73c5cb4 api: add /v1/hlsmuxers/list endpoint 2021-11-05 17:15:46 +01:00
aler9
ab70f946b0 unexport members of private structs 2021-10-27 21:01:00 +02:00
aler9
f32d69a93d fix race condition 2021-10-17 17:16:57 +02:00
aler9
e6238694af api: log requests even with logLevel: info 2021-10-17 17:05:22 +02:00
aler9
c51ba926e0 hls: dump requests and responses when logLevel is debug 2021-10-17 17:02:15 +02:00
aler9
b65d715f0b hls: add Server header 2021-10-17 16:51:35 +02:00
aler9
ef3fab477e hls: use gin as HTTP router 2021-10-17 16:49:49 +02:00
aler9
ab71f22560 move decoding of more configuration into JSON decoding 2021-09-27 16:40:49 +02:00
aler9
1f540a2aaf return error in case of non-existent parameters in the configuration file 2021-09-27 16:40:49 +02:00
aler9
ca9645c2f9 api: decode durations from strings instead of numbers
This allows to use human-readable durations with the API,
for instance: "5s" instead of 5000000000
2021-09-26 23:21:37 +02:00
aler9
e2f33a7495 api: support working with path configs that contains slashes (#581) 2021-09-23 09:07:36 +02:00
aler9
ddcd0c34cf api: fix concurrency issue when creating multiple path configs at once (#542) 2021-09-06 18:39:15 +02:00
aler9
7765de44fc api: log right protocol version of responses 2021-08-14 11:08:02 +02:00
aler9
e0a215ab53 api: log requests and responses even in case of code 404 2021-08-14 11:00:56 +02:00
aler9
f1a812ba5d rewrite metrics system to provide more data (#492) 2021-08-12 11:49:21 +02:00
aler9
da7f9c7ee1 api: add RTSPS endpoints to list and kick RTSPS sessions 2021-08-11 17:33:43 +02:00
aler9
e57177ef49 cleanup 2021-08-11 13:57:33 +02:00
aler9
20ac25571c api: add "state" field to RTSP sessions and RTMP connections 2021-08-11 12:25:19 +02:00
aler9
3134b95e80 api: add documentation 2021-08-07 19:20:39 +02:00
aler9
0535ab8e9c api: add tests 2021-08-07 19:20:39 +02:00
aler9
5943660ab3 api: print all requests and responses when logLevel is debug 2021-08-07 19:20:39 +02:00
aler9
ed375583d0 Implement an HTTP API to query and control the server 2021-08-07 19:20:39 +02:00