Commit Graph

133 Commits

Author SHA1 Message Date
Alessandro Ros
39c072edd6
change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Alessandro Ros
71310c5eb0
webrtc: validate ICE servers in configuration (#1798) 2023-05-15 10:51:00 +02:00
Jordy84
596765c14c
Allow sending Range header to RTSP sources (#1780)
* Enable Range headers using path config

* Use enum instead of strings

* Comments added to new code

* Wrong comment format

* Made CreateRangeHeader func private

* reorder configuration

* handle errors inside createRangeHeader()

* add tests

* update API docs

---------

Co-authored-by: Jordy Boezaard <jordy@boezaard.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-05-14 17:02:03 +02:00
Alessandro Ros
d8678cef90
unify authentication mechanisms (#1775) 2023-05-08 17:04:14 +02:00
Alessandro Ros
7aa163366f
return error in case of string-to-int overflows (#1776) 2023-05-08 13:12:47 +02:00
Alessandro Ros
e998688757
allow setting rpiCameraSaturation to 0 (#1651) (#1772) 2023-05-06 23:00:42 +02:00
Alessandro Ros
225220ddd5
print warning in case no key frames are being received (#1763) 2023-05-04 20:16:41 +02:00
Alessandro Ros
d7eadeb523
fix corrupted packets when udpMaxPayloadSize is not set (#1702) (#1711)
this happened when udpMaxPayloadSize was not explicitly set in
configuration file.
2023-04-15 13:45:20 +02:00
Alessandro Ros
e426810455
allow additional characters in usernames and passwords (#1580) (#1666) 2023-04-09 14:06:25 +02:00
Alessandro Ros
053f2ec282
rename repository and executable (#1641) 2023-04-01 19:52:06 +02:00
Alessandro Ros
f5fd89d3b4
change name of configuration file (#1640) 2023-04-01 19:32:10 +02:00
Alessandro Ros
aae8eb943e
general: change prefix of environment variables (#1639) 2023-04-01 19:31:23 +02:00
Alessandro Ros
2dffccf9c1
update gortsplib, gohlslib (#1637) 2023-04-01 18:39:12 +02:00
Alessandro Ros
3c9eed5fae
rpicamera: add text overlay with current time (#1288) (#1604) 2023-03-31 17:33:30 +02:00
Alessandro Ros
868704e9d4
hls muxer: make Low Latency-HLS the default variant (#1610) 2023-03-31 16:46:05 +02:00
Alessandro Ros
bca3013bd0
general: add Clone() method to Conf and PathConf (#1633)
this allows to detect errors during cloning
2023-03-31 16:22:08 +02:00
Alessandro Ros
5b61983fa6
add option to set max size of outgoing UDP packets (#1588) (#1601) 2023-03-31 11:53:49 +02:00
Alessandro Ros
fb1c16d606
support reading UDP/MPEG-TS streams (#1490)
* support reading UDP/MPEG-TS streams

* support reading H265 and Opus tracks inside UDP/MPEG-TS streams

* improve timestamp precision of Opus packets
2023-03-21 11:12:43 +01:00
Alessandro Ros
32d6cb4435
rpicamera: support two CSI cameras at once (#1573) (#1574) 2023-03-20 00:22:44 +01:00
Alessandro Ros
c1bcd0c7eb
hls muxer: add option to dump segments on disk (#1322) (#1567) 2023-03-20 00:22:21 +01:00
Alessandro Ros
ed45a09800
update gohlslib (#1566) 2023-03-12 16:59:04 +01:00
Alessandro Ros
8ad376de53
move HLS implementation into gohlslib (#1557) 2023-03-10 13:26:56 +01:00
irsl
4e579702ed
hls: make hlsEncryption optional even with Low-latency variant (#1530) 2023-03-09 18:08:01 +01:00
Alessandro Ros
b461f15a4c
rpicamera: support changing parameters without interrupting the stream (#1463) 2023-02-13 12:12:04 +01:00
Azsde
4841189456
Add support for libcamera Autofocus parameters (#1417)
* [DEV #1416] Add support for libcamera Autofocus parameters

* [DEVMINOR] Fix Go formatting

* [DEV] Support AF window parameter for rpiCamera

* [DEV] Update default .yml file to add rpiCameraAfWindow parameter
2023-02-10 12:20:50 +01:00
aler9
090342a413 conf: allow to set empty slices with empty env variables 2022-12-30 18:40:27 +01:00
aler9
b26f848613 webrtc: add webrtcICEUDPMuxAddress 2022-12-30 17:23:41 +01:00
andrew-ld
b27c363ecf
(webrtc) added support for ice mux tcp and nat1to1ips (#1323)
* add webrtcp static tcp mux port

* add ice nat1 host configuration and cleanup

* typo

* rename config keys

* apply codecov suggestions

* apply review suggestions

* typo

* dont use deepequal for WebRTCICETCPMuxAddress

* unexport NewPeerConnection()

* remove Dockerfile

* use an empty list instead of nil value in webrtcICEHostNAT1To1IPs

* drop webrtcICETCPMuxEnable and enable TCP mux when webrtcICETCPMuxAddress is filled

* run go mod tidy

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2022-12-30 15:39:20 +01:00
aler9
ec86401037 webrtc: make HTTPS optional (#1312) 2022-12-19 23:26:07 +01:00
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