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
282d155a4f
update gortsplib
2022-11-15 23:47:12 +01:00
aler9
96433e753b
fix tests
2022-10-25 14:06:09 +02:00
aler9
3e9d19e5e3
hls: split fmp4/mpegts muxer tests
2022-09-17 22:21:16 +02:00
aler9
f1fb00b80f
update golangci-lint
2022-09-17 21:19:45 +02:00
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
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
41b08c9f50
update gortsplib
2022-06-24 17:00:28 +02:00
aler9
ec4c40b222
update gortsplib
2022-06-23 13:54:48 +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
acd788d632
update gortsplib
2022-06-02 20:58:48 +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
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
2c485f918b
fix tests
2022-04-08 18:19:53 +02:00
aler9
6385fcdea5
hls muxer: improve tests
2022-03-20 17:46:24 +01:00
aler9
2680ffcecb
hls: add EXT-X-PROGRAM-DATE-TIME tag
2022-02-22 14:31:32 +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
aler9
343a5f17fb
hls: add new parameter hlsSegmentMaxSize
2022-01-30 17:54:05 +01:00
aler9
2bfdcc7d89
update gortsplib
2022-01-30 17:43:03 +01:00
aler9
4c7da3d80e
hls: improve tests
2022-01-29 11:36:14 +01:00
aler9
bb5129d219
hls: fix intermittent audio on iOS
2021-12-23 19:18:36 +01:00
aler9
18a6e04854
hls: fix Android compatibility by adding missing field into ADTS packets ( #749 )
2021-12-23 19:13:25 +01:00
aler9
82d8dfbc6d
hls: correctly compute segment duration
...
Segment duration is now (current PTS - first PTS in segment)
Previously it was (last PTS in segment - first PTS in segment)
2021-11-30 21:30:32 +01:00
aler9
9398cea0c2
update golangci-lint
2021-09-09 23:05:54 +02:00
aler9
02afa8ff99
rtmp, hls: remove initial difference of 2secs between PTS and DTS of H264
2021-09-07 10:04:58 +02:00
aler9
b65207012c
update gortsplib
2021-08-25 19:51:59 +02:00
aler9
92523c2a13
hls: insert segments into playlist only after they're complete
...
In this way, EXT-X-TARGETDURATION and EXTINF are always filled correctly.
If no segments have been generated yet, the playlist is not returned
until a segment is inserted or the muxer is closed. This causes timeout
issues on iOS Safari, that are solved by waiting for a fetch() before starting
the video.
2021-08-23 13:12:09 +02:00
aler9
96cb56621a
hls: add primary playlist
2021-08-16 18:07:10 +02:00
aler9
600f7bf48c
hls: move NALU filtering into hls muxer
2021-08-14 16:35:25 +02:00
aler9
d5b10fdd66
hls: improve tests
2021-08-14 16:35:25 +02:00
aler9
c3c643c602
hls: move muxer into dedicated object
2021-07-24 18:31:54 +02:00