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.
3 years ago
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.
3 years ago
aler9
5ad2ea8924
hls: move mpegts writer into dedicated folder
3 years ago
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.
3 years ago
aler9
af7a815f83
update gortsplib
3 years ago
aler9
08ddc9f83d
update gortsplib
3 years ago
aler9
41b08c9f50
update gortsplib
3 years ago
aler9
ec4c40b222
update gortsplib
3 years ago
aler9
9bd8b2cfb6
rtmp server, hls muxer: fix DTS in case of B-frames and remove PTS-DTS offset
3 years ago
aler9
4073013f68
hls muxer: stop normalizing PTS
3 years ago
aler9
acd788d632
update gortsplib
3 years ago
aler9
2ed1aa3d11
hls muxer, rtmp server: extract DTS from samples
3 years ago
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
3 years ago
aler9
095b90b7ef
hls muxer: fix PCR insertion when stream is audio only
3 years ago
aler9
0605a2f369
update linter
3 years ago
aler9
4049a01d29
hls muxer: fix bad computation of pts
3 years ago
aler9
407426419a
fix tests
3 years ago
aler9
bdf80a0dd3
hls muxer: simplify code
3 years ago
aler9
33bbddef94
update golangci-lint
3 years ago
aler9
2680ffcecb
hls: add EXT-X-PROGRAM-DATE-TIME tag
4 years ago
aler9
9bbb188392
hls: fix computation of endPTS
4 years ago
aler9
43c3b7b60d
hls: fix AU counting of audio-only tracks
4 years ago
aler9
3e8668f9e2
rtsp server: allow again H264 tracks without SPS or PPS in the SDP ( #787 )
4 years ago
aler9
343a5f17fb
hls: add new parameter hlsSegmentMaxSize
4 years ago
aler9
2bfdcc7d89
update gortsplib
4 years ago
aler9
18b7d9d65b
hls: create first segment only after the first IDR is received
4 years ago
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)
4 years ago
aler9
e4a5732978
hls: cleanup
4 years ago
aler9
3b0327233e
move hls utils into gortsplib
4 years ago
aler9
ef4b925209
hls: fix discontinuity of TS counters between segments
4 years ago
aler9
df4c268813
support proxying HLS
4 years ago
aler9
b65207012c
update gortsplib
4 years ago
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.
4 years ago
aler9
6b6d314a07
hls: revert 93b1433
and send PCR once in a while
4 years ago
aler9
b3c13fcf9a
hls: do not send DTS if PTS = DTS
4 years ago
aler9
bd5e6d1027
hls: send PCR with every IDR NALU
4 years ago
aler9
93b143395e
hls: send PCR once, at the beginning of every TS segment
4 years ago
aler9
600f7bf48c
hls: move NALU filtering into hls muxer
4 years ago
aler9
6ad638d0e8
hls: fix compatibility with video.js and iOS
...
add AUDs to all h264 packet groups
4 years ago
aler9
5a814480b3
hls: write PMT/PAT tables once at the beginning of every TS segment
4 years ago
aler9
c3c643c602
hls: move muxer into dedicated object
4 years ago
aler9
9062dbf883
move most components into internal/core
...
in this way coverage can be computed correctly.
4 years ago
aler9
f7d3023921
HLS converter: fill correctly EXTINF and EXT-X-TARGETDURATION in stream manifest ( #418 )
4 years ago
aler9
bc9cbc8605
put protocol before entities
4 years ago
aler9
a5d3b43197
rename clienthls into converterhls
4 years ago
aler9
3ec4ba6698
HLS client: write PMT at the beginning of every segment
4 years ago
aler9
dee045f961
implement reading with HLS
4 years ago