Commit graph

233 commits

Author SHA1 Message Date
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
3f0771bb31 fix variable name 2022-08-14 11:24:05 +02:00
aler9
af7a815f83 update gortsplib 2022-08-05 23:50:45 +02:00
aler9
092a2be3a8 api: add "created" field to RTSP sessions, RTMP connections, HLS muxers 2022-08-05 14:39:07 +02:00
aler9
055e08ac6c remove "on" prefix from most communication functions between components 2022-08-04 21:07:45 +02:00
aler9
ea528f47e1 speed up tests 2022-08-04 20:34:58 +02:00
aler9
7067c02030 api: return static sources in paths/list even if sourceOnDemand is true 2022-08-04 20:28:38 +02:00
aler9
6afbdf1015 add intermediate layer between path and static sources 2022-07-30 21:52:37 +02:00
aler9
34eb1d1e7a normalize sources 2022-07-28 14:26:48 +02:00
aler9
8a4743fe9a hls muxer: when hlsAlwaysRemux is on, automatically recreate muxers in
case of errors
2022-07-24 13:06:09 +02:00
Alessandro Ros
9e6abc6e9f
rtmp: rewrite implementation of rtmp connection (#1047)
* rtmp: improve MsgCommandAMF0

* rtmp: fix MsgSetPeerBandwidth

* rtmp: add message tests

* rtmp: replace implementation with new one

* rtmp: rename handshake functions

* rtmp: avoid calling useless function

* rtmp: use time.Duration for PTSDelta

* rtmp: fix decoding chunks with relevant size

* rtmp: rewrite implementation of rtmp connection

* rtmp: fix tests

* rtmp: improve error message

* rtmp: replace h264 config implementation

* link against github.com/notedit/rtmp

* normalize MessageStreamID

* rtmp: make acknowledge optional

* rtmp: fix decoding of chunk2 + chunk3

* avoid using encoding/binary
2022-07-17 15:17:18 +02:00
aler9
67e8a01d56 rtmp: split net.Conn from rtmp.Conn 2022-07-09 17:25:33 +02:00
aler9
bf1f45df32 rtmp: add conn handshake tests 2022-07-09 16:19:49 +02:00
aler9
f28540b9f4 update gortsplib 2022-07-05 23:46:32 +02:00
aler9
08ddc9f83d update gortsplib 2022-06-27 17:52:20 +02:00
aler9
fb5aa7bbf2 fix bug that caused on-demand commands to be closed after 10secs (#1000) 2022-06-24 18:04:45 +02:00
aler9
19e38930bd hls muxer: compensate latency by using maxLiveSyncPlaybackRate (#972) 2022-06-24 17:34:26 +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
e45820b2c0 hls server: show real client IPs when behind a proxy (#955) 2022-06-21 13:54:19 +02:00
aler9
3e5f62156d fix DTS error in case of H264 NALUs without POC 2022-06-15 10:50:59 +02:00
aler9
05bac43177 rtmp: fix compatibility with some dji drones (#928) 2022-06-11 00:19:06 +02:00
aler9
cb610a707c hls muxer: fix code 500 when a stream is not found 2022-06-08 00:39:34 +02:00
aler9
9d3fd3bc37 update gortsplib 2022-06-05 01:36:29 +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
2ed1aa3d11 hls muxer, rtmp server: extract DTS from samples 2022-06-02 12:42:59 +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
c5afa69174 fix regression that caused a source to be closed after 10secs when sourceOnDemand is yes (#949) 2022-05-28 13:54:04 +02:00
aler9
23ac079646 rtsp source: fix regression (#949)
This caused a periodic disconnection when sourceOnDemand is yes
2022-05-20 23:42:19 +02:00
aler9
13fb24da39 fix rtmp -> rtsp audio conversion (#932) 2022-05-13 16:59:52 +02:00
aler9
d6a804f592 rtsp server: improve performance when reading with TCP 2022-05-11 16:37:33 +02:00
aler9
0c4f6e2d43 rtmp server: fix bias error in AAC DTS 2022-05-10 23:35:19 +02:00
aler9
b6b99b142a hls muxer: prefer hls.js over native HLS 2022-05-10 17:35:52 +02:00
aler9
901eae2f6b fix bias error in AAC timestamp 2022-05-10 13:29:32 +02:00
aler9
58e3fa358e split handling of on-demand sources and on-demand publishers 2022-05-03 14:38:45 +02:00
aler9
98b3538289 fix panic that happens when publishing to a path with source = redirect (#933) 2022-05-03 11:45:47 +02:00
aler9
35b3541e4f hls client: add limit on AU size 2022-04-29 12:02:11 +02:00
aler9
709d727eab hls muxer: tune hls.js parameters 2022-04-27 18:55:31 +02:00
aler9
dedca93eca hls muxer: update hls.js 2022-04-25 18:57:40 +02:00
aler9
ae7e68c914 hls muxer: remove progressive flag; add liveSyncDurationCount, liveMaxLatencyDurationCount to hls.js 2022-04-25 18:57:16 +02:00
aler9
1e07636f86 change default RTSPS port (#867) 2022-04-16 16:24:40 +02:00
aler9
6b86607092 rtsp source: improve support for AAC tracks with custom parameters 2022-04-15 17:01:18 +02:00
aler9
f71b7d8967 fix tests 2022-04-10 17:47:55 +02:00
aler9
ce42c53a03 hls, rtmp: fix video/audio sync 2022-04-10 17:44:08 +02:00
aler9
f620484757 rtmp: always send decoder config before IDR frames 2022-04-10 17:07:42 +02:00
aler9
98c6cd4650 RTSP: automatically remux oversized RTP/H264 packets; drop parameter ReadBufferSize 2022-04-09 20:20:14 +02:00
aler9
58b2e7d24f move trackID into data 2022-04-09 13:16:59 +02:00
aler9
2c485f918b fix tests 2022-04-08 18:19:53 +02:00