Commit Graph

179 Commits

Author SHA1 Message Date
aler9 7fab9e5749 RTMP client: do not print errors in case of fragmented AAC frames 2021-04-05 19:16:40 +02:00
aler9 6077814f11 RTMP: avoid duplicate DTS 2021-04-05 18:47:00 +02:00
aler9 fb0122ba18 RTMP client: speed up video reading by 1 frame 2021-04-05 18:15:51 +02:00
aler9 7387783506 RTMP: filter out SPS, PPS and AU NALUs 2021-04-05 15:01:16 +02:00
aler9 ede82808bb RTMP client: move writing of track info into WriteMetadata() 2021-04-05 13:35:03 +02:00
aler9 71c333177f RTMP client: fix timeout when publishing 2021-04-05 13:23:53 +02:00
aler9 28de7aefa2 RTMP client: warn in case of decoding errors 2021-04-04 21:39:54 +02:00
aler9 f208026338 RTSP source: apply TCP timeout correctly (#335) 2021-04-04 19:53:58 +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 377bb31c50 RTSP/RTMP source: fix error 'no one is publishing to path' that happens after some seconds, when sourceOnDemand is enabled (#334) 2021-04-03 13:40:33 +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 897322e3a6 rename rtmputils into rtmp 2021-04-03 11:39:19 +02:00
aler9 d850492ca0 tidy up rtmp 2021-04-03 11:35:45 +02:00
aler9 15f0983628 add h264 utilities 2021-04-03 11:02:06 +02:00
aler9 3bf0777ee0 tidy up rtmp 2021-04-03 10:52:59 +02:00
aler9 488b24dfe4 rtmp: fix client removal after an error 2021-04-01 19:31:57 +02:00
aler9 3636f0106a expose path manager to clients 2021-03-31 21:46:08 +02:00
aler9 69be41d997 support RTP-Info headers with paths instead of URLs (#250) 2021-03-30 11:07:43 +02:00
aler9 c40fdbae7c pprof: change capitalization 2021-03-27 12:23:19 +01:00
aler9 a57f3d04a7 add parameter pprofPort to configure the port of the pprof listener 2021-03-27 12:19:00 +01:00
aler9 fb0e900eb5 try to raise the number of file descriptors that can be opened to remove limits on number of connected clients (#193) 2021-03-27 11:00:39 +01:00
aler9 5856ac3de9 clientrtmp: allow inserting path in the Stream key field of OBS 2021-03-26 19:01:48 +01:00
aler9 c10faac9e5 move syslog into logger 2021-03-25 20:30:36 +01:00
aler9 10bf7bad43 support reading AAC frames bigger than 1460 bytes with RTMP (#206) 2021-03-24 21:35:23 +01:00
aler9 8b427ba323 support sampling rates different than 48khz when reading with RTMP 2021-03-24 19:47:05 +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 83e51e2bf8 set correct rtptime in RTP-Info (#233) 2021-03-23 20:37:43 +01:00
aler9 0048a01584 add parameter disablePublisherOverride to disable publisher override (#230) 2021-03-22 22:15:22 +01:00
aler9 37c24f9edd add RTP-Info also in case of RTMP sources (#233) 2021-03-22 21:40:42 +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 a9ff21278c fix freeze during server shutdown 2021-03-20 18:45:20 +01:00
aler9 c979217e0d update golangci-lint 2021-03-20 14:14:41 +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 3605b6ed2a server*: prevent crash that happens in case of socket errors, instead print errors (#193) 2021-03-19 21:14:03 +01:00
aler9 201fcd4b34 clientrtmp: perform rtsp->rtmp conversion entirely inside the writer routine 2021-03-16 22:46:38 +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
Lionel Nicolas c1862b3228 add ability to configure metrics port
Port could be specified by using either metricsPort config file entry or
RTSP_METRICSPORT environment variable.
2021-03-13 21:34:57 +01:00
aler9 0dff484ff5 update gortsplib 2021-03-13 21:29:15 +01:00
aler9 f19e23eaa5 enable rtmp by default; add parameters to disable rtsp and rtmp 2021-03-10 20:43:27 +01:00
aler9 09cbeae60f fix error "frame length greater than maximum allowed" (#229) 2021-03-10 19:55:26 +01:00
aler9 17d0a361c8 print UDP messages only if UDP is active 2021-03-10 19:22:02 +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 6a61202459 merge serverudpl into serverrtsp 2021-03-06 09:12:05 +01:00
aler9 7cb1a2d6b9 support OBS <= 25 2021-03-05 14:46:48 +01:00
aler9 355c400cc8 fix reading mpegts-muxed streams with ffmpeg (#222) 2021-03-04 20:58:32 +01:00
aler9 b06d95eac4 fix removal of RTMP clients 2021-03-02 11:51:17 +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 22ab4d489e support relative fallback paths (#201) 2021-02-09 22:33:50 +01:00
aler9 86c718ae04 forbid usage of sourceOnDemand when source is not 'record' 2021-02-09 22:13:16 +01:00
aler9 a047fdc404 split configuration into sections 2021-02-03 09:55:11 +01:00
aler9 59e754feb1 support runOnConnect and runOnDemand with RTMP clients 2021-01-31 23:37:20 +01:00
aler9 2025fa163d implement RTMP authentication 2021-01-31 23:11:14 +01:00
aler9 3bcead121d add a RTMP server that allows to publish legacy streams (#132) 2021-01-31 21:42:27 +01:00
aler9 50880bf07b rename client into clientrtsp 2021-01-31 17:06:34 +01:00
aler9 f9a7ad7eca add serverrtmp 2021-01-31 16:58:57 +01:00
aler9 17c22577c9 split sourcertmp and rtmpinfo 2021-01-31 16:44:32 +01:00
aler9 f03ff73ef3 add read timeout to RTMP sources 2021-01-31 16:24:58 +01:00
aler9 da9d6df706 merge serverplain and servertls into serverrtsp 2021-01-31 13:19:44 +01:00
aler9 b30dbc1315 start runOnDemand even with clients that don't send DESCRIBE (#155) 2021-01-31 12:23:54 +01:00
aler9 40f2d5cd09 cleanup 2021-01-30 22:06:02 +01:00
aler9 49ac52ff67 speed up RTMP sources 2021-01-30 21:19:50 +01:00
aler9 2b4d22589c move configuration tests into internal/conf 2021-01-30 17:49:10 +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 903842484e apply listenIP to metrics and pprof too 2021-01-15 18:58:45 +01:00
aler9 9b052f1cdc metrics: avoid sprintf 2021-01-15 18:50:31 +01:00
aler9 3b04ba36c3 add parameter listenIP to listen on a specific IP/interface (#166) 2021-01-15 18:42:53 +01:00
aler9 205284829d confwatcher: add additional tests 2021-01-13 21:57:09 +01:00
aler9 8e97f4ff61 confwatcher: fail if configuration file doesn't exist 2021-01-13 21:57:09 +01:00
Florian Vallée f5dc53e0f2 improve config file watcher to support k8s configmap reloads
The config file watcher assumed a simple configuration where the
existing configuration file is overwritten by a text editor.

In practice this does not detect some more complex configuration change
scenarios such as :
* The configuration file is behind a symlink and the symlink is updated
* The configuration file is behind a double symlink (k8s configmap
  update)
* The configuration file is not updated but removed the re-created

In order to fix these cases :
* Watch the configuration file parent directory instead of the file
itself, this lets us grab events event if the file was removed and a new
file is used.
* In addition to read/write event matching, watch for any change in
the configuration file path. This handles the symlink case where the
file itself hasn't changed but its location did

v2:
- apply gofmt
2021-01-13 21:57:09 +01:00
aler9 05e835e48c confwatcher: add tests 2021-01-13 20:48:57 +01:00
aler9 97305af272 new parameter readBufferCount 2021-01-10 12:55:53 +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 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 818307ff54 forbid usage of publishUser, publishPass, publishIps when source is not 'record' 2020-12-31 21:50:18 +01:00
aler9 3050893d32 support hashed credentials 2020-12-31 19:47:25 +01:00
aler9 ad195a6bd0 use 'strict' instead of 'yes' in the 'encryption' parameter 2020-12-20 12:51:04 +01:00
aler9 939dda01d0 support 'false' and 'true' values of 'encryption' parameter (#160) 2020-12-19 20:04:17 +01:00
aler9 b3e9249158 fix PAUSE with UDP (#157)" 2020-12-16 22:31:32 +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 d83aa880cc add anti-brute force mechanism 2020-12-13 18:59:46 +01:00
aler9 854f00afdc update gortsplib 2020-12-13 13:58:56 +01:00
aler9 40c2eb3da2 forbid runOnPublish when source is not record (#143) 2020-12-13 00:18:40 +01:00
aler9 f9e6cdcb7b rewrite client to use the new gortsplib ServerConn 2020-12-12 23:37:15 +01:00
aler9 692b236c6c update linter settings 2020-12-08 12:37:31 +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 18fe2d057c print a warn message when the configuration file is not found 2020-12-06 22:29:56 +01:00
aler9 cce08c12b6 fix crash when using publishIp or readIp (#142) 2020-12-06 21:16:04 +01:00