Commit graph

94 commits

Author SHA1 Message Date
Alessandro Ros
8bb71ac8d8
srt, udp: support reading and writing MPEG-1 audio streams (#2147) 2023-08-05 14:47:20 +02:00
Alessandro Ros
d696a782f7
rtmp: simplify API (#2130) 2023-07-31 19:41:59 +02:00
Alessandro Ros
ab8cf3f0cc
add rtmp.Reader, rtmp.Writer (#2124)
needed by #2068
2023-07-30 23:15:22 +02:00
Alessandro Ros
b42154fa6a
return an error in case the random number generator fails (#2120) 2023-07-30 22:30:41 +02:00
Alessandro Ros
681a00347d
support reading MP4A-LATM-encoded AAC with RTMP and HLS (#1694) (#1898) 2023-06-02 00:38:27 +02:00
Alessandro Ros
efda44cfae
rtmp: fix timestamp conversion from RTSP/HLS to RTMP (#1899)
this was causing moments of silence and timing errors when reading with
RTMP a stream originally published with RTSP or HLS.
2023-06-02 00:34:09 +02:00
Alessandro Ros
22f05e97e8
replace math/rand with crypto/rand (#1872) 2023-05-28 17:10:40 +02:00
Alessandro Ros
bbd8f006fe
rtmp: fix crash when publishing video-only tracks (#1819) (#1822)
this fixes a regression introduced in v0.23.0.
2023-05-18 15:05:26 +02:00
Alessandro Ros
39c072edd6
change repository owner (#1801) 2023-05-16 16:14:20 +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
22fe65509b
cleanup (#1754) 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
c7938eb832
rtmp: fix panic when publishing audio-only streams (#1459) (#1502) 2023-02-22 19:36:04 +01:00
Alessandro Ros
ef214b7649
rtmp server: fix compatibility with Neko (#1405) 2023-01-22 13:36:36 +01:00
aler9
97c1e68c0b improve tests 2023-01-19 19:30:19 +01:00
Alessandro Ros
e3d00878b3
rtmp server: fix handshake and compatibility with streamlabs (#1244) (#1398) 2023-01-19 16:03:48 +01:00
Alessandro Ros
c79c3c83cb
rtmp server: improve efficiency of outgoing packets (#1395)
group together messages by using a buffered writer between the network
connection and the WriteMessage() function
2023-01-19 13:27:54 +01:00
aler9
b20abbed6c webrtc muxer: keep the WebSocket connection
The WebSocket connection is kept open in order to use it to notify
shutdowns.
2023-01-08 15:37:47 +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
aler9
282d155a4f update gortsplib 2022-11-15 23:47:12 +01:00
Alessandro Ros
6471800b52
rtmp server: fix responses to ping requests (#1245) 2022-11-14 11:39:33 +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
aler9
f1fb00b80f update golangci-lint 2022-09-17 21:19:45 +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
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
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
0db2d3eb8c rtmp: improve performance
reuse existing structs instead of allocating them during every read()
2022-08-15 16:11:23 +02:00
aler9
af7a815f83 update gortsplib 2022-08-05 23:50:45 +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
aler9
822a896a82 rtmp: fix rtmp -> rtsp audio conversion 2022-07-17 09:54:16 +02:00
aler9
ef3e18a9e9 rtmp: add handshake functions 2022-07-16 15:18:04 +02:00
aler9
772c5b2363 rtmp: improve tests 2022-07-16 12:42:48 +02:00
aler9
2a0567ab4a rtmp: improve tests 2022-07-14 21:49: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
a19f45f736 rtmp: fix s1 generation 2022-07-09 15:00:47 +02:00
aler9
8e14dff6d0 rtmp: fix tests 2022-07-09 14:04:51 +02:00
aler9
e771f9eba0 rename file 2022-07-02 22:11:26 +02:00