Commit Graph

320 Commits

Author SHA1 Message Date
aler9
509bed355a update gortsplib 2021-10-22 18:41:10 +02:00
aler9
ae0d959892 update go-astits 2021-10-01 14:05:20 +02:00
aler9
fc46c33a96 avoid crash when proxing HLS (#558) 2021-09-30 11:49:06 +02:00
aler9
e851640ab6 avoid crash in case of invalid H264 SPS (#590) 2021-09-28 22:26:26 +02:00
aler9
e78544f23e update gortsplib 2021-09-28 15:47:56 +02:00
aler9
54292d712e convert the configuration into JSON before loading it 2021-09-27 16:40:49 +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
aec5f53756 rtsp: do not allow a client to control a session created with a different IP 2021-09-23 19:54:29 +02:00
aler9
2d5e1fa823 use crypto/rand instead of math/rand to avoid port conflicts and security issues 2021-09-23 19:38:40 +02:00
aler9
21539d341c update gortsplib; this include:
* do not allow a session to setup UDP tracks from different IPs
* do not allow a reader to use the same UDP ports of another reader
2021-09-23 19:20:34 +02:00
aler9
df4c268813 support proxying HLS 2021-09-05 18:00:29 +02:00
aler9
b65207012c update gortsplib 2021-08-25 19:51:59 +02:00
aler9
57f465ccd8 rtsp source: support servers that change interleaved IDs 2021-08-25 18:10:20 +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
ed375583d0 Implement an HTTP API to query and control the server 2021-08-07 19:20:39 +02:00
aler9
be1e7c5cc9 move code into gortsplib 2021-07-31 21:27:55 +02:00
aler9
c3c643c602 hls: move muxer into dedicated object 2021-07-24 18:31:54 +02:00
aler9
3107b09dfe switch to asticode/go-astits 2021-07-05 13:10:43 +02:00
aler9
a6d9578d4c RTSP server: support setupping tracks with arbitrary interleaved IDs (#402) 2021-06-26 13:46:31 +02:00
aler9
0d34a10c1c RTSP source: always set Range header inside PLAY requests, fixing compatibility with Parrot Streaming Server (#413) 2021-06-22 22:54:30 +02:00
aler9
a8a0944c09 RTSP source: fix reading with multicast 2021-06-19 21:29:56 +02:00
aler9
fbe3d9c67e RTSP server: use one IP for each multicast stream; add multicast parameter to the configuration file 2021-06-19 21:29:56 +02:00
aler9
f36951a5c1 switch to go 1.16 2021-06-19 21:29:51 +02:00
aler9
64273b9682 RTSP server: fix bug that prevents clients from receiving with multicast after all previous clients have disconnected 2021-06-19 16:16:50 +02:00
aler9
e64edcfda9 RTSP source: support proxing with UDP-multicast 2021-06-19 16:16:47 +02:00
aler9
75e1e3e4dc RTSP server: support reading with multicast (#214) (#324) 2021-06-19 16:16:35 +02:00
aler9
d21841c1b7 RTSP source: add option sourceAnyPortEnable to support cameras that don't provide server ports (#407) 2021-06-03 23:51:37 +02:00
aler9
9f0c519582 update gortsplib 2021-05-30 12:57:23 +02:00
aler9
2897288651 RTSP source: fix authentication during SETUP, preventing 401s during protocol switches (#392) 2021-05-30 12:02:03 +02:00
aler9
396f578fb5 headers: support SSRCs with length < 4 (#396) 2021-05-29 22:23:55 +02:00
aler9
63164c85e1 RTSP source: support SSRCs with missing zeros (#396) 2021-05-29 19:20:16 +02:00
aler9
344e75a9bd update gortsplib 2021-05-29 19:12:26 +02:00
aler9
cfbea7eedc RTSP source: support cameras that use non-conventional Transport headers 2021-05-21 13:08:07 +02:00
aler9
96de32f0ff fix crash that can happen during publisher override 2021-05-16 21:32:10 +02:00
aler9
79a3ab316f RTSP: add SSRC to Transport header (#380) 2021-05-16 16:27:08 +02:00
aler9
07765f0a63 HLS converter: skip packets that are part of frames sent before initialization of the converter (#374) 2021-05-14 23:20:15 +02:00
aler9
bb995ad2fe strictly follow the specification when generating SDP of AAC tracks (#112) 2021-05-13 09:51:33 +02:00
aler9
f086b624c1 use hierarchical contexts 2021-05-11 17:20:32 +02:00
aler9
e558b245e7 use contexts anywhere is possible 2021-05-11 12:17:48 +02:00
aler9
6d02ec9478 update gortsplib 2021-05-10 23:23:56 +02:00
aler9
51843fc577 clientrtsp: do not show in logs 'ERR: terminated' 2021-05-09 14:24:00 +02:00
aler9
4d260412c4 remove number of clients from logs 2021-05-08 22:52:10 +02:00
aler9
8531fc49dc cleanup log 2021-05-08 22:30:22 +02:00
aler9
4da59604e1 RTSP session: add author connection to log messages 2021-05-08 22:18:30 +02:00
aler9
d4af264fe4 RTSP client: close sessions when they have no clients 2021-05-08 17:10:44 +02:00
aler9
c986cb254b implement RTSP sessions (#149) 2021-05-07 23:07:31 +02:00
aler9
35a7644ee6 add colors to terminal output 2021-04-27 21:24:00 +02:00
aler9
a1a56ff203 allow to set a different listen IP for each listener (#343) 2021-04-24 18:52:13 +02:00
aler9
97a9cedb1e client: fix crash that happened in case of invalid TCP frames (#348) 2021-04-24 17:21:28 +02:00
aler9
dee045f961 implement reading with HLS 2021-04-18 23:02:19 +02:00
aler9
258a6b55b1 RTSP source: fix inversion of track data that happened randomly in case of multiple tracks (#353) 2021-04-17 19:49:39 +02:00
aler9
fb0122ba18 RTMP client: speed up video reading by 1 frame 2021-04-05 18:15:51 +02:00
aler9
f208026338 RTSP source: apply TCP timeout correctly (#335) 2021-04-04 19:53:58 +02:00
aler9
90bc09c93c RTSP source: ignore non-standard keys in headers (#336) 2021-04-04 19:53:49 +02:00
aler9
5d57bd8165 speed up tests 2021-04-03 18:02:56 +02:00
aler9
9287e0fe98 RTSP source: build track URLs by using Content-Base when provided by server, fixing many timeouts 2021-04-03 17:15:26 +02:00
aler9
99a07c0d33 rtmp client: speed up acceptance of clients by moving handshake inside client routine 2021-04-03 12:08:07 +02:00
aler9
8acfb5b2b1 support RTP-Infos with spaces (#333) 2021-04-02 18:13:53 +02:00
aler9
69be41d997 support RTP-Info headers with paths instead of URLs (#250) 2021-03-30 11:07:43 +02:00
aler9
64cf3a4181 rtsp client: fix channel of RTCP packets, avoiding client timeouts 2021-03-28 15:21:44 +02:00
aler9
79190f7da8 rtsp client: do not return a timeout error in case UDP packets are being received from a single track 2021-03-28 15:21:36 +02:00
aler9
2ad109a2af remove debug messages 2021-03-27 14:48:32 +01:00
aler9
d40a8bb144 client: switch to TCP if no UDP packets have been received within a timeout (#173) 2021-03-26 23:04:01 +01:00
aler9
87dd87aa49 sourcertsp: do not exit in case UDP packets are being received from a single track, improving UDP robustness 2021-03-26 12:20:48 +01:00
aler9
10bf7bad43 support reading AAC frames bigger than 1460 bytes with RTMP (#206) 2021-03-24 21:35:23 +01:00
aler9
2382337c07 aggregate together NALUs that come from RTMP sources/clients, saving bandwidth 2021-03-24 19:40:58 +01:00
aler9
d338e04df7 readd seqnum to RTP-Info (#233) 2021-03-23 21:50:25 +01:00
aler9
37c24f9edd add RTP-Info also in case of RTMP sources (#233) 2021-03-22 21:40:42 +01:00
aler9
ad63f7d4a6 update gortsplib 2021-03-21 19:58:27 +01:00
aler9
ce316115fa update gortsplib 2021-03-21 11:22:49 +01:00
aler9
674a47ca24 add RTP-Info to PLAY responses in case of proxied sources (#233) 2021-03-20 22:09:25 +01:00
aler9
508d30dc07 add RTP-Info to PLAY responses, allowing VLC to compute the elapsed time (#233) 2021-03-19 22:52:10 +01:00
aler9
c8a4221278 update gortsplib 2021-03-16 22:24:24 +01:00
aler9
0a807e8c99 update gortsplib 2021-03-16 14:17:13 +01:00
aler9
b0208ad044 update gortsplib 2021-03-16 11:58:26 +01:00
aler9
6e64b4be22 update gortsplib 2021-03-14 17:27:04 +01:00
aler9
0dff484ff5 update gortsplib 2021-03-13 21:29:15 +01:00
aler9
809ea4bcdf rewrite TestRTSPPublisherOverride (#230) 2021-03-10 18:23:30 +01:00
aler9
186a91800a Support reading with RTMP (#218) 2021-03-10 18:04:27 +01:00
aler9
ba6c27a49e update gortsplib 2021-03-06 09:54:10 +01:00
aler9
79acd8593b support some additional hikvision cameras (#227) 2021-03-05 22:19:47 +01:00
aler9
9e5b8eed03 eliminate idle load (#184) 2021-03-05 21:57:25 +01:00
aler9
a9385547ea add parameter readBufferCount to support non-compliant servers or publishers (#211) 2021-02-18 23:26:45 +01:00
aler9
2f156b59f8 drop existing publisher when a new publisher connects (#187) 2021-02-15 19:02:33 +01:00
aler9
0484e417ee send status 461 instead of error when multicast is used (#198) 2021-02-03 23:24:52 +01:00
aler9
38ec8d878d increase path and headers maximum length (#192) 2021-01-30 17:51:52 +01:00
aler9
cc703fe5c5 support clients that don't specify track ID, like tvheadend (#155) 2021-01-20 22:25:47 +01:00
aler9
6b1643940e support encrypting the configuration file 2021-01-16 15:43:56 +01:00
aler9
9b20f53119 decrease RAM consumption 2021-01-10 12:36:39 +01:00
aler9
2cbb5ac361 decrease RAM usage by allocating TCP buffers only when needed and with a proper size 2021-01-10 12:23:49 +01:00
aler9
e5364b1fc6 perform frame readings and writings in separate routines, in order to increase UDP throughput and avoid freezes caused by a single laggy reader (#125) (#162) 2021-01-09 23:04:23 +01:00
aler9
92f83da31c fix RTCP generation when using UDP 2021-01-07 13:17:51 +01:00
aler9
b588f5e9a9 fix crash 2021-01-06 23:40:08 +01:00
aler9
0cf0cd9045 fix crash 2021-01-06 22:49:16 +01:00
aler9
d590805cda move RTCP receivers into gortsplib 2021-01-06 22:31:08 +01:00
aler9
2132226f90 move client state and client tracks into gortsplib 2021-01-06 21:23:45 +01:00
aler9
9fb844331e move UDP support into gortsplib 2021-01-06 12:40:18 +01:00
aler9
3050893d32 support hashed credentials 2020-12-31 19:47:25 +01:00
aler9
6bc240daf2 fix gstreamer tests 2020-12-17 13:24:24 +01:00
aler9
19fec814fa fix possible freeze 2020-12-16 12:15:36 +01:00
aler9
9887abc51a fix freeze 2020-12-15 21:25:40 +01:00
aler9
5e32a526e5 support proxying rtsps streams 2020-12-14 23:32:24 +01:00
aler9
ccb8b92bfb implement RTSPS (#77) 2020-12-13 23:51:44 +01:00
aler9
854f00afdc update gortsplib 2020-12-13 13:58:56 +01:00
aler9
f9e6cdcb7b rewrite client to use the new gortsplib ServerConn 2020-12-12 23:37:15 +01:00
aler9
74b592b211 implement log levels; print requests and responses when log level is "debug" (#116) 2020-12-08 12:21:06 +01:00
aler9
a6c06d3853 support transport headers with a single port (#136) 2020-12-06 22:06:22 +01:00
aler9
6e352aca7f support SDPs with spaces in origin (#127) 2020-12-06 20:16:03 +01:00
aler9
286d837d9e update gortsplib 2020-12-06 18:01:10 +01:00
aler9
19440f2486 switch to golangci-lint 2020-12-05 20:42:59 +01:00
aler9
b883240639 update gortsplib 2020-11-30 15:21:01 +01:00
aler9
f315d9c684 fix clock rate computation with standard RTP payload type (#123) 2020-11-29 16:24:38 +01:00
aler9
20ef0e842c add jitter and delay to rtcp receiver reports 2020-11-29 00:32:30 +01:00
aler9
716e2edccc support SDPs with RS bandwidth (#136) 2020-11-28 11:03:52 +01:00
aler9
46265f9d28 increase maximum length of content of RTSP requests/responses to 128k (#136) 2020-11-27 13:57:51 +01:00
aler9
c5a5c03bb2 increase udp kernel read buffer size to minimize packet losses (#124) 2020-11-25 21:14:50 +01:00
aler9
c929f3d963 make RTMP sources emit RTCP packets 2020-11-22 15:46:16 +01:00
aler9
a90ba1b4bf add number of lost packets to rtcp receiver reports 2020-11-21 15:56:13 +01:00
aler9
5db5b44471 fix generation of rtcp receiver reports 2020-11-21 15:15:28 +01:00
aler9
a9dee11496 support automatic protocol selection when proxying rtsp 2020-11-21 13:34:27 +01:00
aler9
eaf115f604 drastically improve performance when reading streams with TCP 2020-11-21 11:57:38 +01:00
aler9
ac74c7ed95 fix freeze when proxying streams with tcp 2020-11-19 12:25:06 +01:00
aler9
fef639c94a fix freeze when using a rtsp source 2020-11-16 09:10:46 +01:00
aler9
f63647ab1e update gortsplib 2020-11-16 00:17:28 +01:00
aler9
cbab55af4c update gortsplib 2020-11-15 17:56:54 +01:00
aler9
00678b7188 support SDPs with empty unicast address in origin (#121) 2020-11-12 11:50:51 +01:00
aler9
ba9d2a33fb support SDPS with MP2T in protocol (#120) 2020-11-11 10:40:21 +01:00
aler9
c0fc07a108 fix timeout when proxying streams from vlc rtsp server (#115) 2020-11-11 10:10:37 +01:00
aler9
3461796e40 fix crash when proxying streams with udp (#115) 2020-11-09 22:31:27 +01:00
aler9
2c9e07376c fix execution of external commands with quotes on Windows (#113) 2020-11-08 23:12:43 +01:00
aler9
b1153bbcb4 update gortsplib 2020-11-08 20:06:03 +01:00
aler9
2304dfc124 support vlc SDPs (#115) 2020-11-08 00:12:06 +01:00
aler9
ac032c4b54 support PAUSE method (#107) 2020-11-07 22:47:10 +01:00
aler9
94c55e6573 use a new, more generic, sdp unmarshaler 2020-11-05 11:18:53 +01:00
aler9
0777204b38 support proxying streams with control paths that start with '?' 2020-11-03 12:08:28 +01:00
aler9
2f5b0160ad support SDPs with global attributes in random positions 2020-11-02 20:05:19 +01:00
aler9
42fa504014 support proxing servers that redirect to other urls 2020-11-01 22:25:50 +01:00
aler9
c6c79783a8 fix error when using vlc, authentication and urls with query parameters 2020-11-01 19:41:33 +01:00
aler9
88538634e4 update gortsplib 2020-11-01 19:11:03 +01:00
aler9
e511eb4ef1 fix error when using vlc, authentication and slashes in paths 2020-10-31 15:43:08 +01:00
aler9
63c833e92e update gortsplib 2020-10-31 12:02:38 +01:00
aler9
f5ec679187 switch to go 1.15 2020-10-28 23:03:44 +01:00
aler9
dfcf80b2df update gortsplib 2020-10-25 12:50:56 +01:00
aler9
de406e1c4f update gortsplib, support unencoded symbols in urls (#100) 2020-10-25 12:13:46 +01:00
aler9
3d98bede4a implement configuration dynamic update / hot reloading (#64) 2020-10-24 19:56:27 +02:00
aler9
80f46921c9 new structure 2020-10-19 22:17:48 +02:00
aler9
113cbe602c fix timeout with some cameras by using the stream path in OPTIONS requests (https://github.com/aler9/gortsplib/issues/8) 2020-10-16 23:02:48 +02:00
aler9
2626867369 update gortsplib 2020-10-10 15:37:31 +02:00