Coder Social home page Coder Social logo

ofxvideorecorder's Introduction

#ofxVideoRecorder ###a fast multi-threaded video recording extension using ffmpeg. Multi-threaded design allows your app to run at full speed while worker threads pipe video and/or audio data to an instance of ffmpeg. If both audio and video recording is enabled, A/V synchronization is maintained by dynamically adding or skipping frames of video when needed to match the pace of the incoming audio stream; This feature compensates for inconsistant incoming frame-rates (from a camera which adjusts shutter-speed in low light for example) and produces a stable output frame-rate with no synchronization problems.

ofxVideoRecorder relies on ffmpeg the cross-platform command line program for A/V encoding/decoding. You must have ffmpeg installed in either your system's path directories or in a custom location using the setFfmpegLocation() function (your data folder for example).

##Usage

  1. Setup the video recorder. Several setup functions exist from simple to advanced. The setup function will create audio and video pipe files if necessary, launch A/V worker threads, and the main ffmpeg encoding thread.
  2. Add frames and/or audio data.
    • Give the recorder ofPixels objects that match the size you set it up at.
    • Currently only supports RGB 8Bits/channel.
    • Currently only supports ofSoundStream audio streams. Support for recording audio produced by ofSoundPlayer or ofVideoPlayer is not in openFrameworks yet. To record these sounds you will need to use a microphone or audio cable to loop back to the sound card.
  3. Close the recorder. This closes the pipes and stops the worker threads, once all input pipes are closed, ffmpeg stops listening for new data and will also return.
  4. Goto step 1 to start a new video recording.
    • Should also support multiple output streams using multiple recorder objects. A new pair of pipes will be created for each object's output.

ofxvideorecorder's People

Contributors

alarrosa14 avatar armadillu avatar arturoc avatar jeffcrouse avatar jobleonard avatar nylki avatar rbeitra avatar smallfly avatar timscaffidi 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.