Commit Graph

67 Commits

Author SHA1 Message Date
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
1688e5d2e5
support publishing with WebRTC (#1659) (#1786) 2023-05-14 14:18:03 +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
2d17dff3b5
support publishing, reading and proxying MPEG-2 audio (MP3) tracks with RTMP (#1102) (#1736) 2023-04-25 18:13:51 +02:00
Alessandro Ros
efb6060b45
update gortsplib (#1671) 2023-04-09 17:11:54 +02:00
Alessandro Ros
053f2ec282
rename repository and executable (#1641) 2023-04-01 19:52:06 +02:00
Alessandro Ros
2dffccf9c1
update gortsplib, gohlslib (#1637) 2023-04-01 18:39:12 +02:00
Alessandro Ros
51a1cb9c78
update gohlslib (#1583) 2023-03-20 00:34:13 +01:00
Alessandro Ros
e8bdad8a1e
rename Data into Unit (#1556) 2023-03-10 12:44:59 +01:00
Alessandro Ros
b461f15a4c
rpicamera: support changing parameters without interrupting the stream (#1463) 2023-02-13 12:12:04 +01:00
aler9
e3fff72b7c move format processors into dedicated folder 2023-01-05 12:54:00 +01:00
aler9
034e42f463 hls muxer: support reading Opus tracks (#1338) 2023-01-03 18:36:13 +01:00
Alessandro Ros
5efe97abf1
Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
aler9
4bafa4ea9b add dedicated processors for H265 and Opus 2022-12-13 21:26:35 +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
Alessandro Ros
e605727c78
produce same absolute time in RTSP and HLS (#1249)
* add a NTP timestamp to each data unit
* use that NTP timestamp in all protocols
2022-11-28 09:00:05 +01:00
aler9
282d155a4f update gortsplib 2022-11-15 23:47:12 +01:00
Alessandro Ros
0943b269ab
Decode streams once and only when needed (#1218)
* split data into specialized structs

* move MPEG4-audio decoding into streamTrack

* restore video/audio synchronization in HLS muxer and RTMP server

* log decode errors

* move H264 decoding and re-encoding here from gortsplib

* add tests

* update gortsplib
2022-11-02 20:52:12 +01:00
aler9
f0514b3983 update gortsplib 2022-11-01 16:13:18 +01:00
aler9
584cc9357a rtsp source: log decode errors 2022-10-31 19:11:20 +01:00
Alessandro Ros
8c2b12a314 Add native support for the raspberry pi camera (#1057) 2022-08-16 18:44:31 +02:00
aler9
cb8aec8844 print track codecs into logs 2022-08-15 16:29:40 +02:00
aler9
f952ff25f6 remove useless append() 2022-08-14 13:14:08 +02:00
aler9
3606472e82 generate RTP packets after H264 remuxing
Previously, RTP packets coming from sources other than RTSP (that
actually are RTMP and HLS) were generated before the H264 remuxing, and
that leaded to invalid streams, expecially when sourceOnDemand is true
and the stream has invalid or dynamic SPS/PPS.
2022-08-14 13:03:04 +02:00
aler9
055e08ac6c remove "on" prefix from most communication functions between components 2022-08-04 21:07:45 +02:00
aler9
7067c02030 api: return static sources in paths/list even if sourceOnDemand is true 2022-08-04 20:28:38 +02:00
aler9
6afbdf1015 add intermediate layer between path and static sources 2022-07-30 21:52:37 +02:00
aler9
34eb1d1e7a normalize sources 2022-07-28 14:26:48 +02:00
aler9
9d3fd3bc37 update gortsplib 2022-06-05 01:36:29 +02:00
aler9
98c6cd4650 RTSP: automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:20:14 +02:00
aler9
58b2e7d24f move trackID into data 2022-04-09 13:16:59 +02:00
aler9
d929197b21 propagate H264 packets throughout the server 2022-04-08 18:19:53 +02:00
aler9
0605a2f369 update linter 2022-04-07 13:05:07 +02:00
aler9
3fc4ca6465 update gortsplib; downgrade pion/rtp to v1 2022-04-01 12:04:21 +02:00
aler9
f53b316c0d rtsp server: generate RTCP sender reports automatically; stop routing RTCP packets 2022-03-24 15:44:34 +01:00
aler9
a6986e9fa4 update gortsplib 2022-03-24 12:59:22 +01:00
aler9
28063a1fbe rename stream.onPacketRTP/RTCP into stream.writePacketRTP/RTCP 2022-03-15 12:44:01 +01:00
aler9
6dc11c2906 RTSP server/source: fix encoding of RTP packets with padding
This fixes a SIGSEGV with GStreamer.
2022-03-08 12:54:23 +01:00
aler9
87f24f1704 update gortsplib 2022-02-19 23:06:24 +01:00
aler9
5504ff44b6 rtsp: parse all incoming RTP/RTCP packets 2022-02-18 00:14:52 +01:00
aler9
f6a5fe2623 rtsp source: fix memory leak in case source doesn't send H264 params in time 2022-02-03 09:59:52 +01:00
aler9
2bfdcc7d89 update gortsplib 2022-01-30 17:43:03 +01:00
aler9
9735a8522e fix shutdown freeze introduced by ef255af 2022-01-25 15:16:11 +01:00
aler9
ef255af093 rtsp source: fix memory leak
This happened when the server was able to connect to the source,
but initialization failed before or during the PLAY request.
2022-01-23 19:36:33 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +01:00
aler9
a1fed6fb38 rtsp source: set ServerName when using TLS (#708) 2021-12-03 23:33:28 +01:00
aler9
05b1a7e720 update gortsplib 2021-11-28 13:04:00 +01:00
aler9
c7b2ae83df rtsp source: support cameras that don't provide SPS and PPS inside the SDP (#411) (#707) 2021-11-22 22:55:12 +01:00
aler9
99db6f245e remove panic() 2021-11-13 10:26:14 +01:00
aler9
f7419586af update gortsplib 2021-11-12 22:29:56 +01:00