GithubHelp home page GithubHelp logo

seitenbau / sbideo Goto Github PK

View Code? Open in Web Editor NEW
15.0 10.0 6.0 9.52 MB

A simple video archive including video transcoding

License: MIT License

JavaScript 79.84% HTML 2.52% CSS 16.76% Dockerfile 0.88%
video-transcoding ffmpeg video-archive video-streaming

sbideo's Introduction

SBideo Build Status Dependencies

DEMO: https://seitenbau.github.io/SBideo/

A very simplistic video archive including video transcoding and following features:

  • web interface for listing all videos in a flexible multi-level folder structure
  • video player
  • editable metadata for videos and folders e.g. title, description, speaker, tags
  • ultra fast client-side fuzzy search through video metadata
  • async video transcoding from any ffmpeg supported format to mp4
  • simple file system based data structure, no database required
  • deep links for every video, including exact start time
  • integrated web- and pseudo-streaming server (express)
  • very lightweight client-side code: total 28kb JS + 6kb CSS gzipped (based on preact-cli)

Basic Usage

The easiest way to run SBideo is using Docker, there are ready-built containers available at Docker Hub.

Frontend Container

Just pull the frontend container and mount it to your local data folder. Look at the the data folder in this repo as a reference for your directory layout.

docker pull seitenbau/sbideo
docker run -it -d -P -p 3000:3000 --mount type=bind,source=/data,target=/data sbideo:latest

Now the frontend is available at http://localhost:3000/

Transcoding Container

The SBideo frontend is only able to handle mp4 video, as it's the best format for showing videos on the web. To convert other video files to mp4, SBideo comes with a transcoding option which handles all sorts of video formats. All the video files you put in your /incoming folder will be automatically transcoded and transferred to the /data folder in this example:

docker pull seitenbau/sbideo-transcoder
docker run -it -d -P --mount type=bind,source=/incoming,target=/incoming --mount type=bind,source=/data,target=/data sbideo-transcoder:latest

Now every time you add video files into the folder incoming, the transcoding will start automatically. After transcoding is done, the new videos will be visible in the frontend.

Security

SBideo is kept very simple. Therefore, it has no built-in permission management etc (see #9). Everyone who is able to access the frontend is allowed to edit the video meta data. In case you want to restrict editing rights, you may want to simple restrict POST requests to the server via a reverse proxy.

Development

SBideo is based on preact-cli; for detailed explanation on how things work, checkout the CLI Readme.

Basic CLI Commands

# install dependencies
yarn install

# serve with hot reload at localhost:8080
yarn dev

# build for production with minification
yarn build

# test the production build locally
yarn serve

# run tests with jest and preact-render-spy
yarn test

# code linting
yarn lint

Migrate script

In case you want to migrate an old file based video archive, check the branch migrateScript; maybe it helps.

Credits

This project was initially created at SEITENBAU Hackathon 2017.

Demo videos: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

sbideo's People

Contributors

choessle avatar drecom-jenkins avatar edmund-wagner avatar greenkeeper[bot] avatar hamsterbacke23 avatar jschroeter avatar kocher avatar kompasua avatar nithom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sbideo's Issues

An in-range update of react is breaking the build 🚨

There have been updates to the react monorepo:

    • The devDependency react was updated from 16.6.1 to 16.6.2.
  • The devDependency react-dom was updated from 16.6.1 to 16.6.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the react group definition.

react is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Feature Request: Number of views

As operator of the video platform or as creator of a video

I'd like to know how often a single video and in total all videos are viewed by users

to get a feel for how often the platform is being used and which content is being used more often.

Editmode: Syncing the data does not update tags

On edit, when fetching the metadata from the server and the fetched data is different, an alert is displayed that the data was synced from the server, however the tags in edit mode do currently not update to the fetched state .

Continue watching video at last position

  • When returning to sbideo, continue watching the video where you left off is really useful, and probably easy to implement
  • Continuing the video at the last position should only happen, when the user has watched a significant part of the video and probably wants to continue at the last position and not from the start

An in-range update of nodemon is breaking the build 🚨

The devDependency nodemon was updated from 1.18.5 to 1.18.6.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

nodemon is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v1.18.6

1.18.6 (2018-11-05)

Bug Fixes

Commits

The new version differs by 1 commits.

  • 521eb1e fix: restart on change for non-default signals (#1409) (#1430)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Edit meta data via UI

Currently the video meta data can only be edited manually by editing the JSON files in the file system. It would be helpful to add an UI for that which allows to edit

  • video title
  • video description
  • speakers
  • tags

To keep it simple I would not support the deletion of videos through the UI. Moving a video into folders could be supported later on (#10).

The most important question: do we, and if yes: how do we handle permissions?
Currently I see these options in order of my favorites:

1. don't have permissions at all: everyone with access to the frontend is allowed to edit meta data
2. handle permissions via reverse proxy, e.g. define an URL like /edit which is password protected by the proxy. This makes it very simple and flexible, e.g. LDAP modules could be used.
3. implement LDAP support in the application

One edit button -> display input fields for all meta fields + if possible auto-completion
One save button
One cancel button

fix column position

Currently the columns jumb after using the search function.
It would be more usable, if the columns stays on same place after searching for content.

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

chokidar osx only

Hey

mir ist aufgefallen das wir chokidar nutzen.
as Module ist leider nur für OSX. Unter Linux läuft es nicht.

An in-range update of preact is breaking the build 🚨

The devDependency preact was updated from 8.3.1 to 8.4.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

preact is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for 8.4.0

The cat is out of the bag 🙌 We finally revealed on what we have in store
for the next major version of preact which will be called Preact X 🎉 To give
you a sneak peak of what will be included check out this talk over at this.javascript
video, slides.
It's hard to make an estimate right now on when it will be released, but rest
assured we are nearly done and are working on upgrading the ecosystem
(cli, router,...) to ensure a smooth release.

That said we very excited about recent community contributions. This release
contains some awesome performance enhancements brought to you by @lowaa and
@rpetrich. On top of that there are some minor bug fixes and a lots of
improvements to our typings.

Thank you so much for everyone involved 👍

TypeScript Improvements!

Flow improvements!

README Improvements!

Commits

The new version differs by 79 commits ahead by 79, behind by 3.

  • 3a35a89 8.4.0
  • 86c7e5a udpate deps
  • 19f77d3 Merge pull request #1251 from garybernhardt/npm_installable_from_git
  • ca2cb6c Merge branch 'master' into npm_installable_from_git
  • 95075f4 Added "onInvalid" form event in TS (#1221)
  • 58e1927 Build properly when installing from git
  • 377e31b [types] Add more type tests for h function (#1246)
  • 3bbcdcc Merge pull request #1214 from garybernhardt/reverse_h_type_definition_order
  • 0aece17 Merge branch 'master' into reverse_h_type_definition_order
  • b243a5e Merge pull request #1249 from scurker/typescript/any-component
  • 42c92b6 fix AnyComponent with ComponentConstructor
  • cd807ce Merge pull request #1244 from JiLiZART/patch-1
  • 47cd310 Merge branch 'master' into patch-1
  • 7dda9a2 Merge pull request #1248 from wojtczal/fix-inconsistent-key-property-type
  • f3d7a71 use Key type for Attributes interface key property

There are 79 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

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.