Commit Graph
253 Commits
Author SHA1 Message Date
MeisamandGitHub a13e1e75e2 proper cleanup and permission check for the hls directory (#1167)
* check error on hls cleanup

* rm HLS directories before creating new ones

* don't mask the variable

* mv cleanupDirectory() to utils

* add user-friendly error messages
2021-07-08 12:35:53 -07:00
JannikandGitHub 3f9f4a151c refactor: use io.Pipe and ffmpeg's stdin (#1148)
This removes the usage of `syscall.Mkfifo` which was previously used and
won't work on Windows systems and opens the door for other processes on
the computer to interfere in the rtmp stream (dumping bad content in the
fifo, removing the file, blocking the file in offline status).
Instead, this patch introduces an `io.Pipe` which pipes the RTMP stream
to the ffmpeg command while staying in Owncast.

Further links:
* ffmpeg on using `pipe:0` as an input: https://ffmpeg.org/ffmpeg-protocols.html#pipe
2021-07-03 12:28:25 -07:00
JannikandGitHub edc777ae1b 🐛 use currentBroadcast for playlist overwrites (#1149)
Fixes #1147 since it looks into currentBroadcast and does not use the configuration of the next stream.
2021-07-01 18:27:56 -07:00
Gabe Kangas 0802a20f4f Do not save invalid disconnect time 2021-06-29 11:38:13 -07:00
Gabe Kangas 12104978e8 Some linter cleanup 2021-06-29 10:21:00 -07:00
Gabe Kangas ab3bbd59bf Cleanup the persisted disconnected time 2021-06-29 10:04:26 -07:00
Gabe Kangas d28c4b96f3 Fix invalid nil time being returned 2021-06-28 13:59:23 -07:00
Gabe Kangas 1586d80a32 Wire up blocked chat username controller 2021-06-21 20:16:21 -07:00
Gabe Kangas 20c272ff3d Guard against invalid last disconnect time 2021-06-20 20:16:27 -07:00
Gabe Kangas 89dfcfb047 Fix buggy saving of lastDisconnectTime now used for #1111 2021-06-20 11:30:29 -07:00
MeisamandGitHub e991199735 updates to backups directory (#1099)
* read BackupDirectory from command line flag

* Change the default backup directory

* mkdir BackupDirectory

* use config for backup file path

* migrateDatabase to the backup directory

* use DoesFileExists

change permission on the directory to 0700

* declare err

* generate backupFile  where needed

* style fix

* more style fixes

* more style fixes
2021-06-13 15:28:59 -07:00
Gabe Kangas 306a0066d1 Fix concurrency crash. Closes #1067 2021-06-07 21:59:43 -07:00
JannikandGitHub fae2c58259 Fix rtmp secret validation to allow / (#1069) (#1070)
* Fix rtmp secret validation to allow `/` (#1069)

* add negative test cases for stuff before /live/

* simplify since Url.Path is already stripping the host

This means that we can simplify the code and make it much clearer.
Removes the tests that checked for the host and stuff between the host and /live/.
2021-06-04 20:09:43 -07:00
Gabe Kangas 94136d4361 Demote log message 2021-05-24 21:43:13 -07:00
leucandGitHub 5ab901bb36 Fix #981 Use -webserverip to set http listen address (#1032)
* Fix #981 Use -webserverip to set http listen address

* use 0.0.0.0 as default http listen address

* add Admin REST API for setting http listen address

* full input validation of port and IP
2021-05-24 16:13:49 -07:00
Gabe Kangas 1a0beb1d0e Fix tests 2021-05-23 14:27:35 -07:00
MeisamandGitHub 8b57ddcfb1 Remove config file migrator (#1045)
* rm migrator consts

* Delete migrator.go

* rm RunMigrations()
2021-05-23 13:36:34 -07:00
Fabian FischerandGitHub d3696cd0aa fix: avoid duplicate cache-control header (#1048) 2021-05-23 13:35:05 -07:00
Gabe Kangas 61e07bf945 API for setting a list of blocked usernames. For #782 2021-05-22 21:50:34 -07:00
Gabe Kangas 83ad6db394 If tag storage is an empty string return back an empty slice. Fixes #974 2021-05-22 21:32:56 -07:00
Gabe Kangas 381daaec9b Save owncast logs to log file. Closes #908 2021-05-22 19:25:54 -07:00
Gabe Kangas 36a15a97dd Handle the server summary data as auto-linked markdown. Closes #1010 2021-05-22 17:09:57 -07:00
tomlebandGitHub 1504ea3509 Add -logdir flag (#1039)
This allow configuring the various logs that may be outputted
(transcoder and future logs)
2021-05-22 16:29:49 -07:00
Gabe KangasandGitHub 91f6dcd0f6 Active viewer PING controller. Closes #790 (#990) 2021-05-20 20:29:01 -07:00
Gabe Kangas 3810ce4f63 Do not try to copy logo if image does not exist on disk 2021-05-14 15:28:13 -07:00
Gabe Kangas 09da85090e Fix tests 2021-05-05 19:58:02 -07:00
Gabe Kangas 4f4cef97e2 Force an iframe every segment 2021-05-05 18:21:27 -07:00
Gabe Kangas fc123ecda3 Fix tests 2021-05-05 17:31:19 -07:00
Gabe Kangas 6bcbe60c28 Update latency level values 2021-05-05 17:22:57 -07:00
Gabe Kangas fa3a959dc5 update tests 2021-04-29 22:13:47 -07:00
Gabe Kangas 5324d235bf Force an i-frame every second for consistent segment lenghts with
minimum latency.
2021-04-29 22:06:39 -07:00
Gabe Kangas 4f73da30a8 Add additional stream + server info to stream started webhook. Closes #971 2021-04-29 17:04:33 -07:00
Gabe Kangas eedc07fc94 Ignore warning about hls segment length 2021-04-24 14:00:35 -07:00
Gabe Kangas 34c4350597 Add some more va-api codec error mappings 2021-04-21 17:48:39 -07:00
Gabe Kangas a06a9c58ea Add i965-va-driver-shader missing error 2021-04-15 22:25:28 -07:00
Gabe Kangas 543577c2e0 Create hls directories at transcoder start to account for stream output changes. Fixes #940 2021-04-15 21:36:14 -07:00
5214d81264 Codec selection (#892)
* Query for installed codecs

* Start modeling out codecs

* Can now specify a codec and get the correct settings returned from the model

* Return codecs in admin/serverconfig

* Start handling transcoding errors and return messages to user

* filter available codecs against a whitelist

* Fix merge

* Codecs are working

* Switching between codecs work

* Add apis for setting a custom video codec

* Cleanup the logging of transcoder errors

* Add v4l codec

* Add fetching v4l

* Add support for per-codec presets

* Use updated nvenc encoding parameters

* Update log message

* Some more codec WIP

* Turn off v4l. It is a mess.

* Try to make the lowest latency level a bit more playable

* Use a human redable display name in console messages

* Turn on transcoder persistent connections

* Add more codec-related user-facing error messages

* Give the initial offline state transcoder an id

* Force a minimum segment count of 3

* Disable qsv for now. set x264 specific params in VariantFlags

* Close body in case

* Ignore vbv underflow message, it is not actionable

* Determine a dynamic gop value based on the length of segments

* Add codec-specific tests

* Cleanup

* Ignore goconst lint warnings in codec file

* Troubleshoot omx

* Add more codec tests

* Remove no longer accurate comment

* Bundle admin from codec branch

* Revert back to old setting

* Cleanup list of codecs a bit

* Remove old references to the encoder preset

* Commit updated API documentation

* Update admin bundle

* Commit updated API documentation

* Add codec setting to api spec

* Commit updated API documentation

Co-authored-by: Owncast <owncast@owncast.online>
2021-04-15 13:55:51 -07:00
Gabe Kangas f216e781dd Reduce log level on data getters 2021-04-14 16:06:22 -07:00
Gabe Kangas df7dff081f Set and get custom styling for web interface. For #718 2021-04-11 19:34:05 -07:00
Gabe KangasandGitHub 36be7b76c2 If no logo exists copy a default one into data on launch. Closes #909 (#916) 2021-04-11 16:44:50 -07:00
Gabe Kangas 12509c1bc2 Change log level 2021-04-07 00:13:30 -07:00
Gabe Kangas 64a5720a21 Allow unique streampipe fifos. Closes #883 2021-04-01 18:56:00 -07:00
Gabe Kangas 7556671afc Fix race condition where initial offline video state was not written 2021-03-31 23:08:27 -07:00
Gabe Kangas 3ad221665e Handle un-typed or un-parsable chat messages by throwing them away and not panicing. Closes #856 2021-03-25 19:20:05 -07:00
nebunezandGitHub 80579c5e7e implement custom welcome message (#820)
* implement custom welcome message

This change adds logic for handling custom welcome messages.

* trim welcome message string on POST

Instead of trimming the welcome message every time we are going to send to send
a welcome message, we just trim once when the message is posted from the admin.
2021-03-21 17:10:56 -04:00
3fb80554ef Gek/external actions (#827)
* WIP External actions modal frontend

* Add external action links

* Allow modal to show/hide and use a dynamic url

* Use external link object instead of just url for state

* add style and placement to external action buttons

* reformat and simplify tag list style as not to conflict with action buttons and make them look less actionable since they're not

* fix bug to open modal

* have Esc key close modal

* fix style on modal

* make modal bg darker

* close modal when you click outside of it

* fix zindex

* Add support for external action icons and colors

* Some external action modal sizing + loading spinner

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2021-03-15 15:32:52 -07:00
Gabe KangasandGitHub bf33d08384 Add support for disabling chat. Closes #472 (#799) 2021-03-14 11:46:27 -07:00
Gabe KangasandGitHub 6f545a905b Support full html in system messages. Closes #747 (#814) 2021-03-12 00:43:10 -08:00
nebunez 7e0822b62d fix mismatched message ids when client first sends a message
This bug is caused by the message being sent to all clients before
msg.SetDefaults() is called and the message is saved to the chat database. This
causes connected clients to get a message id that is different from what exists
in the database. This only affects clients using websockets that were connected
when the message was sent and message visibility updated.

Fixes https://github.com/owncast/owncast/issues/809
2021-03-10 14:07:47 -05:00
Gabe KangasandGitHub de195f883e Gek/disable remote images (#800)
* Disable images from anywhere but our emojis. Closes #756

* Add tests around images in chat messages

* Update sanitizer + test
2021-03-08 23:20:15 -08:00