Commit graph

101 commits

Author SHA1 Message Date
Gabe Kangas
6c5253c7e0 Do not panic. Closes #295 2020-10-26 18:58:54 -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
2b8aea8797 Support a local working directory copy of ffmpeg. Closes #276 2020-10-21 21:47:42 -07:00
Gabe Kangas
2647b3fac8 Remove unused value 2020-10-14 17:00:35 -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
Gabe Kangas
64a85e68aa
Update extra page content API (#240)
* Mark change stream key api as pre-release

* Add API for changing extra page content. Renanme usercontent -> pagecontent. closes #236
2020-10-14 09:38:48 -07: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
aac7fa2476 Show YP configuration in the config API 2020-10-07 22:42:14 -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
d8c43d2c56
Add server config admin endpoint (#207)
* Add support for ending the inbound stream. Closes #191

* Add a simple success response to API requests

* Add server config admin endpoint
2020-10-02 00:02:42 -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
Gabe Kangas
d21f136120
Transcoder updates for bitrate validator warnings (#106)
* Transcoder updates for validator warnings (gop, max-bitrates) for #50

* Make the variant settings easier to set/read in code

* Update test to reflect update to transcoder

* Reduce the buffer to give it a little more room to improve the quality. It feels a bit crunched right now.

* Fix test due to changed bitrate buffer ratios

* Tweak buffer size one more time to get errors in the validator to zero

* Saw errors w/ different bitrates, so tweaking it again
2020-08-06 12:19:35 -07:00
Matt Steele
87636a4183
Support separate S3 serving endpoint (#91)
* Add s3 serving endpoint config. Fixes #90

* Move CDN endpoint generation to GenerateRemotePlaylist

* Include HLS path

* Add docs and config

* Prefer sprintf to string concatenation

* Use config method

* gofmt
2020-07-28 13:17:39 -07:00
Matt Steele
a20d2fce46
Add ACL option to s3 config (#89) 2020-07-27 21:41:51 -07:00
Gabe Kangas
b754ee01bf Remove IPFS. For #74 2020-07-19 21:15:53 -07:00
Gabe Kangas
fbfea8e38c Throw and error if a stream key is not set in the config 2020-07-18 17:46:18 -07:00
Gabe Kangas
fff911010c Centralize default values into an instance of config. For #64 2020-07-18 17:41:15 -07:00
Gabe Kangas
a8fe8a1cfa Add support for specifying the path for chat db. Closes #61 2020-07-15 17:20:47 -07:00
Gabe Kangas
8dfe3360e1 Fix typo 2020-07-13 16:29:03 -07:00
Gabe Kangas
fe102e7164 Make setting the offline content optional 2020-07-13 15:13:24 -07:00
Gabe Kangas
15f24b84ce Make setting extraUserInfoFileName optional 2020-07-13 15:10:16 -07:00
Gabe Kangas
0027957a33 Make setting the max # of segments in playlist optional 2020-07-13 14:55:21 -07:00
Gabe Kangas
9b104f1d40 Make setting the web server port optional 2020-07-13 14:48:56 -07:00
Gabe Kangas
44806d1a8e Make setting save location paths optional 2020-07-13 14:45:54 -07:00
Gabe Kangas
d51901e191 Make setting the segment length optional 2020-07-13 14:39:44 -07:00
Gabe Kangas
51e2e68017 Support default path of ffmpeg and not needing to specify it in the config 2020-07-13 14:32:12 -07:00
Gabe Kangas
28778d6437 Update documented paths for config file since it was changed to the
root. Addresses #52
2020-07-12 13:13:22 -07:00
Gabe Kangas
f54d1eba38 Add additional logging of ffmpeg output to file. Help troubleshoot #34 2020-07-12 09:52:54 -07:00
Gabe Kangas
ba69221394 Support disabling the web UI with disableWebFeatures. Closes #32 2020-07-06 21:53:30 -07:00
Gabe Kangas
1133edf716 Use the highest quality video segment to creat thumbnails from. Closes 2020-07-06 20:34:34 -07:00
Gabe Kangas
1f51ef9668 Add version string to config endpoint 2020-06-30 17:49:17 -07:00
Gabe Kangas
85cec76445 Move around how SocialHandles are configured. Closes #30 2020-06-30 17:12:02 -07:00
Gabe Kangas
ae2e98877b Remove no longer used property 2020-06-28 15:42:48 -07:00
Gabe Kangas
519c3aa8b5 Support a map of logos for #30 2020-06-28 15:14:57 -07:00
Gabe Kangas
73b6937496 Consolidate config files and surface frontend values via API. Closes #30 2020-06-28 15:10:00 -07:00
Gabe Kangas
04dc0796d8
New video transcoder (#27)
* New video transcoder

* Set a smaller max muxing size + logging tweaks

* No need to return an err since it wiill panic anyway

* Use a default encoder preset if one is not supplied

* Rename to NewTranscoder.  Add comments.

* Rename Bitrate to VideoBitrate. Config file changes required with this rename.

* Allow overrides of segment length. Allow offline stream to live in a single segment

* Append offline state video to existin HLS stream instead of overwriting because players do not like that

* Make properties private as they do not need to be exported
2020-06-25 17:44:47 -07:00
Bradley Hilton
487bd12444
Project restructure (#18)
* First pass at restructuring the project; untested but it does compile

* Restructure builds and runs 🎉

* Add the dist folder to the gitignore

* Update core/playlist/monitor.go

* golint and reorganize the monitor.go file

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2020-06-22 18:11:56 -07:00
Gabe Kangas
5bc3555206 Stitch in an offline slate when the RTMP stream is dropped 2020-06-15 16:27:58 -07:00
Gabe Kangas
0d0e33c607 Encoder tweaks 2020-06-14 21:17:01 -07:00
Gabe Kangas
a063956660 Restore max num of segments in playlist value 2020-06-12 15:02:02 -07:00
Gabe Kangas
d53fe98543 Enable passthrough video, where there is no reencoding and is lighterweight 2020-06-12 12:55:50 -07:00
Gabe Kangas
c605ea6570 Add support for non-AWS S3 storage endpoints and auth 2020-06-09 14:01:42 -07:00
Gabe Kangas
c4b6478b7b Add support for custom encoder presets 2020-06-09 13:15:44 -07:00
Gabe Kangas
de89cbc259 Add the start of more documentation 2020-06-09 11:56:08 -07:00
Gabe Kangas
0b5452de89 Support multiple adaptive bitrates 2020-06-09 02:21:42 -07:00
Gabe Kangas
8cd8c7df20 Add support for storing chunks on S3 2020-06-03 01:34:16 -07:00
Gabe Kangas
161aaeec8d Reject invalid streaming key 2020-06-01 17:15:11 -07:00
Gabe Kangas
ca622c85c7 Add config file. Turn on/off ipfs 2020-06-01 16:53:31 -07:00