Commit graph

318 commits

Author SHA1 Message Date
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
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
Gabe Kangas
b0b5801c5f
Stop storing messages in memory and pull from persistence. Closes #81 (#105) 2020-08-05 21:01:06 -07:00
Gabe Kangas
d9509f5606
Chat updates (#92)
* Send PONG responses to PINGs

* Split out client IDs for viewer counts vs. websocket IDs

* WIP username change event

* Display username changes

* Revert commented out code

* Add support for building from the current branch

* Fix PONG

* Make username changes have a unique ID

* Add a version param to js to cachebust
2020-07-28 21:30:03 -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
5ce9a4928c Fix timeout buffer after going offline. Closes #84 2020-07-22 23:54:36 -07:00
Gabe Kangas
43df6c432e Fix possible crash for concurrent map writes 2020-07-22 23:09:11 -07:00
Gabe Kangas
a7812f8d04 Increase the delay for the welcome chat message a bit 2020-07-20 00:22:32 -07:00
Gabe Kangas
b754ee01bf Remove IPFS. For #74 2020-07-19 21:15:53 -07:00
Ginger Wong
a3613612eb Merge branch 'master' into gek/current-stream-duration 2020-07-19 15:17:03 -07:00
Gabe Kangas
c0e4f647a2 Show chat by default. Closes #72. Show placeholder text that no registration is needed. Closes #73 2020-07-19 15:15:39 -07:00
Gabe Kangas
2855027f22
Use endpoint for chat history instead of websocket (#67)
* Change placeholder when chat is disabled

* Use the /chat endpoint for bulk chat history population instead of websocket. For #47

* Force LiveUI/seek bar during live to show. Closes #11.

* Change pulling chat history into app.js

* Force new messages to have visability = true
2020-07-18 17:27:04 -07:00
Gabe Kangas
8ba0b6d7ce Show in the UI how long the user has been streaming for. Closes #59 2020-07-18 15:08:43 -07:00
Gabe Kangas
2afde7b3f9 Fix missing default video bitrate if none is supplied 2020-07-15 23:56:14 -07:00
Gabe Kangas
a277012650 Limit the backlog of chat messages to recent messages. For #47 2020-07-15 22:06:24 -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
5fe9955f26 Increase the time between broadcast started and when we are marked as online 2020-07-15 16:14:12 -07:00
Gabe Kangas
95fd8aed96 Added a basic transcoder test 2020-07-14 18:54:52 -07:00
Gabe Kangas
a7a9ae0984 Fix incorrect logging method 2020-07-14 16:48:41 -07:00
Gabe Kangas
a11999c3c0 Log cleanup 2020-07-13 23:55:12 -07:00
Gabe Kangas
ec83e11bd9 Approximately 3 segments should be available before playback can start 2020-07-13 23:51:55 -07:00
Gabe Kangas
dd1b9411bf Add verbose logging for RTMP metadata 2020-07-13 23:32:35 -07:00
Gabe Kangas
4559bde977 Most things have 30 as a standard fps instead of 25 2020-07-13 20:58:45 -07:00
Gabe Kangas
a9a83f78a3 Set a default framerate so we can specify the correct iframe settings 2020-07-13 19:37:25 -07:00
Gabe Kangas
fe102e7164 Make setting the offline content optional 2020-07-13 15:13:24 -07:00
Gabe Kangas
0027957a33 Make setting the max # of segments in playlist optional 2020-07-13 14:55:21 -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
8cedf05214 Basic chat persistence for #26 2020-07-12 14:59:40 -07:00
Gabe Kangas
c553637521 Cleanup 2020-07-12 09:52:54 -07:00
Gabe Kangas
2bd016ae15 Add default video settings if none are provided 2020-07-12 09:52:54 -07:00
Gabe Kangas
873e2535f8 Additional log msg 2020-07-12 09:52:54 -07:00
Gabe Kangas
1409477dce Use the built-in AAC codec 2020-07-12 09:52:54 -07:00
Gabe Kangas
a0d27df8c6 Re-work RTMP for #34 2020-07-12 09:52:54 -07:00
Gabe Kangas
8f832dad5a Add support for stopping the transcoding process 2020-07-12 09:52:54 -07:00
Gabe Kangas
072abf2976 Fix log message 2020-07-12 09:52:54 -07:00
Gabe Kangas
6624670813 Do not die if there is a missing audio or video stream in source. #34 2020-07-12 09:52:54 -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
baaf556c54 Log level change 2020-07-12 09:52:54 -07:00
Gabe Kangas
ef295b6794 Cleanup + poll connection for disconnected state. For #34 2020-07-12 09:52:54 -07:00
Gabe Kangas
0aa3159372 Works if I mux restream to ts, not flv 2020-07-12 09:52:54 -07:00
Gabe Kangas
43d434747b Attempt with Joy5 2020-07-12 09:52:54 -07:00
Gabe Kangas
d7a2ffcca4 Add timestamp to messages. For #26 2020-07-11 19:09:01 -07:00
Gabe Kangas
4344ab6b00 Revert "Create thumbnail from end of segment. Closes #14"
This reverts commit 266fe51028.
2020-07-06 22:39:07 -07:00
Gabe Kangas
081024569e Another logging tweak 2020-07-06 22:24:55 -07:00
Gabe Kangas
266fe51028 Create thumbnail from end of segment. Closes #14 2020-07-06 22:16:40 -07:00
Gabe Kangas
259923b303 Set logging preferences via command line flags. Closes #20 2020-07-06 21:27:31 -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
3e042866ec Fix multiple bitrates not being uploaded to s3. Closes #40 2020-07-05 22:03:53 -07:00
Gabe Kangas
ae2e98877b Remove no longer used property 2020-06-28 15:42:48 -07:00
Gabe Kangas
f949adb40c Remove panic and log error if file no longer exists. Closes #31 2020-06-28 15:30:43 -07:00
Gabe Kangas
a31076a591 Fix I guess what was a typo 2020-06-25 18:26:54 -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
Gabe Kangas
4132cf6d09 Move where the message type is set, and standardize on all caps CHAT 2020-06-24 23:20:19 -07:00
Gabe Kangas
8878ca1e88 Have both connect and disconnect time in the status API 2020-06-24 22:52:05 -07:00
Gabe Kangas
a297e33eff Make IDs for chat messages generated server-side, not client. For #26 2020-06-24 22:00:49 -07:00
Gabe Kangas
a3273e9deb Value injection at build time seems to only work for the main package 2020-06-24 12:55:49 -07:00
Bradley Hilton
abb2f363af
Decouple chat from core and add chat rest api (#25)
* Decouple the chat package from the core

* Add rest api endpoints for the chat aspect
2020-06-23 13:11:01 -07:00
Bradley Hilton
fe96739f60
Fix a memory leak with the chat aspect. (#23)
Essentially, the for loop wasn't being returned out
of and that caused the read listener to never be
let up and released to the gc
2020-06-22 23:52:50 -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