Commit Graph

104 Commits

Author SHA1 Message Date
Alessandro Ros
5efe97abf1
Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
Alessandro Ros
c778c049ce
switch to gortsplib v2 (#1301)
Fixes #1103

gortsplib/v2 supports multiple formats inside a single track (media). This allows to apply the resizing algorithm to single formats inside medias.

For instance, if a media contains a a proprietary format and an H264 format, and the latter has oversized packets, they can now be resized.
2022-12-13 20:54:17 +01:00
aler9
062fb600e8 return an error when rpiCamera in used in two paths (#1257) 2022-12-12 11:49:11 +01:00
aler9
532592c099 rpicamera: change default resolution to 1920x1080 2022-10-25 11:29:04 +02:00
aler9
7013b75daf rpicamera: add rpiCameraMode parameter (#1111) 2022-10-25 11:23:44 +02:00
Alessandro Ros
8825fddd89
Add additional Raspberry Pi Camera parameters (#1198)
* rpicamera: add rpiCameraHFlip and rpiCameraVFlip parameters

* rpicamera: add rpiCameraBrightness, rpiCameraContrast,
rpiCameraSaturation, rpiCameraSharpness, rpiCameraExposure,
rpiCameraAWB, rpiCameraDenoise, rpiCameraShutter, rpiCameraMetering,
rpiCameraGain, rpiCameraEV, rpiCameraROI, rpiCameraTuningFile

* support float values in config file
2022-10-24 15:08:30 +02:00
aler9
ec4ec142b4 forbid using 'rpiCamera' as source on regexp paths 2022-10-23 16:44:34 +02:00
aler9
f1fb00b80f update golangci-lint 2022-09-17 21:19:45 +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
f28540b9f4 update gortsplib 2022-07-05 23:46:32 +02:00
aler9
e45820b2c0 hls server: show real client IPs when behind a proxy (#955) 2022-06-21 13:54:19 +02:00
aler9
9d3fd3bc37 update gortsplib 2022-06-05 01:36:29 +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
1e07636f86 change default RTSPS port (#867) 2022-04-16 16:24:40 +02:00
aler9
98c6cd4650 RTSP: automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:20:14 +02:00
aler9
f45abfb203 conf: fix panic when integer keys are used (#865) 2022-03-08 18:50:41 +01: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
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
08fa61e56d do not add an 'all' path automatically if not present in the configuration file 2021-11-06 12:51:38 +01:00
aler9
fb311e31ec add missing check on strict encryption + UDP multicast 2021-11-05 17:11:40 +01:00
aler9
2d12c37074 use require.EqualError() in tests 2021-11-03 17:52:47 +01:00
aler9
c9c9c88ac8 update golangci-lint 2021-10-30 13:06:29 +02:00
aler9
9af006b488 allow to set logLevel: error in config 2021-10-28 17:29:27 +02:00
aler9
d30822cb1b make sourceFingerprint optional and allow standard certificate validation 2021-10-25 21:01:29 +02:00
aler9
509bed355a update gortsplib 2021-10-22 18:41:10 +02:00
aler9
37f63434ac sort arrays in configuration and API (#644) 2021-10-17 15:40:17 +02:00
aler9
94e519f08f conf: use dedicated interface to unmarshal from environment 2021-10-11 12:13:57 +02:00
aler9
b21efeb28f restore logLevel: debug 2021-10-05 20:36:15 +02:00
aler9
0d4d81c333 remove useless code 2021-10-05 09:41:37 +02:00
aler9
b70a4bfe5b fix regression that prevented setting config slices with env variables (#612) 2021-10-04 08:58:23 +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
b748e6d0ff update error messages 2021-09-27 16:40:49 +02:00
aler9
6921a402d1 decode the configuration when decoding JSON 2021-09-27 16:40:49 +02:00
aler9
54292d712e convert the configuration into JSON before loading it 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
64808863ed move confenv into conf 2021-09-26 22:25:39 +02:00
aler9
9398cea0c2 update golangci-lint 2021-09-09 23:05:54 +02:00
aler9
df4c268813 support proxying HLS 2021-09-05 18:00:29 +02:00
aler9
eb5bab7e58 hls: set default segment count to 3 2021-08-14 12:27:00 +02:00
aler9
478102adc5 change default listen IP of metrics and pprof to 127.0.0.1 2021-08-07 19:20:39 +02:00
aler9
dd33ef740e api: change default listen address to 127.0.0.1:9997 2021-08-07 19:20:39 +02:00
aler9
fdd487f3c5 rename "record" source value into "publisher" 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
aler9
e516d265d6 refactor ondemand system 2021-08-03 22:40:47 +02:00