Commit Graph

100 Commits

Author SHA1 Message Date
Alessandro Ros
22b120ef22 update list of supported codecs inside error messages (#2058) (#2073) 2023-07-19 00:14:50 +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
6e5f87f65e hls: fix 404 error when hlsAlwaysRemux and sourceOnDemand are both true (#1818) (#1834) 2023-05-18 23:14:18 +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
9c79197f36 api: add pagination to all /list endpoints (#1808) 2023-05-16 19:48:13 +02:00
Alessandro Ros
bf4d6c905f hls muxer: show index page even if stream is not present (#1806)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-05-16 19:23:02 +02:00
Alessandro Ros
39c072edd6 change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Alessandro Ros
a14246d776 webrtc: support publishing with WHIP and reading with WHEP (#1800) 2023-05-16 15:59:37 +02:00
Alessandro Ros
1688e5d2e5 support publishing with WebRTC (#1659) (#1786) 2023-05-14 14:18:03 +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
f3a728b918 update gohlslib (#1684)
Some checks failed
apidocs
code
mod-tidy
test32
test64
test_highlevel
2023-04-11 22:01:41 +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
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
f4b9133bb8 update gohlslib (#1565) 2023-03-12 13:22:57 +01:00
Alessandro Ros
8ad376de53 move HLS implementation into gohlslib (#1557) 2023-03-10 13:26:56 +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
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
36d2fbcd12 hls muxer: fix race condition 2023-01-08 21:57:15 +01:00
aler9
d5dfce16ea hls muxer: fix race condition 2023-01-08 21:16:20 +01:00
aler9
7420ef1ce4 hls muxer: avoid infinite loop when hlsAlwaysRemux is true
when hlsAlwaysRemux is true and a muxer fails, add a pause between its
recreation, in order to avoid infinite loops
2023-01-08 16:08:10 +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
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
5efe97abf1 Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
aler9
478607a602 hls muxer: ask credentials again after failed attemps 2022-12-14 23:51:18 +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
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
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
c9de689a72 hls muxer: print only tracks that are effectively being converted 2022-10-19 17:01:26 +02:00
aler9
1e788f81fd hls muxer: add WWW-Authenticate header in case of external authentication 2022-08-27 18:26:07 +02:00
aler9
71f927ecd5 hls: allow setting current time when writing packets 2022-08-27 15:43:25 +02:00
aler9
960cfb9f99 api: always encode timestamps wth RFC3339 (#1093)
this fixes "lastRequest" in /v1/hlsmuxers/list that was encoded in a
wrong format
2022-08-23 13:24:27 +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
d195c0421e fix typo 2022-08-16 18:44:31 +02:00
aler9
cb8aec8844 print track codecs into logs 2022-08-15 16:29:40 +02:00
aler9
69e617bc73 hls: fix multiple timestamp issues introduced by previous commits 2022-08-14 14:55:25 +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
5ba46e6c8f update gortsplib 2022-08-14 12:50:04 +02:00
aler9
a8822b9f15 hls muxer / source: route AAC units singularly
This aligns the HLS implementation with the rest of the server. In case
of HLS/MPEGTS, the server now generates an ADTS packet for each AU,
without grouping multiple AUs into a single ADTS packet.
2022-08-14 12:19:11 +02:00
aler9
af7a815f83 update gortsplib 2022-08-05 23:50:45 +02:00
aler9
092a2be3a8 api: add "created" field to RTSP sessions, RTMP connections, HLS muxers 2022-08-05 14:39:07 +02:00