Commit Graph

115 Commits

Author SHA1 Message Date
aler9 42b6e1f922 hls: use segment IDs as segment names
when hlsVariant is mpegts, this prevents conflicts that were previously
caused by the fact that the timestamp was used as segment name.
2022-08-27 16:21:24 +02:00
aler9 4c0833664d hls: fix blocking playlists
when hlsVariant is lowLatency and hlsSegmentCount is not 7, segment IDs
where assigned erroneously.
2022-08-27 16:15:47 +02:00
aler9 a018f214bc hls: add fmp4 tests 2022-08-27 16:04:38 +02:00
aler9 43dc57716b speed up tests 2022-08-27 15:46:43 +02:00
aler9 71f927ecd5 hls: allow setting current time when writing packets 2022-08-27 15:43:25 +02:00
aler9 5ad2ea8924 hls: move mpegts writer into dedicated folder 2022-08-27 12:41:30 +02:00
aler9 b5dd658d29 fmp4: move avcc encoding into writer 2022-08-27 12:11:00 +02:00
aler9 f952ff25f6 remove useless append() 2022-08-14 13:14:08 +02:00
aler9 e146df9ed7 hls: move fMP4 generator into dedicated folder 2022-08-14 12:44:01 +02:00
aler9 a8822b9f15 hls muxer / source: route AAC units singularly
This aligns the HLS implementation with the rest of the server. In case
of HLS/MPEGTS, the server now generates an ADTS packet for each AU,
without grouping multiple AUs into a single ADTS packet.
2022-08-14 12:19:11 +02:00
aler9 af7a815f83 update gortsplib 2022-08-05 23:50:45 +02:00
aler9 4c2a4f9642 hls muxer: create only 7 initial gaps (#999)
instead of filling the entire segment list.
2022-07-05 23:52:11 +02:00
aler9 08ddc9f83d update gortsplib 2022-06-27 17:52:20 +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 3e5f62156d fix DTS error in case of H264 NALUs without POC 2022-06-15 10:50:59 +02:00
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