Code Monkey home page Code Monkey logo

opencast-studio's Introduction

Opencast Studio

Build & test MIT license

A web-based recording studio for Opencast.

Important note for developers: currently, we are redesigning Studio completely. This will change a lot of code. So please do not start writing a patch for Studio now. At least talk to us first.

Opencast Studio uses the recording capabilities built into modern browsers to record audio and video streams. The recording happens completely in the user's browser: no server is involved in that part. Network access is only needed to initially load the application and to (optionally) upload the videos to an Opencast instance.

Supported Browsers

Firefox Chrome Edge Safari
Windows 11 -
Windows 10 -
Linux -
macOS
iOS - 1 - 1 - 1 🔶2
Android 🔶2 🔶2 🔶2 -

1 Non-Safari browser on iOS use the Safari browser engine, so behave essentially the same as Safari.

2 Screen share on mobile devices not supported; only webcam recording.

Usage

There are mainly three ways how to use Opencast Studio.

Integrated in Opencast

Starting with Opencast 8.2, Opencast Studio is integrated into and shipped with Opencast itself. If you have an Opencast system already, this is the easiest solution for you. See the Opencast documentation about the module 'studio' for more information.

Standalone Version at studio.opencast.org

Opencast Studio is always deployed from master branch.

You are free to use the publicly deployed version. However, there are two caveats.

For one, studio.opencast.org is updated fairly regularly with the newest version and is not tested as thoroughly as the Studio version integrated into Opencast releases. That means that it might occasionally not work or introduce backwards incompatible changes (mostly related to settings) at any time.

Additionally, in order to upload to your Opencast server from studio.opencast.org, that server needs to be configured appropriately. In particular, CORS requests from Studio need to be allowed and return the status code 200. For nginx, you need to add this to your configuration:

add_header Access-Control-Allow-Origin https://studio.opencast.org always;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers 'Origin,Content-Type,Accept,Authorization' always;

# Always respond with 200 to OPTIONS requests as browsers do not accept
# non-200 responses to CORS preflight requests.
if ($request_method = OPTIONS) {
    # On newer nginx versions, you can optionally send an
    # Access-Control-Max-Age header to reduce the number of requests a browser
    # will send.
    #add_header 'Access-Control-Max-Age' 1728000;
    return 200;
}

Self-hosted standalone version

As Studio is a client-only application, you can simply build it and then serve the resulting static files.

Configuration

See CONFIGURATION.md.

Opencast APIs used by Studio

Opencast Studio uses the following APIs:

  • /ingest/*
  • /info/me.json

You have to make sure that these APIs are accessible to the user using Studio. In Opencast ≥8.2, providing a user with ROLE_STUDIO should grant a user all necessary rights. In older versions, you might need to create such a role in the security configuration (e.g. mh_default_org.xml) of Opencast.

Build Instructions

To build Studio yourself, execute these commands:

% git clone [email protected]:elan-ev/opencast-studio.git
% cd opencast-studio
% npm install
% npm run build:release   # or npm run build:dev for development

This will generate static content you can serve via any web server in build/. That's it.

If you prefer to run a local development server directly, you can use this instead:

% npm start

Additional Build Options

By default, Studio expects to be deployed under the root path of a domain (e.g. https://studio.example.com/) and using a sub-path would not work (e.g. https://example.com/studio). This can be changed by using a number of build options. You can apply these options by exporting them as environment variable before starting the build process like this:

export OPTION=VALUE
npm run build:release
Option Example Description
PUBLIC_PATH /studio Path from which Studio will be served
SETTINGS_PATH /mysettings.toml Path from which to load the configuration (see CONFIGURATION.md for more information)
INCLUDE_LEGAL_NOTICES 1 Set to 1 to include legal notices and information about ELAN e.V., any other value or having this variable not set will not include them. Unless you are working for ELAN e.V. there is probably no reason for you to use this variable.

opencast-studio's People

Contributors

lukaskalbertodt avatar luniki avatar dependabot-preview[bot] avatar dependabot[bot] avatar lkiesow avatar narickmann avatar juliankniephoff avatar owi92 avatar badatos avatar arnei avatar miesgre avatar callmeanto avatar sivagurucse avatar dinuwan97 avatar hungapp avatar majosch avatar ppettit avatar sebastjanm avatar machen2 avatar ferishili avatar ypatios avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.