Commit graph

366 commits

Author SHA1 Message Date
Gabe Kangas
515661804a Force videojs to set cache-control header and add a random query param to each request. Closes #82 I hope. 2020-07-22 19:53:50 -07:00
Gabe Kangas
01c487c2b5 Point to production build of vue 2020-07-20 22:03:02 -07:00
Gabe Kangas
e0670585fb Experiment with starting with lowest quality and moving up from there 2020-07-20 21:59:17 -07:00
Gabe Kangas
5d13805bf2 Update videojs 2020-07-20 21:58:40 -07:00
Gabe Kangas
1464945061 Finally give the extra user content markdown some styling 2020-07-20 19:08:06 -07:00
Gabe Kangas
a7b625c37f Show chat as disabled by default 2020-07-20 00:21:10 -07:00
Gabe Kangas
54a9206051 Support chat message word wrapping if needed 2020-07-19 23:55:16 -07:00
Gabe Kangas
0e45bd9ca3 Ok make the avatars a bit larger 2020-07-19 23:27:17 -07:00
Gabe Kangas
cbbff2e5f5 Create padding around chat avatars and the colored container 2020-07-19 22:57:42 -07:00
Gabe Kangas
0fb48d8a7c Add favicon(s). Closes #75 2020-07-19 22:27:42 -07:00
Gabe Kangas
2ae227360a Hide viewer stats when in offline mode. Closes #66 2020-07-19 17:29:16 -07:00
Gabe Kangas
1ae1e94368 Disable text input by default 2020-07-19 17:20:26 -07:00
Ginger Wong
eb699f9790 use constants for message strings 2020-07-19 16:14:38 -07:00
Ginger Wong
b66a80f11e add comments; use promise for fetching chat history for consistency 2020-07-19 16:11:29 -07:00
Ginger Wong
3f594abac8 update offline flow an stream status timer flow 2020-07-19 16:06:55 -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
Ginger Wong
72ccc70a56 Merge branch 'master' into 0718-refactor-touchscreenlayout 2020-07-19 15:13:18 -07:00
Ginger Wong
fdce8585d5 css tweaks for mobile mode; reintroduce mobile styles and hacks 2020-07-19 15:12:57 -07:00
Ginger Wong
d775924c59 barebones noscript layout 2020-07-18 17:44:18 -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
Ginger Wong
38a279485b disable click events on video container when offilne 2020-07-18 17:18:58 -07:00
Ginger Wong
e12de3215f cleanup 2020-07-18 17:17:10 -07:00
Ginger Wong
0af67c0cdc simplified layout updates based on only media queries 2020-07-18 17:15:52 -07:00
Gabe Kangas
a266633a9a Force LiveUI/seek bar during live to show. Closes #11. 2020-07-18 15:37:17 -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
addfce2ec9 Change placeholder when chat is disabled 2020-07-16 20:15:08 -07:00
Gabe Kangas
3eba516f04 Add cachebuster to source to force new video. Attempt to fix #63 2020-07-16 19:54:12 -07:00
gingervitis
42b0b05d78
App Javascript refactor (#56)
* objectify app away from window. wip

* fix messaging obj binding; put logo behind video; fix /null issue with temp logo image

* first pass at js refactor

* remove unused files that had been consolidated during refactor

* set up vue before getting config

* add a few comments

* dont use big arrow function, just bind, for safari

* add airplay after instantiating video; check if input exists before disabling it;:

* only set poster on pause during playback, and onEnded; take out sample videoJS tech options

* disable chat after 5mins after going offline

* move 'online' class to video container as it conflicts with dynamically change classnames from non-vue sources

* disable chat based on lastdisconnecttime

* fix typo; do offline mode onEnded instead of status offline

* move offline ui display things to offline mode function; move poster setting on pause to main app to keep player obj cleaner; use opacity to hide video element on offline as sometimes control bars may still linger with vis:hidden

* fixes'

* don't autoplay. just show play button when stream is online so that it's easier to start playign without looking for the unmute button

* clean up console logs

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2020-07-16 12:17:05 -07:00
Gabe Kangas
78edee10cb Do not set poster on status polls for now 2020-07-12 11:02:49 -07:00
Gabe Kangas
0a3691e25e Flip local bool 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
Ginger Wong
8cd13269ec clean up consts a bit 2020-07-07 23:35:09 -07:00
Ginger Wong
c76aec8c88 fix cursor on default social icon 2020-07-07 23:32:14 -07:00
Ginger Wong
827e402bcc randomize avatar for same names 2020-07-07 23:30:26 -07:00
Ginger Wong
426bfe000f fix typo 2020-07-07 23:03:22 -07:00
Gabe Kangas
180534cfaf Force poster to reload so it uses the recent thumbnail. #37 2020-07-06 00:04:07 -07:00
Ginger Wong
34b3806806 low hanging cleanup for extrauser content 2020-07-05 01:29:48 -07:00
Ginger Wong
9bd1df8530 make consts; clean up get status 2020-07-05 01:08:22 -07:00
Ginger Wong
5efa67d605 generate avatar img with util 2020-07-04 22:34:00 -07:00
Ginger Wong
96258fc0f3 update document title 2020-07-03 18:10:57 -07:00
Ginger Wong
53ba5eb186 fix social script typos 2020-07-03 18:07:57 -07:00
Gabe Kangas
1f51ef9668 Add version string to config endpoint 2020-06-30 17:49:17 -07:00
Ginger Wong
6803f7e7e8 header adjustments for small screens; adjust to new config structure; 2020-06-30 02:36:10 -07:00
Ginger Wong
5a3aed9587 remove jquery 2020-06-28 17:23:58 -07:00
Ginger Wong
7f28f25455 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-28 17:20:43 -07:00
Ginger Wong
b228d3a4e5 componentize user info 2020-06-28 17:15:53 -07:00
Gabe Kangas
46177b8163 Update documentation since people might try and run this soon 2020-06-28 16:31:54 -07:00
Gabe Kangas
73b6937496 Consolidate config files and surface frontend values via API. Closes #30 2020-06-28 15:10:00 -07:00
Ginger Wong
6c7af9ffae clean up footer things 2020-06-28 15:08:08 -07:00
Gabe Kangas
a9b8a70e8a Change the poster based on online status 2020-06-25 21:56:43 -07:00
Gabe Kangas
20eb8287ef Reset after player ended to force poster. Break out reset function. 2020-06-25 21:24:43 -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
a297e33eff Make IDs for chat messages generated server-side, not client. For #26 2020-06-24 22:00:49 -07:00
Gabe Kangas
5dffaf215b Fix missing poster in the player. Closes #29 2020-06-24 14:34:22 -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
Ginger Wong
1a44a4bd2f user content general layout 2020-06-21 01:31:08 -07:00
Ginger Wong
1ecf39c2f1 clean up social code 2020-06-21 00:07:57 -07:00
Ginger Wong
19dee67f2a set up components and icons for optional creator's social pages; add airplay icon 2020-06-20 23:41:13 -07:00
Gabe Kangas
04dd7d7f90 Explicitly set poster in js 2020-06-19 13:40:44 -07:00
Gabe Kangas
4c194afce9 Experiment with markdown being supported in chat messgaes 2020-06-19 13:40:36 -07:00
Gabe Kangas
7bdc9052d3 Fix undefined reference in js 2020-06-19 12:19:18 -07:00
Gabe Kangas
886485255a Fix errors on Firefox 2020-06-18 20:46:07 -07:00
Bradley Hilton
5611f4d00e
Merge branch 'master' into fix-initial-offline-state 2020-06-18 20:07:23 -05:00
Gabe Kangas
69da77b054 Fix short segment thumbnails. Move to JPG thumbs. Fix default thumb copy. 2020-06-18 17:56:06 -07:00
Bradley Hilton
42371a30fe
Fix the race condition where the logo wasn't copied over for the default thumbnail 2020-06-18 19:35:09 -05:00
Gabe Kangas
55776b0136 Add default thumbnail 2020-06-18 15:12:25 -07:00
Gabe Kangas
26760b3be1 Rework how videojs is initialized 2020-06-18 14:38:06 -07:00
Ginger Wong
51b79287c5 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-18 10:25:58 -07:00
Ginger Wong
b39824b8c3 updates towards more customization 2020-06-18 10:24:54 -07:00
Gabe Kangas
3ce6026cc8 Simplify videojs init 2020-06-18 01:24:09 -07:00
Ginger Wong
d15080db11 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-18 00:12:39 -07:00
Ginger Wong
cf27b157e6 - fix chrome mobile form focus bug by specifying class. when form focuses media query widths change and may think portrait is in landcape and therefore hide the form.
- cleanup now unused methods
- jump to bottom from vue prop listener
2020-06-18 00:06:10 -07:00
Gabe Kangas
6bc10dc812 Add web content file to build 2020-06-17 23:24:27 -07:00
Gabe Kangas
728b5fe3d7 Update videojs 2020-06-17 21:14:58 -07:00
Gabe Kangas
b0a73a99b9 Add ability to populate the content area in the page with a markdown file 2020-06-17 20:56:24 -07:00
Gabe Kangas
594e1c774a Add ability to populate the content area in the page with a markdown file 2020-06-17 20:20:28 -07:00
Gabe Kangas
f20d8b3179 Troubleshoot player not getting ready event on production server 2020-06-17 17:48:33 -07:00
Gabe Kangas
06ec265038 Use on Ready event instead of player setup hook 2020-06-17 17:16:34 -07:00
Gabe Kangas
431c1a54e7 Split out status polling into own file 2020-06-17 16:35:47 -07:00
Gabe Kangas
b2f74adc02 Move player js to player.js. Update offline video clip. 2020-06-17 16:25:27 -07:00
Ginger Wong
d27c87212e Merge branch 'master' of https://github.com/gabek/owncast 2020-06-17 10:39:19 -07:00
Ginger Wong
aad1a407b8 take out unused event listeners; layout fixes 2020-06-17 10:39:13 -07:00
Gabe Kangas
b835d7d56f Catch automated play() promise error 2020-06-16 21:48:37 -07:00
Gabe Kangas
b35059f17b Wait until player is setup before we start polling for status 2020-06-16 21:08:31 -07:00
Gabe Kangas
c6e4ea8349 Use client-side config files to config things 2020-06-16 18:58:03 -07:00
Gabe Kangas
ca4932e2b4 Make the entire web page wrapped in a vue object 2020-06-16 18:36:11 -07:00
Ginger Wong
195fe5d9e3 Merge branch '0615-layoutrefactor' 2020-06-16 02:16:21 -07:00
Ginger Wong
21aaf0c0fc add logo 2020-06-16 02:09:47 -07:00
Ginger Wong
fd570a6f75 integrate desktop styles. clean up later 2020-06-16 02:09:29 -07:00
Ginger Wong
97c71771df markup and styles for simple mobile only 2020-06-15 23:32:26 -07:00
Gabe Kangas
d7229a8c6d Add AirPlay player button 2020-06-15 20:12:24 -07:00
Gabe Kangas
12d2973e9c Finally give this thing a stupid real title 2020-06-15 18:20:42 -07:00
Ginger Wong
903fdc33ae Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 17:40:18 -07:00
Ginger Wong
7aaf1e6102 good nuff hacks for nowz 2020-06-15 17:40:12 -07:00
Gabe Kangas
a90d98ff1b Auto-restart playback when the stream comes back online 2020-06-15 17:23:44 -07:00
Ginger Wong
44058c24aa ⏱🛠 2020-06-15 16:23:39 -07:00
Ginger Wong
59ab5e9e98 add a delay before recalculating vh 😭 2020-06-15 15:55:57 -07:00
Ginger Wong
0510d47486 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 15:46:01 -07:00
Ginger Wong
4497cc86c2 mobile hackery 2020-06-15 15:45:55 -07:00
Gabe Kangas
96870870e1 Remove unused method 2020-06-15 14:52:51 -07:00
Gabe Kangas
08d20a1096 Add color hash for user avatar backgrounds 2020-06-15 13:44:39 -07:00
Ginger Wong
a9f8ee9956 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 13:43:48 -07:00
Ginger Wong
567729f6f8 calc resize on android on message field focus 2020-06-15 13:43:41 -07:00
Gabe Kangas
7e959e3ba1 Add color hash for user avatar backgrounds 2020-06-15 13:42:34 -07:00
Ginger Wong
986c168d07 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 00:15:36 -07:00
Ginger Wong
cef9bc7adb hacks and fixes 2020-06-15 00:15:23 -07:00
Ginger Wong
f864e57340 update colors using tailwind styles 2020-06-14 23:12:58 -07:00
Gabe Kangas
d9ce2c0575 Remove hardcoded urls 2020-06-14 22:27:02 -07:00
Ginger Wong
82b0d725c3 center play btn hack 2020-06-14 21:27:50 -07:00
Ginger Wong
67acfeb6f5 Merge branch '0614gw-updates' 2020-06-14 21:15:03 -07:00
Ginger Wong
c16cd50dbb mobile style hacks 2020-06-14 21:14:42 -07:00
Gabe Kangas
11b842ec53 Remove sea theme 2020-06-14 19:15:24 -07:00
Gabe Kangas
8821f09a9d Fix changing username 2020-06-14 18:28:21 -07:00
Ginger Wong
1b2b7248fc Merge branch 'master' into 0614gw-updates 2020-06-14 18:20:24 -07:00
Ginger Wong
151dcb46d2 misc 2020-06-14 18:20:04 -07:00
Gabe Kangas
4e61848d31 Use sea theme just to get rid of that upper left hand corner play button 2020-06-14 18:12:06 -07:00
Gabe Kangas
16e8ab4edc Re-enable timed status check 2020-06-14 17:15:19 -07:00
Ginger Wong
ee19ecdc27 Merge branch '0614gw-updates' 2020-06-14 17:02:36 -07:00
Ginger Wong
687920a4cd more css 2020-06-14 17:02:10 -07:00
Gabe Kangas
a9662e7c1e Support keepalive PING messages on the socket 2020-06-14 16:53:25 -07:00
Ginger Wong
aead6d6b13 videojs video sizing hacks, other css 2020-06-14 16:32:39 -07:00
Gabe Kangas
a3c3276a48 Start of a web UI config 2020-06-14 15:18:43 -07:00
Gabe Kangas
c2d0d6e962 Remove ES6 arrow functions 2020-06-14 13:08:14 -07:00
Gabe Kangas
5e1524d03e Merge remote-tracking branch 'origin/web-layout'
* origin/web-layout:
  more clean up and fixins
  fix chat; get rid of jquery
  set up localstorage-able items
2020-06-14 01:29:28 -07:00
Ginger Wong
50a59ef3c0 more clean up and fixins 2020-06-14 01:10:26 -07:00
Ginger Wong
3ef20c5516 Merge branch 'web-layout' of https://github.com/gabek/owncast into web-layout 2020-06-14 00:24:55 -07:00
Ginger Wong
0fa453044f fix chat; get rid of jquery 2020-06-14 00:24:26 -07:00
Ginger Wong
2aaedd99b5 set up localstorage-able items 2020-06-13 23:38:09 -07:00
Gabe Kangas
6d8e8a8849 Merge branch 'web-layout'
* web-layout:
  Show max viewers
  Move to videojs and point to remote video on goth.land
  form functionailties
  progress. implement chat toggling
  fix msg container
  use app file from web-layout
  style message items
  Guard against the infinite that can take place when the ws server goes unavailable
  use css vars
  initial chat form layout
  mobile considerations
  add file
  initial layout
  Support local development of index.html
2020-06-13 22:46:06 -07:00
Gabe Kangas
ce41b6ad40 Show max viewers 2020-06-13 22:45:22 -07:00
Gabe Kangas
4553ae628b Move to videojs and point to remote video on goth.land 2020-06-13 22:36:12 -07:00
Ginger Wong
5d787d25cd form functionailties 2020-06-13 22:15:58 -07:00
Ginger Wong
eb223ed905 progress. implement chat toggling 2020-06-13 20:15:31 -07:00
Ginger Wong
9b2e4f40c9 fix msg container 2020-06-11 01:24:05 -07:00
Gabe Kangas
b47ea89c06 Add basic persistent viewership stats 2020-06-10 23:59:36 -07:00
Gabe Kangas
9ebec675b5 Generate a static thumbnail png every 20s 2020-06-10 01:38:35 -07:00
Gabe Kangas
33278fc2c5 Replace hls.js with videojs for web playback 2020-06-10 00:35:33 -07:00
Ginger Wong
69ba10a898 use app file from web-layout 2020-06-09 14:15:00 -07:00
Ginger Wong
5c46191cbf Merge branch 'web-layout' into web-layout-gw 2020-06-09 14:13:35 -07:00
Ginger Wong
21c3520e00 style message items 2020-06-09 14:12:50 -07:00
Gabe Kangas
a65564eedf Guard against the infinite that can take place when the ws server goes unavailable 2020-06-09 10:56:15 -07:00
Gabe Kangas
39be46d884 Guard against the infinite that can take place when the ws server goes unavailable 2020-06-09 10:51:12 -07:00
Gabe Kangas
2829d14144 Do not transcode audio just pass it along 2020-06-09 02:47:02 -07:00
Ginger Wong
6da9b7c889 use css vars 2020-06-09 01:22:32 -07:00
Ginger Wong
60080cd93c initial chat form layout 2020-06-04 03:15:27 -07:00
Ginger Wong
33f994fcfd mobile considerations 2020-06-04 02:31:41 -07:00
Ginger Wong
35a3a907c5 add file 2020-06-04 01:32:06 -07:00
Ginger Wong
9b63d1ffb3 initial layout 2020-06-04 01:31:47 -07:00
Gabe Kangas
a29852f404 Support local development of index.html 2020-06-02 18:37:05 -07:00
Gabe Kangas
ad959b130b Make sure the hls directory is in the repo 2020-06-02 18:24:30 -07:00
Gabe Kangas
ae94eb1c5f Make messages unique and dedupe on reconnection 2020-06-02 17:59:58 -07:00
Gabe Kangas
f83fccfa89 Show viewer count and reconnect to websocket 2020-06-02 17:35:49 -07:00
Gabe Kangas
380dad2b87 Support links and embeds in the chat 2020-06-02 15:37:36 -07:00
Gabe Kangas
f6153c983f Save author name on send 2020-06-02 14:27:11 -07:00
Gabe Kangas
90e7e9082b Fix status checking loop. 2020-06-02 14:22:22 -07:00
Gabe Kangas
7e85a38613 Use Vuejs for web UI 2020-06-02 14:07:38 -07:00
Gabe Kangas
1395e7ff82 Try and hack around autoplay 2020-06-02 10:42:24 -07:00
Gabe Kangas
94fabf56a8 Store chat username on send 2020-06-02 10:38:13 -07:00
Gabe Kangas
4cb282040b Add endpoint for returning stream status 2020-06-02 01:02:26 -07:00
Gabe Kangas
020ace7ddd Some basic positioning of HTML 2020-06-01 23:50:32 -07:00
Gabe Kangas
216c15547d Use relative path to websocket 2020-06-01 17:51:33 -07:00
Gabe Kangas
ca622c85c7 Add config file. Turn on/off ipfs 2020-06-01 16:53:31 -07:00
Gabe Kangas
af698063bd Initial POC works with IPFS 2020-05-30 19:05:30 -07:00
Gabe Kangas
cc48f86b85 WIP 2020-05-23 17:57:49 -07:00