Commit Graph

487 Commits

Author SHA1 Message Date
aler9
b48e2f1f1b add TODO comments 2022-01-20 10:46:05 +01:00
aler9
49449eb5ad Add new parameter 'runOnReady' (#752)
This is called when a stream is ready, whether it is published or proxied.
It replaces 'runOnPublsh'.
2022-01-19 22:50:32 +01:00
aler9
8337a90b29 fix freeze when server is shut down and runOnPublish is not empty 2022-01-19 22:19:38 +01:00
aler9
98dbf5d932 remove logLevel: debug from tests 2022-01-19 22:18:01 +01:00
aler9
8ac665be87 un-capitalize private fields 2022-01-14 23:42:41 +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
92163a2b0e hls: pring exact reason why a muxer is closed 2021-12-23 13:09:58 +01:00
aler9
ed635db87e print debug log message in case of non-critical authentication errors 2021-12-22 20:13:00 +01:00
aler9
62d5a6d5c9 fix github actions 2021-12-22 20:12:14 +01:00
aler9
11760fd79f support external authentication (#504) (#517) 2021-12-22 19:13:56 +01:00
aler9
811540b34b tidy up rtmp 2021-12-22 17:37:15 +01:00
aler9
1dff3239d2 remove rtmp.Conn.NetConn() 2021-12-22 17:33:37 +01:00
aler9
779d5b61cd update docs 2021-12-22 00:27:58 +01:00
aler9
7352244fd9 print closing message before an object is closed 2021-12-22 00:15:15 +01:00
aler9
1617d07ba3 do not wait for external commands to exit during runtime
wait for them during shutdown.
2021-12-21 12:43:45 +01:00
aler9
d9e8f3ff9f change log message in case configuration file is missing 2021-12-21 12:29:50 +01:00
aler9
e3ecd4a11c hls: upgrade hls.js and enable progressive mode 2021-12-15 12:42:00 +01:00
aler9
eda8eddf5a hls: cleanup 2021-12-14 22:30:15 +01:00
aler9
84735426eb print a message when a custom command exits suddently 2021-12-08 21:23:45 +01:00
aler9
a5723c4808 fix crash 2021-12-08 21:14:03 +01:00
aler9
ebc201bda2 make regexp groups available to custom commands (#642) 2021-12-08 20:50:09 +01:00
aler9
c65f4509bd update gortsplib 2021-12-05 14:36:57 +01:00
aler9
a1fed6fb38 rtsp source: set ServerName when using TLS (#708) 2021-12-03 23:33:28 +01:00
Tristan Matthews
4fcfd95619 rtsp_session: log error if config parsing fails 2021-12-01 10:06:47 +01:00
aler9
7668c88d3e hls: improve performance 2021-11-30 22:02:02 +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
05b1a7e720 update gortsplib 2021-11-28 13:04:00 +01:00
aler9
3496282ba7 fix crash that happens when using an invalid log file (#706) 2021-11-26 14:46:16 +01:00
aler9
c7b2ae83df rtsp source: support cameras that don't provide SPS and PPS inside the SDP (#411) (#707) 2021-11-22 22:55:12 +01:00
aler9
29ee78ce38 expand rtsp source tests 2021-11-22 22:29:41 +01:00
aler9
76eb2c2c2b fix lint errors 2021-11-22 15:09:03 +01:00
aler9
f7ea9a6b2d rtsp server: check validity of announced tracks 2021-11-22 15:06:18 +01:00
aler9
e4a5732978 hls: cleanup 2021-11-19 23:39:23 +01:00
aler9
02291f552a align listener opened / closed messages 2021-11-15 20:13:54 +01:00
aler9
5ea4fdb764 run gofumpt 2021-11-15 20:09:07 +01:00
aler9
cbd341b864 change log level of path open / close message to Debug 2021-11-15 18:04:05 +01:00
aler9
b4155a4fdf rtsp: support reading with VLC and multicast 2021-11-15 17:58:14 +01:00
aler9
99db6f245e remove panic() 2021-11-13 10:26:14 +01:00
aler9
f7419586af update gortsplib 2021-11-12 22:29:56 +01:00
aler9
21e0052bc4 close all connections gracefully when shutting down the server (#682) 2021-11-10 19:04:07 +01:00
aler9
d5c55a8ddc move test into gortsplib 2021-11-06 13:38:51 +01:00
aler9
9645d18ae4 move httpLogWriter in a dedicated file 2021-11-06 12:53:49 +01:00
aler9
21a149c0de rename struct 2021-11-06 12:52:12 +01:00
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