Giter VIP home page Giter VIP logo

giuliocarot0 / screenreclib Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 2.0 1.44 MB

Screenreclib is a multiplatform library which allows to record your desktop and capture some audio at the same time. The library wraps FFMPEG functionalities and adapts them for screen capturing purposes.

CMake 0.28% C++ 3.57% HTML 64.02% CSS 1.68% JavaScript 2.40% Makefile 0.02% TeX 20.82% PostScript 7.21%
screen-capture screencapturer cpp cpp17 decoder encoder transcoder ffmpeg-wrapper ffmpeg macos windo cmake

screenreclib's Introduction

screenreclib c++ library

c++ cmake flawfinder

Screenreclib is a multiplatform library which allows to record your desktop and capture some audio at the same time. Users can exploit its simple and intuitive interfaces. The library wraps FFMPEG functionalities and adapts them for screen capturing purposes.

Requirements

The screenreclib itself has only few dependencies which can be easily installed on Linux/macOS/Windows

Dependency Version
cmake >= 3.20
ffmpeg >= 4.4.x

Install ffmpeg

For Linux users the ffmpeg can be installed by using official repositories. The following example refers to debian-based OSs which use atp as packet manager

sudo apt-get update && sudo apt-get -y install cmake libsdl2-dev libavcodec-dev libavfilter-dev libpostproc-dev libavformat-dev libavutil-dev  libswresample-dev libswscale-dev libavdevice-dev

For Windows users, ffmpeg can be installed by downloading the precompiled library here. The cmake file has to be changed according to your installation path. See the CmakeList file from the official repo to understand how to link ffmpeg.

macOS users can install ffmpeg from their terminal using brew. Please ensure that both brew and the XCode Command Line Tools are correctly installed on your mac.

brew install cmake ffmpeg

Building the library

The installation procedure is almost trivial and it is based on few steps.

Clone the repository from github by prompting the following command

mkdir screenreclib
cd screenreclib
git clone www.github.com/giuliocarot0/screenreclib

Ensure that the macros that define the devices are set correctly based on your configuration a and use the CmakeList.txt in the root directory to build the library.

cd screenreclib
cmake . 

The cmake procedure will output a directory called cmake-build-debug in which the builded library will be stored

Modules

Examples

The library comes with some examples. Each example has a CMakeLists.txt file that allows to build it by using cmake. These CMakeLists.txt files are written to build both the entire lib and the example app. So if you want to take a try there is no need for prebuilding the lib.

QtRecorder

The QtRecorder is a Qt app which requires Qt version >= 5 to work well. Before building it please ensure to write the exact QtCmake path in the relative CMakeLists.txt. To use this example

cd screenreclib\example
cmake QtRecorder

SimpleMain

SimpleMain is a simple console applications which executes a recording routing automatically.

cd screenreclib\example
cmake SimpleMain

screenreclib's People

Contributors

aleluc98 avatar giuliocarot0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

screenreclib's Issues

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.