Alessandro Ros
b461f15a4c
rpicamera: support changing parameters without interrupting the stream ( #1463 )
2023-02-13 12:12:04 +01:00
aler9
d5dfce16ea
hls muxer: fix race condition
2023-01-08 21:16:20 +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
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
Alessandro Ros
5efe97abf1
Support reading with WebRTC ( #1242 )
2022-12-16 00:50:47 +01:00
Alessandro Ros
8bee4af86a
api, metrics: add number of bytes received and sent from/to all entities ( #1235 )
...
* API: number of bytes received/sent from/to RTSP connections
* API: number of bytes received/sent from/to RTSP sessions
* API: number of bytes received/sent from/to RTMP connections
* API: number of bytes sent to HLS connections
* API: number of bytes received from paths
* metrics of all the above
2022-11-11 11:59:52 +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
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
aler9
960cfb9f99
api: always encode timestamps wth RFC3339 ( #1093 )
...
this fixes "lastRequest" in /v1/hlsmuxers/list that was encoded in a
wrong format
2022-08-23 13:24:27 +02:00
aler9
092a2be3a8
api: add "created" field to RTSP sessions, RTMP connections, HLS muxers
2022-08-05 14:39:07 +02:00
aler9
055e08ac6c
remove "on" prefix from most communication functions between components
2022-08-04 21:07:45 +02:00
aler9
8a4743fe9a
hls muxer: when hlsAlwaysRemux is on, automatically recreate muxers in
...
case of errors
2022-07-24 13:06:09 +02:00
aler9
e45820b2c0
hls server: show real client IPs when behind a proxy ( #955 )
2022-06-21 13:54:19 +02:00
aler9
cb610a707c
hls muxer: fix code 500 when a stream is not found
2022-06-08 00:39:34 +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
343a5f17fb
hls: add new parameter hlsSegmentMaxSize
2022-01-30 17:54:05 +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
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
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
afabd331d9
metrics: add hls_muxers metric
2021-11-05 17:29:13 +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
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
5eb4741278
hls: speed up serving of files
2021-09-05 15:47:28 +02:00
aler9
4fdd42fa58
hls: rename remuxer into muxer
2021-08-18 15:49:12 +02:00
aler9
f1a812ba5d
rewrite metrics system to provide more data ( #492 )
2021-08-12 11:49:21 +02:00
aler9
6702cb41ed
api: make sure that entities are deleted immediately after a kick request
2021-08-12 10:50:29 +02:00
aler9
e57177ef49
cleanup
2021-08-11 13:57:33 +02:00
aler9
ed375583d0
Implement an HTTP API to query and control the server
2021-08-07 19:20:39 +02:00
aler9
abc4a47c1c
hls: reject methods other than GET and OPTIONS
2021-07-30 21:35:13 +02:00
aler9
de6e9589b8
fix multiple freezes during shutdown of components
2021-07-30 20:13:17 +02:00
aler9
82e65230fd
speed up hls remuxing by linking together pathManager and hlsServer
2021-07-30 14:49:09 +02:00
aler9
1146d5cf1b
hls: new option hlsAlwaysRemux to always remux streams into HLS, not only when requested
2021-07-29 16:56:40 +02:00
aler9
c5ad06af9c
hls: make sure to send entire TS segments to clients
2021-07-29 12:22:40 +02:00
aler9
f16acb937f
hls: rename converter into remuxer
2021-07-29 12:22:08 +02:00
aler9
9062dbf883
move most components into internal/core
...
in this way coverage can be computed correctly.
2021-07-24 16:09:52 +02:00