aler9
08fa61e56d
do not add an 'all' path automatically if not present in the configuration file
2021-11-06 12:51:38 +01:00
aler9
322ea55534
split API definitions between their corresponding structs
2021-11-05 17:53:24 +01:00
aler9
afabd331d9
metrics: add hls_muxers metric
2021-11-05 17:29:13 +01:00
aler9
0c79efdab7
api: cleanup
2021-11-05 17:18:21 +01:00
aler9
79e73c5cb4
api: add /v1/hlsmuxers/list endpoint
2021-11-05 17:15:46 +01:00
aler9
fb311e31ec
add missing check on strict encryption + UDP multicast
2021-11-05 17:11:40 +01:00
aler9
6564c3511b
hls: change Muxer letter
2021-11-05 16:55:00 +01:00
aler9
e4ba689bfd
rtsp: print opened listeners in a single line
2021-11-03 22:44:17 +01:00
aler9
f801a9fa39
log the exact reason why a path is closed
2021-11-03 22:41:23 +01:00
aler9
9ab95cc603
use opened / closed instead of created / destroyed in logs
2021-11-03 22:31:02 +01:00
aler9
a867c469fd
fix automatic deletion of regexp paths ( #664 ) ( #680 )
2021-11-03 22:28:50 +01:00
aler9
2e7c56a24f
remove useless test
2021-11-03 21:46:06 +01:00
aler9
9245a79cf1
remove ffmpeg from tests
2021-11-03 21:42:29 +01:00
aler9
2d12c37074
use require.EqualError() in tests
2021-11-03 17:52:47 +01:00
aler9
aa01eaf12b
cleanup
2021-11-03 16:37:08 +01:00
aler9
47a975de09
hls: fix race condition
2021-11-01 11:07:37 +01:00
aler9
eab2663420
move VLC authentication hack into gortsplib
2021-10-30 15:05:27 +02:00
aler9
09a7e11066
add more fatal errors
2021-10-30 13:56:59 +02:00
aler9
0c4cfd0e53
update gortsplib
2021-10-30 13:55:05 +02:00
aler9
c9c9c88ac8
update golangci-lint
2021-10-30 13:06:29 +02:00
Konstantin Salnikov
a83f57bc3e
implement per-path metrics
2021-10-28 19:38:54 +02:00
aler9
161fa58bd6
hls: cleanup
2021-10-28 18:57:04 +02:00
aler9
af63360079
remove count of readers and publishers from log lines
2021-10-28 17:33:43 +02:00
aler9
9af006b488
allow to set logLevel: error in config
2021-10-28 17:29:27 +02:00
aler9
ab70f946b0
unexport members of private structs
2021-10-27 21:01:00 +02:00
aler9
07db2ce0ef
print log levels with 3 characters
2021-10-27 20:00:05 +02:00
aler9
75d4f1437d
add "error" log level
2021-10-27 19:54:36 +02:00
aler9
8875c8eaa6
rtsp: print exact reason when a session is destroyed ( #649 )
2021-10-27 19:49:43 +02:00
aler9
226e26e05f
metrics: use gin router
2021-10-27 12:14:23 +02:00
aler9
2af39db5be
hls: add https tests
2021-10-26 14:54:28 +02:00
aler9
9155bffefb
allow disabling HTTPS validation by using sourceFingerprint ( #665 )
2021-10-25 21:14:13 +02:00
aler9
d30822cb1b
make sourceFingerprint optional and allow standard certificate validation
2021-10-25 21:01:29 +02:00
aler9
be54bed373
remove useless checks
2021-10-22 18:43:46 +02:00
aler9
509bed355a
update gortsplib
2021-10-22 18:41:10 +02:00
aler9
f32d69a93d
fix race condition
2021-10-17 17:16:57 +02:00
aler9
e6238694af
api: log requests even with logLevel: info
2021-10-17 17:05:22 +02:00
aler9
c51ba926e0
hls: dump requests and responses when logLevel is debug
2021-10-17 17:02:15 +02:00
aler9
b65d715f0b
hls: add Server header
2021-10-17 16:51:35 +02:00
aler9
ef3fab477e
hls: use gin as HTTP router
2021-10-17 16:49:49 +02:00
aler9
37f63434ac
sort arrays in configuration and API ( #644 )
2021-10-17 15:40:17 +02:00
aler9
94e519f08f
conf: use dedicated interface to unmarshal from environment
2021-10-11 12:13:57 +02:00
aler9
b21efeb28f
restore logLevel: debug
2021-10-05 20:36:15 +02:00
aler9
0d4d81c333
remove useless code
2021-10-05 09:41:37 +02:00
aler9
b70a4bfe5b
fix regression that prevented setting config slices with env variables ( #612 )
2021-10-04 08:58:23 +02:00
aler9
0d15e2772a
close custom commands with SIGINT again ( #495 )
2021-10-03 16:09:40 +02:00
aler9
131148ecb4
fix lint
2021-10-03 16:08:10 +02:00
aler9
2a1b3e194d
avoid deadlock when a runOnDemand command is used and a path is deleted
2021-10-03 16:05:37 +02:00
aler9
0a9e414625
avoid closing readers twice
2021-10-03 16:01:40 +02:00
aler9
d2c668ceea
avoid deadlock when a runOnPublish command is reading and the publisher times out ( #595 ) ( #495 )
2021-10-03 15:58:24 +02:00
aler9
160966e81b
print log messages when runOnConnect and runOnRead are started or stopped
2021-10-03 15:46:06 +02:00
aler9
3149203f36
print log messages about custom commands closing after they are closed
2021-10-03 15:22:42 +02:00
aler9
507d810bff
make log messages about custom commands more clear
2021-10-03 15:20:26 +02:00
aler9
091056dd8e
add log messages when runOnPublish is started or stopped
2021-10-03 15:19:06 +02:00
aler9
c46ae16dc7
run runOnRead command also with RTMP readers
2021-09-30 13:12:20 +02:00
aler9
e62ed283d1
rtmp: do not raise an error in case of metadata packets ( #577 )
2021-09-30 11:57:03 +02:00
aler9
e78544f23e
update gortsplib
2021-09-28 15:47:56 +02:00
aler9
ab71f22560
move decoding of more configuration into JSON decoding
2021-09-27 16:40:49 +02:00
aler9
f114e90c55
speed up tests
2021-09-27 16:40:49 +02:00
aler9
1f540a2aaf
return error in case of non-existent parameters in the configuration file
2021-09-27 16:40:49 +02:00
aler9
b748e6d0ff
update error messages
2021-09-27 16:40:49 +02:00
aler9
6921a402d1
decode the configuration when decoding JSON
2021-09-27 16:40:49 +02:00
aler9
54292d712e
convert the configuration into JSON before loading it
2021-09-27 16:40:49 +02:00
aler9
ca9645c2f9
api: decode durations from strings instead of numbers
...
This allows to use human-readable durations with the API,
for instance: "5s" instead of 5000000000
2021-09-26 23:21:37 +02:00
aler9
64808863ed
move confenv into conf
2021-09-26 22:25:39 +02:00
aler9
68ab5c05f6
move aac utilities into gortsplib
2021-09-23 20:24:10 +02:00
aler9
3b0327233e
move hls utils into gortsplib
2021-09-23 20:14:20 +02:00
aler9
06cffc44df
hls: move constants into right file
2021-09-23 11:14:57 +02:00
aler9
e2f33a7495
api: support working with path configs that contains slashes ( #581 )
2021-09-23 09:07:36 +02:00
aler9
9398cea0c2
update golangci-lint
2021-09-09 23:05:54 +02:00
aler9
ef4b925209
hls: fix discontinuity of TS counters between segments
2021-09-07 12:02:44 +02:00
aler9
98bf53a1e8
hls: simplify audio pts generation
2021-09-07 10:24:57 +02:00
aler9
74f3be1eed
hls: use audioAUCount only if audio is primary track
2021-09-07 10:23:32 +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
2710189945
hls: fix error that caused primary playlist not to be served to more than 1 client
2021-09-06 20:02:23 +02:00
aler9
e189f4570c
hls, rtmp: set DTS = PTS when a IDR frame is received
2021-09-06 19:04:39 +02:00
aler9
ddcd0c34cf
api: fix concurrency issue when creating multiple path configs at once ( #542 )
2021-09-06 18:39:15 +02:00
aler9
df4c268813
support proxying HLS
2021-09-05 18:00:29 +02:00
aler9
5eb4741278
hls: speed up serving of files
2021-09-05 15:47:28 +02:00
aler9
7ba507f205
rtmp: print clearer error message in case no H264/AAC tracks are found
2021-08-31 10:42:08 +02:00
Lionel Nicolas
450acfaf4e
externalcmd: fix crash when manually pushing to an ondemand path
2021-08-27 08:37:24 +02:00
aler9
b65207012c
update gortsplib
2021-08-25 19:51:59 +02:00
aler9
6d69e4969e
hls: set html video height to 100%
2021-08-23 13:12:14 +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
6b6d314a07
hls: revert 93b1433
and send PCR once in a while
2021-08-21 21:13:23 +02:00
aler9
b3c13fcf9a
hls: do not send DTS if PTS = DTS
2021-08-20 13:07:35 +02:00
aler9
6e5564c0a2
api: return rtspsSessions in case of RTSPS sessions
2021-08-20 10:32:43 +02:00
aler9
da44bbd18a
api: normalize entity names
2021-08-20 10:13:41 +02:00
aler9
801ef44f54
rtsp, rtmp: fix ignored errors
2021-08-19 17:28:42 +02:00
aler9
4fdd42fa58
hls: rename remuxer into muxer
2021-08-18 15:49:12 +02:00
aler9
ca499a27c3
remove stats from rtmp and rtsp source
2021-08-18 15:43:56 +02:00
aler9
60823aa2b6
print 'ready' only when a source is really ready
2021-08-18 15:42:41 +02:00
aler9
a2ff0d455f
do not allow closed static sources to set a path as ready
2021-08-18 15:41:03 +02:00
aler9
96cb56621a
hls: add primary playlist
2021-08-16 18:07:10 +02:00
aler9
ba41af91b2
hls: remove useless check
2021-08-15 09:23:19 +02:00
aler9
bd5e6d1027
hls: send PCR with every IDR NALU
2021-08-15 09:06:55 +02:00
aler9
93b143395e
hls: send PCR once, at the beginning of every TS segment
2021-08-14 17:25:40 +02:00
aler9
2d71e69e43
hls: speed up loading by decreasing PTS
2021-08-14 17:08:35 +02:00
aler9
30910d52d2
hls: increase video size up to 100% of the page ( #480 )
2021-08-14 16:51:51 +02:00
aler9
ffe4a2d1e7
hls: support reading on iOS Safari
2021-08-14 16:35:25 +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
6ad638d0e8
hls: fix compatibility with video.js and iOS
...
add AUDs to all h264 packet groups
2021-08-14 16:35:09 +02:00
aler9
40a5c78c8d
fix comment
2021-08-14 16:21:05 +02:00
aler9
3828b71206
fix docs
2021-08-14 13:52:57 +02:00
aler9
5a814480b3
hls: write PMT/PAT tables once at the beginning of every TS segment
2021-08-14 13:05:42 +02:00
aler9
eb5bab7e58
hls: set default segment count to 3
2021-08-14 12:27:00 +02:00
aler9
9486f4f32d
hls: reply with 404 to invalid requests
2021-08-14 11:15:59 +02:00
aler9
7765de44fc
api: log right protocol version of responses
2021-08-14 11:08:02 +02:00
aler9
e0a215ab53
api: log requests and responses even in case of code 404
2021-08-14 11:00:56 +02:00
aler9
0de711d7e0
hls, rtmp: print clearer error messages ( #501 )
...
in case a stream doesn't contain a H264 track
or a AAC track.
2021-08-13 14:16:36 +02:00
aler9
d7f1c04711
close custom commands with SIGQUIT instead of SIGINT ( #495 )
2021-08-12 15:16:39 +02:00
aler9
f1a812ba5d
rewrite metrics system to provide more data ( #492 )
2021-08-12 11:49:21 +02:00
aler9
6702cb41ed
api: make sure that entities are deleted immediately after a kick request
2021-08-12 10:50:29 +02:00
aler9
da7f9c7ee1
api: add RTSPS endpoints to list and kick RTSPS sessions
2021-08-11 17:33:43 +02:00
aler9
e57177ef49
cleanup
2021-08-11 13:57:33 +02:00
aler9
20ac25571c
api: add "state" field to RTSP sessions and RTMP connections
2021-08-11 12:25:19 +02:00
aler9
6163095a11
fix crash that happens when sourceOnDemand is true and a source times out
2021-08-10 18:36:34 +02:00
aler9
3872b42434
hls: fix freeze when sourceOnDemand is yes and multiple sources are requested at the same time ( #493 )
2021-08-10 15:00:07 +02:00
aler9
10b5a6b4dd
api: add v1 prefix
2021-08-07 19:20:39 +02:00
aler9
478102adc5
change default listen IP of metrics and pprof to 127.0.0.1
2021-08-07 19:20:39 +02:00
aler9
dd33ef740e
api: change default listen address to 127.0.0.1:9997
2021-08-07 19:20:39 +02:00
aler9
3134b95e80
api: add documentation
2021-08-07 19:20:39 +02:00
aler9
fdd487f3c5
rename "record" source value into "publisher"
2021-08-07 19:20:39 +02:00
aler9
0535ab8e9c
api: add tests
2021-08-07 19:20:39 +02:00
aler9
5943660ab3
api: print all requests and responses when logLevel is debug
2021-08-07 19:20:39 +02:00
aler9
ed375583d0
Implement an HTTP API to query and control the server
2021-08-07 19:20:39 +02:00
aler9
e516d265d6
refactor ondemand system
2021-08-03 22:40:47 +02:00
aler9
fd27ed941e
fix multiple freezes
2021-08-01 17:22:28 +02:00
aler9
90e24b79cb
cleanup
2021-08-01 16:58:46 +02:00
aler9
f0a283d141
reload only rtsp server when authMethods is changed
2021-08-01 16:56:53 +02:00
aler9
f1b365a7bc
cleanup
2021-08-01 16:39:40 +02:00
aler9
be1e7c5cc9
move code into gortsplib
2021-07-31 21:27:55 +02:00
aler9
eee64a1450
split readPublisher into reader and publisher
2021-07-31 20:46:06 +02:00
aler9
1a7f26ce29
add path prefix to path entities
2021-07-31 18:32:00 +02:00
aler9
5ab989250d
cleanup
2021-07-31 18:25:47 +02:00
aler9
9819ae43e8
cleanup
2021-07-31 17:45:15 +02:00
aler9
00dd622180
rename readIps and PublishIps into readIPs and publishIPs
2021-07-31 17:44:40 +02:00
aler9
abc4a47c1c
hls: reject methods other than GET and OPTIONS
2021-07-30 21:35:13 +02:00
aler9
de6e9589b8
fix multiple freezes during shutdown of components
2021-07-30 20:13:17 +02:00
aler9
82e65230fd
speed up hls remuxing by linking together pathManager and hlsServer
2021-07-30 14:49:09 +02:00
aler9
1146d5cf1b
hls: new option hlsAlwaysRemux to always remux streams into HLS, not only when requested
2021-07-29 16:56:40 +02:00
aler9
4a1ca7aa3e
hls: fix segment splitting error introduced by c3c643c6
2021-07-29 16:27:15 +02:00
aler9
89d6d0f99e
unexport method
2021-07-29 15:11:02 +02:00
aler9
c5ad06af9c
hls: make sure to send entire TS segments to clients
2021-07-29 12:22:40 +02:00
aler9
f16acb937f
hls: rename converter into remuxer
2021-07-29 12:22:08 +02:00
mattlamb99
0a2764ed05
Minor spelling fix
...
alfa -> alpha.
2021-07-25 10:36:04 +02:00
aler9
c3c643c602
hls: move muxer into dedicated object
2021-07-24 18:31:54 +02:00
aler9
f225363e7d
speed up tests
2021-07-24 16:20:04 +02:00
aler9
9062dbf883
move most components into internal/core
...
in this way coverage can be computed correctly.
2021-07-24 16:09:52 +02:00
frjol
bee089aced
Allow dot and tilde as part of the RTSP URL
2021-07-24 12:12:50 +02:00