Commit Graph

129 Commits

Author SHA1 Message Date
Alessandro Ros
e3d4856b4f update gortsplib (#2126) 2023-07-30 23:39:24 +02:00
Alessandro Ros
ab8cf3f0cc add rtmp.Reader, rtmp.Writer (#2124)
needed by #2068
2023-07-30 23:15:22 +02:00
Alessandro Ros
08d6d0b888 add base class to all data units (#2122)
needed by #2068
2023-07-30 22:55:13 +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
1fa53b49d4 webrtc, hls: prevent brute-force attacks by waiting before sending responses (#2100)
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-07-23 20:18:58 +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
Alessandro Ros
22b120ef22 update list of supported codecs inside error messages (#2058) (#2073) 2023-07-19 00:14:50 +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
f79c4783c7 rename environment variable RTSP_PATH into MTX_PATH (#1967) 2023-06-21 16:08:37 +02:00
Alessandro Ros
681a00347d support reading MP4A-LATM-encoded AAC with RTMP and HLS (#1694) (#1898)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-06-02 00:38:27 +02:00
Alessandro Ros
210603d7c4 update documentation (#1885) 2023-05-31 18:16:39 +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
e8124e2f56 support publishing H265 and AV1 tracks with Enhanced RTMP (#1393) (#1446) (#1621) (#1756) 2023-05-04 20:37:25 +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
22fe65509b cleanup (#1754)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-05-02 13:05:19 +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
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
2cffea6d51 rtmp: fix crash when receiving unexpected video packets (#1459) (#1504) 2023-02-23 11:22:28 +01:00
Alessandro Ros
b461f15a4c rpicamera: support changing parameters without interrupting the stream (#1463) 2023-02-13 12:12:04 +01:00
Alessandro Ros
b02d3b83c7 Send additional fields to the external authentication URL (#1408)
* send 'protocol' to the external authentication URL

* send session ID to the external authentication URL
2023-01-22 19:48:33 +01:00
aler9
2de0941e5c update gortsplib 2023-01-08 13:36:27 +01:00
aler9
e3fff72b7c move format processors into dedicated folder 2023-01-05 12:54:00 +01:00
Alessandro Ros
5de600ffaa support reading H265 tracks with HLS (#1342)
* support reading H265 tracks with HLS

* update README
2022-12-29 20:46:31 +01:00
aler9
fbf8e82db5 update gortsplib 2022-12-28 20:32:03 +01:00
aler9
455b8beff7 simplify code 2022-12-27 18:01:58 +01:00
Alessandro Ros
ad52b3fab7 Support publishing with RTMP and H265 (for OBS Studio) (#1333)
* support publishing with RTMP and H265 (for OBS Studio)

* rtmp source: block H265 tracks
2022-12-27 13:55:30 +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
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
423bb61daa use UUIDs as IDs in all entities (#1234) 2022-11-09 19:31:52 +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
fad3474805 rtmp server: print only tracks that are effectively being read 2022-10-19 17:03:04 +02:00
aler9
afcb874657 add missing tests 2022-08-23 13:47:48 +02:00
aler9
44f29c9ba3 api: mark RTMPS connections as rtmpsConns instead of rtmpConns (#1099) 2022-08-23 13:28:18 +02:00
aler9
bbfea63539 rtmp: read or write tracks only after interacting with the path 2022-08-22 12:24:38 +02: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
85ce12199a rtmp source: allow outgoing acknowledges 2022-08-16 18:44:31 +02:00
aler9
e255d004e3 rtmp server: change value of MessageStreamID of outgoing messages 2022-08-16 18:44:31 +02:00
Alessandro Ros
820ba067f2 support RTMPS (#1089) 2022-08-16 18:44:31 +02:00
aler9
51e0bbd975 rtmp server: stop inserting a AV_SEQHDR message before every IDR
AV_SEQHDR contains SPS and PPS.

It is useless to resend it after initialization since SPS/PPS are
automatically added before every IDR.
2022-08-16 18:44:31 +02:00