Giter Club home page Giter Club logo

jw-play's Introduction

A prototype player meant for remote meetings. Made with Electron JS.

Development

Install ffmpeg if you you want to see vídeo thumbnails

npm install
npm dev

Compile

npm run package # check the out file

Running tests

npm test

Linting

./node_modules/.bin/prettier --write src test

Screenshots

image

image

Installation

  • Find the installation files in the latest release

jw-play's People

Contributors

dependabot[bot] avatar joelmon avatar mjacobus avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

jw-play's Issues

Sharing Method - Virtual Camera

By any chance, will the prototype have virtual camera capability using v4l2loopback? I love how I can share photos and video via OBS using v4l2loopback but OBS can be a bit wonky when you have a lot of videos (ASL congregation) and pictures during a talk.

Just curious,
Joel M. 😃

项目引用了tar等627个开源组件,存在6个漏洞,建议升级

大佬,看你这个项目调用了tar等627个开源组件,存在6个安全漏洞,建议你升级下。

漏洞标题:Npm Node-tar 后置链接漏洞
漏洞编号:CVE-2021-37712
漏洞描述:
node-tar是一款用于文件压缩/解压缩的软件包。
Npm Node-tar 中存在后置链接漏洞,该漏洞源于产品未对特殊字符做有效验证。攻击者可通过该漏洞在其他路径创建恶意文件。
影响范围:[6.0.0, 6.1.9)
最小修复版本:6.1.9
引入路径:
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]
[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>@electron-forge/[email protected]>[email protected]>[email protected]

另外5个漏洞 ,信息有点多我就不贴了,你自己看下完整报告:https://www.mfsec.cn/jr?p=a4191d
你对这个issues有任何疑问可以回复我,我能看见哈。

Unable to play .m4v videos

The American Sign Language Bible scripture videos are in Apple's m4v video format. Currently jw-play doesn't recognizes m4v as a video file so they can not be loaded into the player.

Add keyboard shortcuts

  • F for toggling full screen
  • Ctr-NUM to send media screen to display NUM
  • ? to add files

Using Virtual Cameras for Displaying Photos and Video

Virtual Cameras

Being able to use a virtual camera for sharing video or images in virtual congregational meetings is beneficial in these ways:

  • Pictures and videos can be shown during talks seamlessly
    • No flipping back and forth from shared screen to webcam
    • No chance of accidentally sliding something into view while sharing desktop
    • Looks more professorial
  • Picture in Picture effects can be accomplished by layering video/photos over each other.
    • Pictures can be shown in the corner
    • Text can be displayed with an alpha mask
  • Hotkeys can be used to display various items quickly
    • Key 1: to play the Watchtower opening scripture
    • Key 2: to show a picture
    • Key 3: to play or show a scripture on screen
    • Key Ctr+b: for blackout screen
    • Key 0: return video feed to speaker's webcam
  • Can use websockets to control what is shown on the screen.
    • Control what is shown on screen via a tablet, phone, or another computer

OBS does all these things and more but it's overkill and becomes unwieldy with large amounts of photos and videos as used in Sign Language congregations. With so many options and capabilities, it's confusing and hard to use for many.

Virtual Cameras in Linux

Accessing real-time camera features under Linux can be done via the V4L2, video for Linux, driver. The V4L2 driver provides a standard API for working with firmware-based cameras and webcams. More information about the V4L2 Linux driver can be found at Kernel.org: Part I - Video for Linux API.

Accessing V4L2 can be done via a Ruby OpenCV wrapper called ruby-opencv but might be simpler by taking advantage of the V4L2Loopback kernel module.

V4L2Loopback

The V4L2Loopback is a Linux kernel module that creates V4L2, loopback devices. In other words, it creates a virtual V4L2 camera that can be used by any programs capable of writing to a v4l2 device to output video or images to any application that can be read by any v4l2-capable application, e.g. Zoom.

This is the method that OBS uses to output a video feed to a virtual webcam.
2021-05-18_19-48

The V4L2Loopback's Github repository lists two feeders as examples that can be used to feed a video stream to v4l2:

  • GStreamer-1.0: using the "v4l2sink" element
  • Gem(>=0.93) using the "recordV4L2" plugin

ffmpeg can also be used.

Virtual Cameras on other systems

I haven't done too much research on other systems but ffmpeg can be used on Linux, macOS, and Windows. With ffmpeg you give it a source or device and you can stream it to another source or device with the format needed.

Implementation

A possible quick and extremely hacky way to implement not taking into account the live video feed of the speaker:

  • Check if V4L2Loopback is loaded modinfo v4l2loopback
    • Prompt user if V4L2Loopback is not loaded.
      • To install via apt under Ubuntu flavors: $ sudo apt install v4l2loopback-dkms

      • To load installed module: $ sudo modprobe v4l2loopback

  • Auto detect all video devices
    • Check dev/v4l/by-id for the index of the devices.
    • Let user input
  • Confirm ffmpeg is installed on the system
    • Output image or video with ffmpeg $ ffmpeg -re -i <video-file.mp4> -f v4l2 /dev/video2
  • Switching to the speaker (webcam)
    • Outputting webcam video: $ ffmpeg -f v4l2 -i /dev/video0 -f v4l2 /dev/video2. video0 being the webcam and video2 being the loopback.

Resources

Examples

Using ffmpeg and v4l2loopback

An example of using ffmpeg and v4l2loopback to stream a video to a virtual cam

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.