Giter Site home page Giter Site logo

pombredanne / green-recorder Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dvershinin/green-recorder

0.0 1.0 0.0 942 KB

A simple screen recorder for Linux desktop. Supports Wayland & Xorg

License: GNU General Public License v3.0

Python 96.15% Makefile 0.58% Shell 3.27%

green-recorder's Introduction

Green Recorder

Green Recorder

About

A simple desktop recorder for Linux systems. Built using Python, GTK+ 3 and ffmpeg. It supports recording audio and video on almost all Linux interfaces. Also, Green Recorder is the first desktop program to support Wayland display server on GNOME session.

The following formats are currently supported: mkv, avi, mp4, wmv, gif and nut (And only MP4 and WebM for Wayland's GNOME session). You can stop the recording process easily by right-clicking the icon and choosing "Stop Record". Or middle-clicking the recording icon in the notifications area (but doesn't work on all interfaces).

You can choose the audio input source you want from the list. You can also set the default values you want by simply changing them in the interface, and the program will save them for you for the next time you open it.

How it works?

It uses the D-Bus API to connect to the built-in screencasting tool in GNOME Shell. It uses this to record video. To record audio, it launches an instance of ffmpeg in the background. After the recording is finished, it merges the two files into the WebM file.

For Xorg, it uses ffmpeg only for both audio and video.

By default, On Wayland only, Green Recorder uses the V8 encoder instead of the default V9 encoder in GNOME Shell because of the CPU & RAM consumption issue with V9. Which - now - should also give you better performance. On Xorg, each format uses its own default encoder.

Also, for GIF format, Green Recorder first records the required video as a raw video. And then it generated the GIF image from the raw video. In this way, you'll get an optimized GIF image size which is at least 10x better than the normal ffmpeg recording.

Run a command after recording

You can run a command after recording. Put $1 in place where you want to pass the video's filename to the command, e.g. /path/to/command $1.

Localization

Green Recorder supports localization. If you want to translate the program into your language, fork the repository on GitHub and create a new file under "po" folder with your language ISO code (like fr.po, de.po, cs.po..). And translate the strings from there.

Alternatively, you can open the green-recorder.pot file using programs like PoEdit and start translating.

Download

CentOS/RHEL 8

=== "RHEL 8"

```bash
# On RHEL 8 it is required to enable the `codeready-builder-for-rhel-8-*-rpms` repository since EPEL 
# packages may depend on packages from it:
ARCH=$( /bin/arch )
subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"
# Generally required repo:
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# For ffmpeg dependency
dnf -y install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# For the Green Recorder package
dnf -y install https://extras.getpagespeed.com/release-latest.rpm    
dnf -y install green-recorder
```

=== "CentOS 8 and other RHEL clones"

```bash
# On CentOS 8 it is required to enable the powertools repository since EPEL packages may depend on 
# packages from it:
dnf -y install dnf-plugins-core
dnf config-manager --set-enabled powertools
# or, on older CentOS 8 releases:
dnf config-manager --set-enabled PowerTools
```

After that, proceed to install Green Recorder:

# Generally required repo:
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# For ffmpeg dependency
dnf -y install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# For the Green Recorder package
dnf -y install https://extras.getpagespeed.com/release-latest.rpm    
dnf -y install green-recorder

Ubuntu 18.04/18.10/19.04 or Linux Mint 19/19.1

Make sure you have enabled the multiverse and universe repositories before trying to install the program from the PPA (to be able to download the dependencies). You can install Green Recorder from the following PPA:

sudo add-apt-repository ppa:fossproject/ppa
sudo apt update
sudo apt install green-recorder

Arch Linux

You can install Green recorder using your AUR helper:

yaourt -S green-recorder-git

Other Distributions

The program supports Python 2.7 and Python >= 3.6.

It is highly discouraged to install using source code. Use packages instead, where available.

The source code is available to download via: ZIP archive. You can simply download it and install the dependencies on your distribution:

  • For Debian systems: gir1.2-appindicator3, gawk, python-gobject, python-urllib3, x11-utils, ffmpeg, pydbus, pulseaudio, xdg-open (or xdg-utils), python-configparser, imagemagick
  • For RPM based systems: python3 python3-pip python3-gobject-base python3-pydbus gettext libappindicator-gtk3 ffmpeg

Do not run pip as root.

To install Green Recorder for current user, run without sudo:

pip3 install --user .

License

The program is released under GPL 3.

green-recorder's People

Contributors

chamfay avatar dvershinin avatar fitojb avatar gort818 avatar lexruee avatar megavenik avatar mgedmin avatar mhsabbagh avatar moceap avatar orschiro avatar rafael-neri avatar sharkezz avatar top-sekret avatar unixfox avatar vistaus avatar

Watchers

 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.