Coder Social home page Coder Social logo

ccr's Introduction

Real-Time Close Captions repository

Architecture

alt text

Deployment

  1. Build web pages static content: cd app && ./build.bash
  2. Build containers: docker-compose build
  3. Run dontainers: docker-compose up

Streaming a new channel

  1. Specify database url in ./admin/config.json
  2. Create a new channel (with id 'test1' and title 'Test Channel'):
./admin/ccr-channels-create -i test -i 'Test Channel'
  1. Install package dependencies
cd sender && npm i
  1. Start streaming:
./ccr-sender -C <channel_id> -e <ccextractor_path> -u <ccextractor_source> -D <ccr-reciever_url>
  • Using ccextractor mock that streams a single file
./ccr-sender -C test1 -e tests/ccextractor -u dummy_url:port  -D tcp://127.0.0.1:5000

ccr's People

Contributors

rkuchumov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ccr's Issues

Status Updates

Right now the only way to tell for sure if something has crashed in application is to connect to one of the servers and to check status of application’s processes.

The task is to obtain the state of CCExtractor (alive/dead, has binded to port or not) and the state of ZeroMQ connection for each channel. Then you have to store it in database and display it on the monitorng web page in real-time.

Demo website not working

I tried to visit the demo website at http://realtimedemo.ccextractor.org:8080/. All I got was an blank screen with an error message in the console.

index.js:245 Uncaught (in promise) Error: Cannot read property 'find' of undefined
    at _ (index.js:245)
    at r.<anonymous> (client.js:92)
    at r.onack (socket.js:311)
    at r.onpacket (socket.js:240)
    at r.<anonymous> (index.js:21)
    at r.emit (index.js:133)
    at r.ondecoded (manager.js:345)
    at a.<anonymous> (index.js:21)
    at a.r.emit (index.js:133)
    at a.add (index.js:241)```

Front-end framework

Web site page is implemented using React and UIKit framework. Since UIKit is plain CSS frontend framework it's not ported to React. The task is to fully replace it with Blueprint or another React-native framework (justify your choice!).

GSoC'20

Hello, I am Ridhish Jain, Web Developer, UG at IIT Dhanbad.
I found this project interesting and it was also a part of GSoC'19 ideas list.
I wanted to ask if this project can still be a part of GSoC'20??
If yes, I would love to contribute to it
If not, Is there any other way I can contribute to the organization as a web developer?

Channel Statistics

ccr-sender should also collect statistics metrics, including the following:

  • Number of captions lines
  • Size (in bytes) of transmitted objects
  • Memory and CPU usage (of ccextractor and ccr-sender)
  • suggest your own

These values should be averaged over small period of time and then displayed on a plot at web site in real-time.

Analyzing CC stream for obtaining its topic and keywords

One of Google Summer Of Code projects

Suppose you have a set of captions lines from a few minutes of newscast. When a person reads these captions he can immediately tell you which topic is being discussed, e.g. “it’s about US president election” or “it’s about a species of fish that can jump out of water ”.

We want you to do a research on how to summarize a set of given captions lines to tell a topic of them. For each method you should describe whether or not it can be applied on a stream of closed captions. Focus on advantages and disadvantages, accuracy, resources requirements (cpu, gpu, memory), implementation and maintenance difficulty, available implementations ... all in the context of closed captions.

Please, note that majority of methods you find are dedicated to document summarization, but closed captions are completely different from documents: they include dialogues, advertisements, songs lyrics and are poorly formatted (like sometimes there's no punctuation). So you should consider that in your research.

Then, when the right method is selected, you should implement it and integrate with CCR

Administration page

The only way to add, update or delete a channel is through database. Which is not convenient at all.

The task is to create a web page that would allow manage channels and captions thought API server. This page must be implemented using existing stack of technologies.

Improve message passing queue

There are some problems with the current implementation:

  1. It doesn’t support authentication. For example, if the firewall is not enabled, then anyone can connect to receiver's port and start sending captions, which is obviously not desirable.
  2. It doesn’t support a cluster of receivers. So if we have multiple receiver servers the admin will have to manually specify their addresses or to they'll have to use an external load balancer, which is not the best solution.

What's required to be done is either to implement these features over ZeroMQ (the required libraries are most likely already implemented) or to replace it with another, more advanced, yet as fast, queue engine.

Improve server infrastructure with Kubernetes

The task is to update Kubernetes deployment scripts (which you can find somewhere in commit history) to work with the latest ccr version and to improve them by adding data volumes, private networks, high availability and autoscaling.

Add preloading spinners to cards

The cards are initially empty when the subtitles are being fetched. This jumbles the layout and takes a bit of time for the website to take its final shape. Adding a preloader inside the cards may turn out to be helpful.

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.