Commit Graph
74 Commits
Author SHA1 Message Date
Alessandro RosandGitHub 8bb71ac8d8 srt, udp: support reading and writing MPEG-1 audio streams (#2147) 2023-08-05 14:47:20 +02:00
Alessandro RosandGitHub bc3084ae7b support proxying WebRTC streams (#2142) 2023-08-03 23:12:05 +02:00
Alessandro RosandGitHub d696a782f7 rtmp: simplify API (#2130) 2023-07-31 19:41:59 +02:00
Alessandro RosandGitHub ab8cf3f0cc add rtmp.Reader, rtmp.Writer (#2124)
needed by #2068
2023-07-30 23:15:22 +02:00
Alessandro RosandGitHub 3967caa530 join validation of TLS fingerprints (#2071) 2023-07-18 23:39:26 +02:00
Alessandro RosandGitHub 39c072edd6 change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Alessandro RosandGitHub 1688e5d2e5 support publishing with WebRTC (#1659) (#1786) 2023-05-14 14:18:03 +02:00
Alessandro RosandGitHub e8124e2f56 support publishing H265 and AV1 tracks with Enhanced RTMP (#1393) (#1446) (#1621) (#1756) 2023-05-04 20:37:25 +02:00
Alessandro RosandGitHub 225220ddd5 print warning in case no key frames are being received (#1763) 2023-05-04 20:16:41 +02:00
Alessandro RosandGitHub 2d17dff3b5 support publishing, reading and proxying MPEG-2 audio (MP3) tracks with RTMP (#1102) (#1736) 2023-04-25 18:13:51 +02:00
Alessandro RosandGitHub 053f2ec282 rename repository and executable (#1641) 2023-04-01 19:52:06 +02:00
Alessandro RosandGitHub 2dffccf9c1 update gortsplib, gohlslib (#1637) 2023-04-01 18:39:12 +02:00
Alessandro RosandGitHub e8bdad8a1e rename Data into Unit (#1556) 2023-03-10 12:44:59 +01:00
Alessandro RosandGitHub 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 RosandGitHub 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 RosandGitHub 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 RosandGitHub 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 RosandGitHub 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 RosandGitHub 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 Rosandaler9 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 Rosandaler9 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 RosandGitHub 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
aler9andAlessandro Ros 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
aler9andAlessandro Ros d929197b21 propagate H264 packets throughout the server 2022-04-08 18:19:53 +02:00
aler9andAlessandro Ros 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
aler9andAlessandro Ros 5504ff44b6 rtsp: parse all incoming RTP/RTCP packets 2022-02-18 00:14:52 +01:00