Commit Graph

62 Commits

Author SHA1 Message Date
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
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
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
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
85ce12199a rtmp source: allow outgoing acknowledges 2022-08-16 18:44:31 +02:00
Alessandro Ros
820ba067f2 support RTMPS (#1089) 2022-08-16 18:44:31 +02:00
aler9
176f2f0729 rtmp: invert flag of InitializeServer() and InitializeClient() 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
cb8aec8844 print track codecs into logs 2022-08-15 16:29:40 +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
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
Alessandro Ros
9e6abc6e9f rtmp: rewrite implementation of rtmp connection (#1047)
* rtmp: improve MsgCommandAMF0

* rtmp: fix MsgSetPeerBandwidth

* rtmp: add message tests

* rtmp: replace implementation with new one

* rtmp: rename handshake functions

* rtmp: avoid calling useless function

* rtmp: use time.Duration for PTSDelta

* rtmp: fix decoding chunks with relevant size

* rtmp: rewrite implementation of rtmp connection

* rtmp: fix tests

* rtmp: improve error message

* rtmp: replace h264 config implementation

* link against github.com/notedit/rtmp

* normalize MessageStreamID

* rtmp: make acknowledge optional

* rtmp: fix decoding of chunk2 + chunk3

* avoid using encoding/binary
2022-07-17 15:17:18 +02:00
aler9
67e8a01d56 rtmp: split net.Conn from rtmp.Conn 2022-07-09 17:25:33 +02:00
aler9
bf1f45df32 rtmp: add conn handshake tests 2022-07-09 16:19:49 +02:00
aler9
08ddc9f83d update gortsplib 2022-06-27 17:52:20 +02:00
aler9
13fb24da39 fix rtmp -> rtsp audio conversion (#932) 2022-05-13 16:59:52 +02:00
aler9
35b3541e4f hls client: add limit on AU size 2022-04-29 12:02:11 +02:00
aler9
6b86607092 rtsp source: improve support for AAC tracks with custom parameters 2022-04-15 17:01:18 +02:00
aler9
58b2e7d24f move trackID into data 2022-04-09 13:16:59 +02:00
aler9
dffe63f1bc add SPS and PTS before IDRs of all incoming H264 streams; stop filtering H264 inside single protocols 2022-04-08 18:19:53 +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
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
5504ff44b6 rtsp: parse all incoming RTP/RTCP packets 2022-02-18 00:14:52 +01:00
aler9
983469a1f9 rtmp: support clients that publish with empty metadata or no metadata (#386) (#769) 2022-02-12 17:48:55 +01:00
aler9
2bfdcc7d89 update gortsplib 2022-01-30 17:43:03 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +01:00
aler9
11760fd79f support external authentication (#504) (#517) 2021-12-22 19:13:56 +01:00
aler9
1dff3239d2 remove rtmp.Conn.NetConn() 2021-12-22 17:33:37 +01:00
aler9
f7419586af update gortsplib 2021-11-12 22:29:56 +01:00
aler9
ab70f946b0 unexport members of private structs 2021-10-27 21:01:00 +02:00
aler9
75d4f1437d add "error" log level 2021-10-27 19:54:36 +02:00
aler9
e62ed283d1 rtmp: do not raise an error in case of metadata packets (#577) 2021-09-30 11:57:03 +02:00
aler9
e78544f23e update gortsplib 2021-09-28 15:47:56 +02:00
aler9
ca9645c2f9 api: decode durations from strings instead of numbers
This allows to use human-readable durations with the API,
for instance: "5s" instead of 5000000000
2021-09-26 23:21:37 +02:00
aler9
3b0327233e move hls utils into gortsplib 2021-09-23 20:14:20 +02:00