Commit Graph

35 Commits

Author SHA1 Message Date
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