Commit Graph
410 Commits
Author SHA1 Message Date
f81e8dcda7 Mute the 'stream ended' clip's audio (#3630)
* Mute the 'stream ended' clip's audio

The 'stream ended' clip plays at the at the end of every stream broadcast using owncast.
It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter)
This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment.
As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR.

This issue is discussed in more detail in #1965.

Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio.

Specifically, I used this ffmpeg command:
```
ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts
```

There are no other modifications to the clip.

* Commit updated API documentation

* feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached

* Fix conflict

* force add new offline file

---------

Co-authored-by: vivlim <vivlim@vivl.im>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-04-17 11:44:19 -07:00
Gabe KangasandGitHub a450e62397 Optionally disable chat rate limiter and add optional chat slur/language filter (#3681)
* feat(chat): basic profanity filter. For #3139

* feat(chat): add setting for disabling chat spam protection. Closes #3523

* feat(chat): wire up the new chat slur filter to admin and chat. Closes #3139
2024-04-09 22:25:41 -07:00
Gabe Kangas ebf64dd17d fix(chat): do not send chat join message
If a user is already connected to chat from elsewhere, do not send an
additional chat join message. Closes #3487
2024-02-18 15:49:50 -08:00
Aziz RmadiandGitHub b532b1545c Modified rate limit conditions to exclude moderators (#3534) 2024-01-24 10:27:38 -08:00
Gabe KangasandGitHub 841c300431 fix: share local hls file cleanup between s3 and filesystem providers. Fixes #3522 (#3531) 2024-01-22 20:26:36 -08:00
Gabe KangasandGitHub 7399bee276 Gek/cache bot search page (#3530)
* feat: add general purpose key/val caching layer

* feat: cache bot/metadata response page for 10 seconds
2024-01-21 17:18:47 -08:00
Gabe Kangas 5bb8a8b5aa fix: address potential crash that can happen with queued object storage uploads. Fixes #3440 2023-12-18 21:12:50 -08:00
Gabe Kangas b4c73315fa feat(log): point to passthrough as a potential issue when unable to generate thumbnails
Re: #3433 and #3431
2023-11-20 18:04:01 -08:00
Gabe Kangas 027f2544e3 fix(emoji): hopefully guard against the crash in #3331 2023-10-21 22:13:13 -07:00
Gabe Kangas 8e79e2acfa chore(go): run betteralign and gofumpt on codebase 2023-10-08 14:22:28 -07:00
Gabe Kangas 03b785fbe2 fix: remove whitespace to resolve linter warning 2023-09-21 18:04:06 -07:00
Tom FunkenandGitHub e375ea232a Renamed rewriteRemotePlaylist (#3313)
* Add support for remote serving endpoint on local storage

* Renamed rewriteRemotePlaylist
2023-09-21 17:58:02 -07:00
Gabe KangasandGitHub 169c11596c feat(chat): add support for chat part messages. Closes #3201 (#3291) 2023-09-10 10:58:11 -07:00
Gabe Kangas 3174eb20e5 fix: updates for new linter rules. Closes #3277 2023-08-25 19:58:44 -07:00
Gabe Kangas 1a7b6b99d5 feat(storage): support a object storage custom path prefix 2023-08-11 22:18:45 -07:00
Gabe KangasandGitHub 0fba5f70e2 feat(video): add IP address to RTMP logs. Closes #3212 (#3233) 2023-08-03 20:54:56 -07:00
Gabe KangasandGitHub c9298def5b Cleanup object storage files on success or failure (#3231)
* fix: cleanup object storage files on success or failure. Closes #3230

* fix: clean filepath when deleting for safety
2023-08-03 20:33:44 -07:00
John ReganandGitHub b2a80f2149 s3Storage: fix slice bounds out of range error (#3208) 2023-07-24 15:12:04 -07:00
Gabe Kangas d0376cdc75 fix: limit the different worker pools to available CPU cores. Should resolve #3189 2023-07-18 20:26:44 -07:00
John ReganandGitHub dfa3a2a273 chat: check that a new username is different before sending out updates (#3162) 2023-07-10 23:16:36 -07:00
46ca5223f9 Chat wire protocol (#3125)
* core: remove file extension from emoji name

* web: transform emotes to labels when sending

* chat: replace br with line break

* core: implement emoji cache

* chat: send shortcodes for custom emoji

* chat: correct esling errors

* core: move emoji injection into dedicated function

* emoji: integrate emoji into markdown renderer, fix formatting

* chat protocol: correct golangci-lint findings

* chat field: specify that the contentEditable is an HTMLElement

* admin: mention that emoji should have unique names

* Prettified Code!

* regenerate pack-lock

* chat: correct the emphasis tag, provide fallback for other elements

---------

Co-authored-by: jprjr <jprjr@users.noreply.github.com>
2023-07-05 17:25:47 -07:00
Gabe Kangas a354787a9e feat(chat): support line breaks and pasted content. Closes #3108 2023-06-27 14:51:01 -07:00
Gabe Kangas d33f117a82 fix(chat): fix missing alt tags on custom emoji. Closes #3106 2023-06-26 11:38:10 -07:00
Gabe Kangas 3ed5a0b7f3 feat: simplify console logs 2023-06-05 08:44:14 -07:00
hagnandGitHub 35bdb5bca2 Use VA-API hardware decoding and scaling (#2976)
* Enable VA-API hardware decoding

* Use VA-API hardware scaling
2023-06-02 12:15:10 -07:00
Gabe KangasandGitHub c295e4f215 Update segment cleanup to support object storage (#2876)
* Add support for S3 cleanup + standardize firing cleanup. Closes #2646

* fix: manually fix post-merge
2023-05-31 11:10:04 -07:00
Gabe KangasandGitHub cd458630ec Support using the custom video serving endpoint even if you don't use object storage (#2924)
* feat(video): refactor video serving endpoint

It can now be used without an object storage provider. Closes #2785

* fix: remove debug log
2023-05-30 14:05:24 -07:00
Gabe KangasandGitHub 209756fed3 feat(webhooks): add stream status to webhook (#2934)
Expand the payload sent for stream status webhooks. Closes #2881
2023-05-30 11:32:05 -07:00
Gabe KangasandGitHub 15dc718e61 feat: add support for robots.txt disabling search indexing (#2929)
* feat: add support for robots.txt

Can toggle disabling search engine indexing. Closes #2684

* fix: unexport ts const
2023-05-30 11:09:51 -07:00
Gabe KangasandGitHub 85e7af3d5f Update to Go 1.20 + run better align (#2927)
* chore(go): update go version to 1.20. Closes #2185

* chore(go): run better align against project

To optimize struct field order. Closes #2870

* chore(go): update CI jobs to use Go 1.20

* fix(go): linter warnings for Go 1.20 update
2023-05-30 10:31:43 -07:00
Gabe Kangas c4f30210ac Add comment to explain what this service does 2023-05-28 12:38:51 -07:00
Gabe Kangas d253081452 feat(video): force closed gops 2023-05-11 17:13:38 -07:00
Gabe Kangas 521e2d1276 chore(go): updated build tag constraint syntax 2023-04-24 17:49:29 -07:00
Gabe Kangas 74f076f44b Refactor the api access token query. Fixes #2902" 2023-04-05 15:33:48 -07:00
Gabe Kangas b5dc6324f8 Give a more detailed s3 failure error message 2023-04-01 13:15:35 -07:00
Pranav JoglekarandGitHub 8667fc9513 improv: use actual webhook events in webhook tests (#2882) 2023-03-30 20:38:57 -07:00
07c5cabfe8 Trigger the title updated webhook event whenever a title is changed (#2823)
* wip: trigger the title updated webhook event whenever a title is changed

* Commit updated API documentation

* fix: add STREAM_TITLE_CHANGED to list of valid events

* feat: Add support for STREAM_TITLE_CHANGED webhook event on admin dashboard

* fix: transmit webhook event after stream has changed to fix race conditions where older title was sent

---------

Co-authored-by: Owncast <owncast@owncast.online>
2023-03-28 11:34:00 -07:00
Gabe Kangas 604e1fdbaa Increase timeout between join messages from 5 to 10 minutes 2023-03-21 17:19:38 -07:00
7e76ee63e5 S3 headers (#2830)
* change s3 headers for playlist files

* clean up code

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2023-03-16 11:07:42 -07:00
Gabe Kangas 2364293742 Remove unused event and comments on block 2023-03-13 15:11:51 -07:00
Gabe Kangas 23a721857f Do not support stream key UI or any persisted stream keys when overridden via cli flag. Closes #2749 2023-02-27 17:08:52 -08:00
Gabe Kangas cf126c2e2c Fix the filename mismatch then the on-disk filename changed. 2023-02-05 20:42:34 -08:00
Gabe Kangas ba69bac6d9 Rename offline clip for clarity with typescript 2023-01-26 17:14:29 -08:00
Gabe Kangas f4ed7d7453 Create explicit mapping between cpu use levels and codec presets. Closes #2610 2023-01-22 20:45:19 -08:00
Gabe Kangas 19c228eaf6 Allow adding custom javascript to the page. Closes #2604 2023-01-18 22:38:24 -08:00
Michael David KuckukandGitHub 59e5cfefd4 Remove twitter notification configuration (#2598) 2023-01-17 13:20:29 -08:00
MeisamandGitHub 64d3c37fb2 improve stream testing script (#2549)
* merge testContent.sh into ocContent.sh

* detect ffmpeg

ffmpeg or ffmpeg.exe in path, current dir, or parent dir

* use ocTestStream in api test

* enable verbose logging for api tests

* log ffmpeg version

* change ffmpeg lookup order

* set path properly for using the local ffmpeg

* rm double space from transcoder error logs

* update tests for new video stream

do not test bitrate

* set test stream target to 127.0.0.1

* log ffmpeg path

* update ffmpeg to v4.4.1

* improve logs

* fix ffmpeg installer script

* fix api test runner

* fix logs

* install fonts

* cleanup

* use ocTestStream.sh for all automated tests

* cleanup ocTestStream.sh

* cleanup test/automated/hls/run.sh

* Fix misspell

* fix ffmpeg installer in automated test runners

* spell fix

* cleanup script

* rev quick api tests

* cleanup tmp paths properly in automated tests

* rm unused ffmpeg package

* cleanup

* fix s3 test

* cache ffmpeg bin for automated tests

* shellcheck allow source

* rm missplaced file if backup fails

* use ffmpeg full path

* set lookup path for shellcheck
2023-01-10 18:50:32 -08:00
Gabe Kangas 2675150cdf Revert "improve stream testing script (#2525)"
This reverts commit e748d8f765.
2023-01-04 14:22:55 -08:00
MeisamandGitHub e748d8f765 improve stream testing script (#2525)
* merge testContent.sh into ocContent.sh

* detect ffmpeg

ffmpeg or ffmpeg.exe in path, current dir, or parent dir

* use ocTestStream in api test

* enable verbose logging for api tests

* log ffmpeg version

* change ffmpeg lookup order

* set path properly for using the local ffmpeg

* rm double space from transcoder error logs

* update tests for new video stream

do not test bitrate

* set test stream target to 127.0.0.1

* log ffmpeg path

* update ffmpeg to v4.4.1

* improve logs

* fix ffmpeg installer script

* fix api test runner

* fix logs

* install fonts

* cleanup

* use ocTestStream.sh for all automated tests

* cleanup ocTestStream.sh

* cleanup test/automated/hls/run.sh

* Fix misspell

* fix ffmpeg installer in automated test runners

* spell fix

* cleanup script

* rev quick api tests

* cleanup tmp paths properly in automated tests

* rm unused ffmpeg package

* cleanup
2023-01-04 14:12:05 -08:00
Gabe Kangas 6a8473a297 Enforce username limitations on registration for #2527 2022-12-29 14:13:23 -08:00