Commit Graph

99 Commits

Author SHA1 Message Date
aler9
750743d1ed move mp4 writer into dedicated folder 2022-06-04 16:51:57 +02:00
aler9
cd93b70612 hls muxer: do not use EXT-X-GAP with fmp4 variant 2022-06-03 13:34:11 +02:00
aler9
2cd71785f4 hls muxer: cache init.mp4 content 2022-06-03 13:29:26 +02:00
aler9
9bd8b2cfb6 rtmp server, hls muxer: fix DTS in case of B-frames and remove PTS-DTS offset 2022-06-03 11:31:39 +02:00
aler9
4073013f68 hls muxer: stop normalizing PTS 2022-06-02 22:37:46 +02:00
aler9
acd788d632 update gortsplib 2022-06-02 20:58:48 +02:00
aler9
73a9444c8d hls muxer: remove useless pps storage 2022-06-02 13:40:30 +02:00
aler9
2ed1aa3d11 hls muxer, rtmp server: extract DTS from samples 2022-06-02 12:42:59 +02:00
aler9
e7f88bc12f move DTS extractor into gortsplib 2022-06-02 11:55:12 +02:00
aler9
93975552ac hls muxer: improve performance, decrease memory consumption 2022-06-01 10:13:37 +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
13fb24da39 fix rtmp -> rtsp audio conversion (#932) 2022-05-13 16:59:52 +02:00
aler9
ae23dde169 hls client: improve video / audio sync 2022-05-10 23:35:25 +02:00
aler9
901eae2f6b fix bias error in AAC timestamp 2022-05-10 13:29:32 +02:00
aler9
35b3541e4f hls client: add limit on AU size 2022-04-29 12:02:11 +02:00
aler9
095b90b7ef hls muxer: fix PCR insertion when stream is audio only 2022-04-28 13:04:13 +02:00
aler9
07591c7514 hls muxer: update primary playlist in case SPS/PPS changed 2022-04-24 13:01:27 +02:00
aler9
3b21da7762 hls muxer: add EXT-X-VERSION to primary playlist 2022-04-24 11:37:11 +02:00
aler9
889ebef249 hls muxer: add EXT-X-INDEPENDENT-SEGMENTS tag 2022-04-20 13:49:08 +02:00
aler9
db7ee22789 rtsp source: support AAC tracks with custom sizelength, indexlength and indexdeltalength
(https://github.com/aler9/gortsplib/pull/118)
2022-04-15 13:17:00 +02:00
aler9
76d4376476 hls muxer: fix crash in case of null SPS 2022-04-14 15:29:41 +02:00
aler9
2c485f918b fix tests 2022-04-08 18:19:53 +02:00
aler9
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
aler9
37e22b96cd HLS muxer: support dynamic H264 SPS/PPS 2022-04-08 18:19:53 +02:00
aler9
57cb2e99d1 HLS client: support dynamic H264 SPS/PPS 2022-04-08 18:19:53 +02:00
aler9
d929197b21 propagate H264 packets throughout the server 2022-04-08 18:19:53 +02:00
aler9
0605a2f369 update linter 2022-04-07 13:05:07 +02:00
aler9
4049a01d29 hls muxer: fix bad computation of pts 2022-03-20 18:42:19 +01:00
aler9
407426419a fix tests 2022-03-20 18:07:51 +01:00
aler9
bdf80a0dd3 hls muxer: simplify code 2022-03-20 17:58:39 +01:00
aler9
6385fcdea5 hls muxer: improve tests 2022-03-20 17:46:24 +01:00
aler9
56338e0084 hls client: do not create audio track when there's no audio track 2022-03-20 16:55:53 +01:00
aler9
99f3215cfe hls muxer: fix black screen on iOS when there's no audio track (#816) 2022-03-20 16:38:32 +01:00
aler9
d6e3bbb08b hls muxer: fix timezone 2022-03-17 17:43:08 +01:00
aler9
2b6ce9bc59 hls muxer: add milliseconds into EXT-X-PROGRAM-DATE-TIME 2022-03-17 17:35:07 +01:00
aler9
33bbddef94 update golangci-lint 2022-03-13 14:49:50 +01:00
aler9
eeb15773f9 hls client: rename ClientParent into ClientLogger 2022-03-08 18:15:26 +01:00
aler9
9cebeac039 hls client: ignore Annex-B decode errors 2022-03-08 18:15:26 +01:00
aler9
6e75093992 hls client: fix freeze that happened during a video decoding error 2022-03-08 18:15:26 +01:00
aler9
5f976f3f38 hls client: add tests for previous commmit 2022-03-08 18:15:26 +01:00
Victor Gavro
c13e33b1ed m3u8 relative url fixed 2022-03-08 18:15:26 +01:00
Victor Gavro
c3a1ee72bc m3u8 relative url fixed (urls starting with // and urls with query string) 2022-03-08 18:15:26 +01:00
aler9
2680ffcecb hls: add EXT-X-PROGRAM-DATE-TIME tag 2022-02-22 14:31:32 +01:00
aler9
9bbb188392 hls: fix computation of endPTS 2022-02-21 16:56:07 +01:00
aler9
fe32022edf hls client: move RTP packet generation outside client 2022-02-19 12:25:23 +01:00
aler9
d0e7c3c100 update docs 2022-02-18 21:03:33 +01:00
aler9
c1eb03da26 hls: split client code into multiple files 2022-02-18 10:46:52 +01:00
aler9
5504ff44b6 rtsp: parse all incoming RTP/RTCP packets 2022-02-18 00:14:52 +01:00
aler9
43c3b7b60d hls: fix AU counting of audio-only tracks 2022-01-30 18:35:01 +01:00
aler9
3e8668f9e2 rtsp server: allow again H264 tracks without SPS or PPS in the SDP (#787) 2022-01-30 17:59:24 +01:00