Commit Graph

111 Commits

Author SHA1 Message Date
Gabe Kangas
934285c55b Move stats.json to data dir 2020-11-12 22:34:49 -08:00
Christian Muehlhaeuser
2e1f8d29b5
Fix godoc style comments (#356) 2020-11-12 15:14:59 -08:00
Christian Muehlhaeuser
8f921fbfde
Fix popular typos (#355) 2020-11-12 14:57:24 -08:00
Christian Muehlhaeuser
cfb031a15c
Make sure we close DB statements to release resources (#354) 2020-11-12 14:46:56 -08:00
Christian Muehlhaeuser
3f9dd2870f
Explicitly ignore io.Copy's return values (#352)
We're probably ignoring any errors here, since we're writing to a memory
buffer here. Let's make it clear we didn't just forget to check, but
really want to ignore these values.
2020-11-12 14:42:01 -08:00
Christian Muehlhaeuser
2c504eb8be
Handle filepath.Walk errors (#351) 2020-11-12 14:29:17 -08:00
Christian Muehlhaeuser
00129c5942
Stick to the documented default bitrate of 1200 in case of config parsing issues (#350) 2020-11-12 14:23:52 -08:00
Christian Muehlhaeuser
21df28160a
Avoid unnecessary conversion (#349) 2020-11-12 14:18:32 -08:00
Christian Muehlhaeuser
8d9eb1e79f
Log potential errors returned by http.ListenAndServe (#345) 2020-11-12 12:42:18 -08:00
Gabe Kangas
a9586b03fc Disable persistent http connections in transcoder 2020-11-11 00:28:01 -08:00
Gabe Kangas
1dbd550134
Bundle and serve admin (#317)
* WIP with admin bundling

* Current state of the admin is bundled

* Update admin bundler to work with binary bundling

* Log detail about the admin interface. Closes #312

* Move bundle script to the build dir

* Update to current version of admin

* Commit updated API documentation

Co-authored-by: Owncast <owncast@owncast.online>
2020-11-06 15:12:35 -08:00
Gabe Kangas
4de2841659 Remove stale client purging. Use sockets to count clients. #323 2020-11-05 00:15:00 -08:00
Gabe Kangas
723a671f1c Stop handleDisconnect from double firing 2020-11-05 00:15:00 -08:00
Gabe Kangas
18e322c5e1 Add version number to status endpoint 2020-11-03 21:22:17 -08:00
Gabe Kangas
fe0021b8c8 Remove preview gif on offline. Closes #300 2020-11-02 19:39:52 -08:00
Gabe Kangas
3963568951
Stop rtmp from reaching back into core (#290)
* Stop rtmp from reaching back into core.

* Un-export since these functions no longer need to be public
2020-10-29 14:09:28 -07:00
Gabe Kangas
34fe55b5a3 Add getter for stream variant encoder preset w/ test 2020-10-26 09:14:20 -07:00
Gabe Kangas
19e86b8c04
First pass at centralized database reference. Closes #282 (#289)
* First pass at centralized database reference. Closes #282

* Add verbose logging option to launch.json

* Clear current broadcaster on stream end. Closes #285

* Fix typo in verbose launch args

* Add support for purging tailwind styles. For #224

* Don't need to pass db as param since it is stored

* Commit updated Javascript packages

Co-authored-by: Owncast <owncast@owncast.online>
2020-10-26 08:55:31 -07:00
Gabe Kangas
32c7e3fa34 Clear current broadcaster on stream end. Closes #285 2020-10-24 14:58:34 -07:00
Gabe Kangas
2b8aea8797 Support a local working directory copy of ffmpeg. Closes #276 2020-10-21 21:47:42 -07:00
Gabe Kangas
131675bc03 Split out setting broadcaster details into its own file 2020-10-21 17:07:00 -07:00
Gabe Kangas
ea9579d899 Add multiple variants to the transcoder test 2020-10-19 21:34:42 -07:00
Gabe Kangas
7dcc89a841 Add system chat message support to messages query 2020-10-16 17:50:00 -07:00
bitspill
bfbac8cc57
Variable collisions; Possible use of nil value (#256)
* Variable '*' collides with imported package name

* Variable 'error' collides with builtin interface

* '*' may have 'nil' or other unexpected value as its corresponding error variable may be not 'nil'
2020-10-16 15:04:31 -07:00
Gabe Kangas
3812e6345f Fix typo 2020-10-16 13:57:23 -07:00
Gabe Kangas
3ff993c2bc Stop logging every file that is uploaded 2020-10-16 10:08:23 -07:00
Gabe Kangas
b9a80709ab Decrease the amount of time before the stream is made available to the player 2020-10-16 10:08:23 -07:00
Gabe Kangas
eb0ee4dd8a Catch db error and show frienlier message. Closes #252 2020-10-15 17:57:32 -07:00
Gabe Kangas
8f740c4cb6 Cleanup private and optinally public segments on a timer instead of after every save. Closes #254 2020-10-15 17:50:17 -07:00
Gabe Kangas
2d71337146 Rename functions to be clearer that it is for offline cleanup 2020-10-15 16:17:33 -07:00
Gabe Kangas
d403fd20f1 Do not auto-delete file on storage save. Add firing cleanup method 2020-10-14 17:32:02 -07:00
Gabe Kangas
5e45c53b87 Fix YP not being fired post-merges 2020-10-14 16:46:04 -07:00
Gabe Kangas
6ea9affce0
HLS video handling/storage/state refactor (#151)
* WIP with new transcoder progress monitor

* A whole different WIP in progress monitoring via local PUTs

* Use an actual hls playlist parser to rewrite master playlist

* Cleanup

* Private vs public path for thumbnail generation

* Allow each storage provider to make decisions of how to store different types of files

* Simplify inbound file writes

* Revert

* Split out set stream as connected/disconnected state methods

* Update videojs

* Add comment about the hls handler

* Rework of the offline stream state.  For #85

* Delete old unreferenced video segment files from disk

* Cleanup all segments and revert to a completely offline state after 5min

* Stop thumbnail generation on stream stop. Copy logo to thumbnail on cleanup.

* Update transcoder test

* Add comment

* Return http 200 on success to transcoder. Tweak how files are written to disk

* Force pixel color format in transcoder

* Add debugging info for S3 transfers. Add default ACL.

* Fix cleanup timer

* Reset session stats when we cleanup the session.

* Put log file back

* Update test

* File should not be a part of this commit

* Add centralized shared performance timer for use anywhere

* Post-rebase cleanup

* Support returning nil from storage provider save

* Updates to reflect package changes + other updates in master

* Fix storage providers being overwritten

* Do not return pointer in save. Support cache headers with S3 providers

* Split out videojs + vhs and point to specific working versions of them

* Bump vjs and vhs versions

* Fix test

* Remove unused

* Update upload warning message

* No longer valid comment

* Pin videojs and vhs versions
2020-10-14 14:07:38 -07:00
Jannik Volkland
606ccb6c14 Remove message image from go code 2020-10-14 13:47:39 +02:00
Gabe Kangas
d7c3991b59
Render and sanitize chat messages server-side. (#237)
* Render and sanitize chat messages server-side. Closes #235

* Render content.md server-side and return it in the client config

* Remove showdown from web project

* Update api spec

* Move example user content file
2020-10-13 16:45:52 -07:00
Gabe Kangas
dfeba53f08 Reduce the amount of time between start of stream and when we show as online. Can bump this back up if needed. 2020-10-08 14:27:42 -07:00
Gabe Kangas
bcf4cb09e7 Break rtmp read loop after disconnect 2020-10-07 19:59:55 -07:00
Gabe Kangas
d7e355bce1
Connected clients admin API (#217)
* Add support for ending the inbound stream. Closes #191

* Add a simple success response to API requests

* Connected clients API with geo details

* Post-rebase cleanup

* Make setting and reading geo details separate operations to unblock and speed up

* Rename file

* Fire geoip api call behind goroutine

* Add comment

* Post-rebase fixes

* Add support for the MaxMind GeoLite2 GeoIP database
2020-10-06 23:14:33 -07:00
leowmjw
769fc3a561
Fixes #211: Update mod paths (#221)
Co-authored-by: Michael Leow <mleow@moneylion.com>
2020-10-05 10:07:09 -07:00
Gabe Kangas
922dfec77a
Remove custom paths and add constants (#216) 2020-10-03 14:35:03 -07:00
Gabe Kangas
f4fdc6c951
Current broadcaster details admin api (#206)
* Add support for ending the inbound stream. Closes #191

* Add a simple success response to API requests

* Store inbound broadcast details for admin purposes

* Add /api/admin/broadcaster endpoint

* Reset broadcaster on disconnect

* Move controller to admin directory
2020-10-02 00:12:47 -07:00
Gabe Kangas
9b7784634b
First pass at YP registration/configuration (#209)
* Spike: Ping YP service with instance details

* WIP: Add to the config to support YP

* Add YP response endpoint

* Handle YP errors. Use config. Off by default

* Show message about YP support on launch

* Add animated gif preview when generating thumb

* Increase quality of preview gif and only create it if YP is enabled

* Do not allow re-registration by clearing the key

* Make large and small logos actually structured

* Change log level

* Fix default YP service URL

* Point to default hostname

* Set default value for YP to false
2020-10-01 23:55:38 -07:00
Anoop
6946d4b3ea
Make video segment filename unique (#214)
* Make video segment filename unique

* fix typo

* Remove type casting function
2020-10-01 23:34:29 -07:00
Gabe Kangas
7b64fc7c30
Disconnect stream Admin API + HTTP Basic Auth (#204)
* Create http auth middleware

* Add support for ending the inbound stream. Closes #191

* Add a simple success response to API requests
2020-10-01 18:16:58 -07:00
Gabe Kangas
ef3796a033 Use default video variants if none supplied. Fixes #199 2020-09-27 20:12:45 -07:00
Gabe Kangas
519be9d3b4 Don't update viewer counts if a live stream session is not active. 2020-09-24 20:27:47 -07:00
Gabe Kangas
fc45645280 Reset session stats when we cleanup the session. Closes #180 2020-09-24 19:38:24 -07:00
Gabe Kangas
cb2794f68c Fix cleanup. ticker -> timer and stop reinstantiation 2020-09-23 21:35:27 -07:00
Gabe Kangas
6903db8579 Re-create offline state after wiping HLS files. For #153 2020-09-17 10:31:41 -07:00
Bradley Hilton
dd9267f1ee
Reset the directories when the stream gets disconnected (#152)
* Reset the directories when the stream gets disconnected

* Cleanup after a delay

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2020-09-16 13:31:21 -07:00