Commit Graph

1331 Commits

Author SHA1 Message Date
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 27ae0b9812 rtmp client: validate command ID of results 2022-08-22 11:20:23 +02:00
aler9 59391a4366 rtmp client: fix play command id 2022-08-22 10:57:29 +02:00
aler9 d4945ab7bc rtmp: cleanup 2022-08-22 10:55:06 +02:00
aler9 b06498d24b rtmp: remove useless comments from tests 2022-08-22 09:49:35 +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 e858c968d9 update gortsplib 2022-08-17 17:14:15 +02:00
aler9 85ce12199a rtmp source: allow outgoing acknowledges 2022-08-16 18:44:31 +02:00
aler9 7216fc683c rpicamera: fix crash 2022-08-16 18:44:31 +02:00
aler9 ca46d56184 fix linting 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 d195c0421e fix typo 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
aler9 4990e98993 rtmp: fix reading metadata from onMetadata
when there's no audio and Conn is a client, onMetadata was skipped and
tracks were read by using the fallback method. Fix this.
2022-08-16 18:44:31 +02:00
aler9 a19a20abfb rtmp: set right command ID when replying to a play request 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
aler9 f5a031d72c fix deadlock when sourceOnDemand is true and source exits 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 101ea25448 api: add published track list to /v1/paths/list 2022-08-15 16:56:09 +02:00
aler9 cb8aec8844 print track codecs into logs 2022-08-15 16:29:40 +02:00
aler9 0db2d3eb8c rtmp: improve performance
reuse existing structs instead of allocating them during every read()
2022-08-15 16:11:23 +02:00
aler9 4f023b25e8 update gortsplib 2022-08-15 13:50:46 +02:00
aler9 69e617bc73 hls: fix multiple timestamp issues introduced by previous commits 2022-08-14 14:55:25 +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 5ba46e6c8f update gortsplib 2022-08-14 12:50:04 +02:00
aler9 e146df9ed7 hls: move fMP4 generator into dedicated folder 2022-08-14 12:44:01 +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 3f0771bb31 fix variable name 2022-08-14 11:24:05 +02:00
Alessandro Ros 6a3eb81acf
update golangci-lint (#1088) 2022-08-13 18:17:31 +02:00
aler9 a35cc53ba2 update gortsplib 2022-08-07 14:05:28 +02:00
aler9 af7a815f83 update gortsplib 2022-08-05 23:50:45 +02:00
aler9 2b5661c74e update readme 2022-08-05 18:16:07 +02:00
aler9 384078c352 update readme 2022-08-05 18:13:43 +02:00
aler9 092a2be3a8 api: add "created" field to RTSP sessions, RTMP connections, HLS muxers 2022-08-05 14:39:07 +02:00
aler9 055e08ac6c remove "on" prefix from most communication functions between components 2022-08-04 21:07:45 +02:00
aler9 ea528f47e1 speed up tests 2022-08-04 20:34:58 +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 ac0a5e9fc7 update readme 2022-08-03 09:58:26 +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 8267f4c3bb bump golang to 1.18, node to 16 2022-07-25 22:57:48 +02:00
aler9 f24700526b update gortsplib 2022-07-24 16:05:03 +02:00
aler9 8a4743fe9a hls muxer: when hlsAlwaysRemux is on, automatically recreate muxers in
case of errors
2022-07-24 13:06:09 +02:00
aler9 c769088e6b improve release workflow 2022-07-23 14:21:55 +02:00
aler9 f7c08f577a rtmp: fix decoding of chunk3 + chunk3 2022-07-19 16:42:11 +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 50d205274f fix tests 2022-07-17 12:02:17 +02:00