Commit Graph

350 Commits

Author SHA1 Message Date
aler9
af1e273237 update gortsplib, update go-mp4 2023-01-08 18:20:20 +01:00
aler9
2de0941e5c update gortsplib 2023-01-08 13:36:27 +01:00
aler9
9d19ccc837 add WebRTC and low-latency HLS tests 2023-01-07 12:33:28 +01:00
aler9
3f7009f72a hls source: support proxying any number of tracks
Tracks were previously limited to 2
2023-01-06 15:25:35 +01:00
aler9
034e42f463 hls muxer: support reading Opus tracks (#1338) 2023-01-03 18:36:13 +01:00
aler9
3a761e5e2f update go-mp4 2022-12-29 23:51:32 +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
0ab053ef8f update gortsplib 2022-12-27 13:49:21 +01:00
aler9
738c953a59 update gortsplib 2022-12-22 21:19:06 +01:00
aler9
96519ac23c update gortsplib 2022-12-19 13:57:48 +01:00
Alessandro Ros
5efe97abf1
Support reading with WebRTC (#1242) 2022-12-16 00:50:47 +01:00
aler9
6524130ab9 implement resizing of oversized H265 RTP packets 2022-12-14 18:54:35 +01:00
aler9
39da300345 update H265 track parameters when resolution, VPS, SPS or PPS change 2022-12-14 15:41:59 +01:00
aler9
4bafa4ea9b add dedicated processors for H265 and Opus 2022-12-13 21:26:35 +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
074cfa6712 update gortsplib 2022-12-12 18:23:23 +01:00
aler9
c44b4099c2 update gortsplib 2022-12-11 22:09:55 +01:00
aler9
88fcb25759 update gortsplib 2022-12-09 00:12:17 +01:00
aler9
7a49b92d9b update gortsplib 2022-11-28 08:59:49 +01:00
aler9
282d155a4f update gortsplib 2022-11-15 23:47:12 +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
22f52b0d96 update gortsplib 2022-11-05 17:28:53 +01:00
aler9
ac8207c8f4 update gortsplib 2022-11-03 21:44:31 +01:00
aler9
7eb7883270 improve performance 2022-11-03 15:27:21 +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
f0514b3983 update gortsplib 2022-11-01 16:13:18 +01:00
aler9
584cc9357a rtsp source: log decode errors 2022-10-31 19:11:20 +01:00
aler9
23244471ad update gortsplib 2022-10-28 16:35:13 +02:00
aler9
ff26b88760 update gortsplib 2022-10-25 14:18:44 +02:00
Alessandro Ros
e5ab731d14
Improve HLS client (#1179)
* hls source: support fMP4s video streams

* hls source: start reading live streams from (end of playlist - starting point)

* hls client: wait processing of current fMP4 segment before downloading another one

* hls client: support fmp4 trun boxes with default sample duration, flags and size

* hls client: merge fmp4 init file reader and writer

* hls client: merge fmp4 part reader and writer

* hls client: improve precision of go <-> mp4 time conversion

* hls client: fix esds generation in go-mp4

* hls client: support audio in separate playlist

* hls client: support an arbitrary number of tracks in fmp4 init files

* hls client: support EXT-X-BYTERANGE

* hls client: support fmp4 segments with multiple parts at once

* hls client: support an arbitrary number of mpeg-ts tracks

* hls client: synchronize tracks around a primary track

* update go-mp4

* hls: synchronize track reproduction around a leading one

* hls client: reset stream if playback is too late

* hls client: add limit on DTS-RTC difference

* hls client: support again streams that don't provide codecs in master playlist
2022-10-23 14:04:33 +02:00
aler9
31d9429c18 hls source: refactor client 2022-10-09 12:56:48 +02:00
aler9
5b5db2f833 hls client: fix reading some streams with odd Annex-B format
see
b3c70f56f7
2022-10-08 20:22:37 +02:00
aler9
7f7a6e2200 switch to go 1.18 in linter and go.mod 2022-09-17 20:18:07 +02:00
aler9
27fb9fdb7e update gortsplib 2022-08-27 17:35:45 +02:00
aler9
6793920d36 update gortsplib 2022-08-25 23:20:21 +02:00
aler9
e858c968d9 update gortsplib 2022-08-17 17:14:15 +02:00
aler9
4f023b25e8 update gortsplib 2022-08-15 13:50:46 +02:00
aler9
5ba46e6c8f update gortsplib 2022-08-14 12:50:04 +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
f24700526b update gortsplib 2022-07-24 16:05:03 +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
f28540b9f4 update gortsplib 2022-07-05 23:46:32 +02:00
aler9
08ddc9f83d update gortsplib 2022-06-27 17:52:20 +02:00
aler9
31769c5772 update gortsplib 2022-06-24 20:28:38 +02:00
aler9
41b08c9f50 update gortsplib 2022-06-24 17:00:28 +02:00
aler9
ec4c40b222 update gortsplib 2022-06-23 13:54:48 +02:00
aler9
76fb3b8d71 update gortsplib 2022-06-22 23:29:39 +02:00