Commit Graph

100 Commits

Author SHA1 Message Date
Alessandro Ros
3a5bb06e26 add environment variable MTX_QUERY to some hooks (#2483) (#2522) 2023-10-18 11:50:26 +02:00
Alessandro Ros
95ab9375c7 support recording to MPEG-TS (#2505) 2023-10-14 22:52:10 +02:00
Alessandro Ros
64d9060560 add additional environment variables to custom commands (#1414) (#2356)
new variables: MTX_CONN_TYPE, MTX_CONN_ID, MTX_SOURCE_TYPE, MTX_SOURCE_ID, MTX_READER_TYPE, MTX_READ_ID
2023-09-16 21:41:49 +02:00
Alessandro Ros
ed77560811 add runOnDisconnect, runOnNotReady, runOnUnread (#1464) (#2355) 2023-09-16 19:21:48 +02:00
Alessandro Ros
f07886db5f print the reason why a source is started or stopped (#2322)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-09-09 23:37:56 +02:00
Alessandro Ros
5fb7f4e846 force all readers to use an asynchronous writer (#2265)
needed by #2255
2023-08-30 11:24:14 +02:00
Alessandro Ros
30b7245bb9 limit logging of decode errors (#2253)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-08-26 23:34:39 +02:00
Alessandro Ros
b72f3577c8 print warning when the write queue is full (#2251)
Some checks reported warnings
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
2023-08-26 19:45:10 +02:00
Alessandro Ros
cf86dbb303 switch to gortsplib/v4 (#2244) 2023-08-26 18:54:28 +02:00
Alessandro Ros
dd91abae9b api: add transport to RTSP sessions (#2151) 2023-08-05 17:10:48 +02:00
Alessandro Ros
1bfc08cca2 update gortsplib (#2138)
Some checks reported warnings
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
2023-08-02 11:39:53 +02:00
Alessandro Ros
72b1d233df normalize channels and methods (#2127)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
needed by #2068
2023-07-30 23:53:39 +02:00
Alessandro Ros
e3d4856b4f update gortsplib (#2126) 2023-07-30 23:39:24 +02:00
Alessandro Ros
db3862cf0d move stream in a dedicated package (#2121)
needed by #2068
2023-07-30 22:34:35 +02:00
Alessandro Ros
0137734294 webrtc, hls: show IP in logs in case of failed authentication (#2099) 2023-07-23 20:06:16 +02:00
Volodymyr Borodin
47317ea8e5 api: add path to RTMP connections, RTSP sessions, WebRTC sessions (#1962) (#2022)
* api: add path to rtmp response

* add 'path' to RTSP and WebRTC sessions too

* add tests

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2023-07-05 21:20:26 +02:00
Alessandro Ros
89ebc83993 update golangci-lint (#1870) 2023-05-28 17:18:16 +02:00
Alessandro Ros
128f2d3e20 print error that caused an external command to exit (#1869)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-05-27 19:28:07 +02:00
Alessandro Ros
b93eed64bc api: add /get endpoints (#1577) (#1823)
this allows to get entities by ID or name after /list endpoints were
changed in v0.23.0.
2023-05-18 15:07:47 +02:00
Alessandro Ros
39c072edd6 change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Alessandro Ros
1688e5d2e5 support publishing with WebRTC (#1659) (#1786) 2023-05-14 14:18:03 +02:00
Alessandro Ros
6ea299fc56 api: fix type of RTMPS readers (#1784)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
it was wrongly set to RTMP.
2023-05-10 11:39:40 +02:00
Alessandro Ros
d8678cef90 unify authentication mechanisms (#1775) 2023-05-08 17:04:14 +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
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
79562b15ab update gortsplib 2023-01-11 01:11:05 +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
57015e2bf0 fix authentication with VLC
This fixes the case in which VLC is trying to read a path with a query
(i.e. stream?mykey=myval) and the path requires read credentials.
2022-12-14 19:07:39 +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
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
423bb61daa use UUIDs as IDs in all entities (#1234) 2022-11-09 19:31:52 +01:00
aler9
eae895e321 decrease ram consumption 2022-11-03 15:44:34 +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
f7fdd60966 rtsp server: log decode errors 2022-10-31 19:16:13 +01:00
aler9
86c5fa9ba4 cleanup interaction with external auth 2022-08-22 11:24:21 +02:00
aler9
83faae8a8e rename interaction functions between paths and readers / publishers
readers and publishers can now interact with paths by using:

readerAdd()
readerStart()
readerStop()

publisherAdd()
publisherStart()
publisherStop()
2022-08-22 09:39:16 +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
092a2be3a8 api: add "created" field to RTSP sessions, RTMP connections, HLS muxers 2022-08-05 14:39:07 +02:00