Commit Graph

33 Commits

Author SHA1 Message Date
Alessandro Ros
cf86dbb303 switch to gortsplib/v4 (#2244) 2023-08-26 18:54:28 +02:00
Alessandro Ros
659f19f8bb enable errcheck (#2201)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-08-13 16:38:23 +02:00
Alessandro Ros
61d300396d remove 'disable' from names of configuration parameters (#2101)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-08-06 21:40:08 +02:00
Alessandro Ros
8bb71ac8d8 srt, udp: support reading and writing MPEG-1 audio streams (#2147) 2023-08-05 14:47:20 +02:00
Alessandro Ros
bc3084ae7b support proxying WebRTC streams (#2142)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-08-03 23:12:05 +02:00
Alessandro Ros
b4e3033ea3 support publishing, reading, proxying with SRT (#2068)
Some checks reported warnings
lint / code (push) Has been cancelled
lint / mod-tidy (push) Has been cancelled
lint / apidocs (push) Has been cancelled
test / test64 (push) Has been cancelled
test / test32 (push) Has been cancelled
test / test_highlevel (push) Has been cancelled
2023-07-31 21:20:09 +02:00
Alessandro Ros
a14246d776 webrtc: support publishing with WHIP and reading with WHEP (#1800) 2023-05-16 15:59:37 +02:00
Alessandro Ros
f079fd365e fix race condition in tests (#1781) 2023-05-09 16:29: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
02e6c24c83 update dependencies (#1698) 2023-04-13 18:15:13 +02:00
Alessandro Ros
2dffccf9c1 update gortsplib, gohlslib (#1637) 2023-04-01 18:39:12 +02:00
Alessandro Ros
13fa14168f tests: fix race condition in TestHLSSource (#1506) 2023-02-23 15:20:02 +01:00
Alessandro Ros
d7e493c77e tests: fix race condition into TestHLSSource (#1503) 2023-02-22 21:08:10 +01:00
Alessandro Ros
339d6ab16e hls source: set type of audio medias to 'audio' (#1489)
it was wrongly set to "video".
2023-02-19 00:28:50 +01:00
aler9
fbf8e82db5 update gortsplib 2022-12-28 20:32:03 +01:00
aler9
ec86401037 webrtc: make HTTPS optional (#1312) 2022-12-19 23:26:07 +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
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
Alessandro Ros
bf14467331 move high-level tests into dedicate workflow (#1219) 2022-11-02 18:25:49 +01: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
680b348902 hls muxer: change m3u8 Content-Type to application/x-mpegURL 2022-10-18 11:02:52 +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
67e8a01d56 rtmp: split net.Conn from rtmp.Conn 2022-07-09 17:25:33 +02:00
aler9
08ddc9f83d update gortsplib 2022-06-27 17:52:20 +02:00
Alessandro Ros
e115983296 Implement Low-Latency HLS (#938)
* add hlsVariant parameter

* hls: split muxer into variants

* hls: implement fmp4 segments

* hls muxer: implement low latency mode

* hls muxer: support audio with fmp4 mode

* hls muxer: rewrite file router

* hls muxer: implement preload hint

* hls muxer: add various error codes

* hls muxer: use explicit flags

* hls muxer: fix error in aac pts

* hls muxer: fix sudden freezes with video+audio

* hls muxer: skip empty parts

* hls muxer: fix video FPS

* hls muxer: add parameter hlsPartDuration

* hls muxer: refactor fmp4 muxer

* hls muxer: fix CAN-SKIP-UNTIL

* hls muxer: refactor code

* hls muxer: show only parts of last 2 segments

* hls muxer: implementa playlist delta updates

* hls muxer: change playlist content type

* hls muxer: improve video dts precision

* hls muxer: fix video sample flags

* hls muxer: improve iphone audio support

* hls muxer: improve mp4 timestamp precision

* hls muxer: add offset between pts and dts

* hls muxer: close muxer in case of error

* hls muxer: stop logging requests with the info level

* hls muxer: rename entry into sample

* hls muxer: compensate video dts error over time

* hls muxer: change default segment count

* hls muxer: add starting gap

* hls muxer: set default part duration to 200ms

* hls muxer: fix audio-only streams on ios

* hls muxer: add playsinline attribute to video tag of default web page

* hls muxer: keep mpegts as the default hls variant

* hls muxer: implement encryption

* hls muxer: rewrite dts estimation

* hls muxer: improve DTS precision

* hls muxer: use right SPS/PPS for each sample

* hls muxer: adjust part duration dynamically

* add comments

* update readme

* hls muxer: fix memory leak

* hls muxer: decrease ram consumption
2022-05-31 19:17:26 +02:00
aler9
35b3541e4f hls client: add limit on AU size 2022-04-29 12:02:11 +02:00
aler9
d929197b21 propagate H264 packets throughout the server 2022-04-08 18:19:53 +02:00
aler9
3fc4ca6465 update gortsplib; downgrade pion/rtp to v1 2022-04-01 12:04:21 +02: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
f7419586af update gortsplib 2021-11-12 22:29:56 +01:00
aler9
3b0327233e move hls utils into gortsplib 2021-09-23 20:14:20 +02:00
aler9
df4c268813 support proxying HLS 2021-09-05 18:00:29 +02:00