Giter Site home page Giter Site logo

easyscreencast / easyscreencast Goto Github PK

View Code? Open in Web Editor NEW
393.0 393.0 79.0 1.83 MB

This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.

License: GNU General Public License v3.0

JavaScript 97.57% CSS 0.38% Makefile 2.05%

easyscreencast's Introduction

EasyScreenCast

GitHub Workflow Status

EasyScreenCast simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording. Copyright (C) 2013-16 Borsato Ivano.


Note: Since Gnome Shell 42 a new built-in screenshot/screencast UI is available, which might already be all you need. Just run it via the default shortcut Ctlr+Alt+Shift+R.

This extension provides more options to configure the screencast:

  • include audio channel
  • include video stream from webcam
  • various quality settings and formats for the resulting video

This extension is a simple ad-hoc solution for recording screencasts. For more sophisticated screencasts, I'd recommend OBS Studio.


Requirements

  • Gnome Shell 45 (EasyScreenCast 1.8.0; EasyScreenCast 1.7.1: Gnome Shell 3.38 - 44)
  • Gstreamer 1.x [ common function/webcam support ]
  • gst plugins ugly [ x264 support ]
  • gst plugins base [ common function/theora support ]
  • gst plugins good [ mp4/mkv/webm/vp8/vp9 support ]

License Info

EasyScreenCast is free software distributed under the GNU GPL. All files are under GPL v3. Read COPYING for more information about license.

How to install

There are several methods:

  1. From github releases. Just go to https://github.com/EasyScreenCast/EasyScreenCast/releases/latest and download the latest zip file. Then install it (adjust the file name accordingly):

    gnome-extensions install --force EasyScreenCast_1.5.0_42.zip
    

    And logout/login again to activate the extension.

  2. From gnome extension site, just go on this page and click/touch on the button ON, that's all.

  3. By installing the Debian/Ubuntu package "gnome-shell-extension-easyscreencast":

    sudo apt install gnome-shell-extension-easyscreencast
    
  4. From github repo, if you want the most up-to-date version, just do these simple steps

    git clone https://github.com/EasyScreenCast/EasyScreenCast.git
    cd EasyScreenCast
    make
    make install
    

    Note: You'll need to install the following dev dependencies once:

    sudo apt install gettext jq intltool
    

How to test changes

You can run a new session to test changes to the installed extension:

dbus-run-session -- gnome-shell --nested

How to view the logs

You must enable the verbose logs in options window and after that you can find the logs by typing this on terminal:

journalctl --since=today --no-pager --output=cat | grep ESC
journalctl /usr/bin/gnome-shell --since=today --no-pager --output=cat

to open the option windows from terminal try that on terminal:

gnome-extensions prefs [email protected]

Translation

If you want to help with translations, just follow these simple step:

1 - Create a new folders for the translations(if NOT exist), where $lang is a code language [https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html#Usual-Language-Codes]

mkdir -p locale/$lang/LC_MESSAGES

2 - Translate the string with the program Poedit by using a .pot files (locale/messages.pot)

3 - Save these files in the same directory of .pot files, use the code language for the name of them (locale/$lang.po)

4 - Convert in binary these .po files, where $lang is a code language, with that command:

msgfmt locale/$lang.po -o locale/$lang/LC_MESSAGES/[email protected]

Converting to GIF

There are a wide variety of video editors that should be able to convert the screencasts to GIFs. An easy way to convert a file using the command line is:

ffmpeg -i _filepath -pix_fmt rgb24 _dirpath/_filename.gif

For more information see for example:

Test matrix

Distribution / gnome-shell ESC Version Installation Screen Recording +Video Recording +Audio Recording
Gnome OS (gnome-shell 46) 1.9.0 ? ?
Gnome OS (gnome-shell 45) 1.8.0
Debian 11 Bullseye (gnome-shell 3.38) 1.7.0
Ubuntu 22.04 LTS (gnome-shell 42.2) 1.7.0
Debian Experimental (gnome-shell 43) 1.7.0

Note: Only wayland sessions, always a fresh install of the linux distribution. Screen cast was the whole screen. Quality setting: FPS 30, VP8, webm container.

X11 session is not tested.

easyscreencast's People

Contributors

abellera avatar adangel avatar amereyeu avatar cfoch avatar cubells avatar d2school avatar da2x avatar dependabot[bot] avatar efernandesng avatar elijahlynn avatar epozuelo avatar frnogueira avatar frol avatar ghisvail avatar ian2020 avatar joshkeegan avatar lcarva avatar lehien avatar maboiteaspam avatar meghprkh avatar moruch4nn avatar mprahl avatar noderat avatar prahal avatar raphaelrochet avatar rffontenelle avatar samueloph avatar somethinggonewrong avatar tobias47n9e avatar zirrald avatar

Stargazers

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

Watchers

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

easyscreencast's Issues

Unable to install/upgrade from extensions.gnome.org

When I tried to upgrade EasyScreenCast from https://extensions.gnome.org/extension/690/easyscreencast, after the prompt requiring confirmation to download and install the extension, the on/off button switched to off. No way to turn it on again.

I use a Gnome Shell version 3.16.3-1 (Debian Testing).
Here is what I saw on the session log (there is nothing more):

Aug 31 15:41:04 *** gnome-session[7470]: Archive:  /tmp/7AJ23X.shell-extension.zip
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/images/icon_defaultSel.svg
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/ru.po
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/prefs.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/images/icon_recording.svg
Aug 31 15:41:04 *** gnome-session[7470]: creating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/fr/
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/it.po
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/images/icon_default.svg
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/ru/LC_MESSAGES/[email protected]
Aug 31 15:41:04 *** gnome-session[7470]: creating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/fr/LC_MESSAGES/
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/schemas/gschemas.compiled
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/it/LC_MESSAGES/[email protected]
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/EasyScreenCast.gtkbuilder
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/utilrecorder.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/COPYING
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/utilaudio.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/images/icon_recordingSel.svg
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/timer.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/fr.po
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/stylesheet.css
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/convenience.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/selection.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/extension.js
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/images/icon_promo.jpg
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/fr/LC_MESSAGES/[email protected]
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/schemas/org.gnome.shell.extensions.easyscreencast.gschema.xml
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/locale/messages.pot
Aug 31 15:41:04 *** gnome-session[7470]: inflating: /home/***/.local/share/gnome-shell/extensions/[email protected]/README.md

Here is what I saw afterwards in /home/***/.local/share/gnome-shell/extensions (all those extensions are up to date, by the way):

However, I’m able to install it manually, unarchiving the downloaded *.ZIP and moving the extracted folder by myself.

With dual displays, "select specific window" throws an error

This is my desktop (dual screen, different sizes):

desktop

If I start EasyScreenCast and pick the nautilus window with "select specific window", the recording does not start and I see an ERROR RECORDER as a notification. The log says:

Jan 06 12:29:46 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F true
Jan 06 12:29:47 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F false
Jan 06 12:29:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start recording
Jan 06 12:29:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > type of selection of the area to record: 3
Jan 06 12:29:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > window selection init
Jan 06 12:29:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection init
Jan 06 12:29:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection stop
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > selection x:2226 y:282 height:486 width:-860
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > instant recording called
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start video recording
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > path/file template : Screencast_%d_%t.webm
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > ERROR(screencast execute) - GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Invalid params
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > stop video recording
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > record ERROR
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:29:49 medusa gnome-session[3996]: ** (gnome-shell:4127): CRITICAL **: shell_recorder_close: assertion 'recorder->state != RECORDER_STATE_CLOSED' failed
Jan 06 12:29:49 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > screencast stop - true

This seems suspicious in the log:

width:-860

If I instead choose "select specific area" and select an area around the nautilus window, it seems to work correctly.
The log says:

Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F true
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F false
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start recording
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > type of selection of the area to record: 2
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > area selection init
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection init
Jan 06 12:50:42 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection stop
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > selection x:2276 y:294 height:654 width:927
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > instant recording called
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start video recording
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > path/file template : Screencast_%d_%t.webm
Jan 06 12:50:48 medusa gnome-session[3996]: Recording to /home/kparal/Screencast_6.1.2015_12:50:48.webm
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > screencast execute - true - /home/kparal/Screencast_6.1.2015_12:50:48.webm
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > record OK
Jan 06 12:50:48 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F undefined
Jan 06 12:50:50 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F true
Jan 06 12:50:51 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F false
Jan 06 12:50:51 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > stop recording
Jan 06 12:50:51 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > stop video recording
Jan 06 12:50:51 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:50:51 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > screencast stop - true

If I move the nautilus window here:
nautilus-new-loc
and then pick its window using "select specific window", this gets recorded:
result
As you can see, there are borders around the window on 3 sides and it's cropped from the 4th side (right).
The log says:

Jan 06 12:40:05 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F true
Jan 06 12:40:06 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F false
Jan 06 12:40:07 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start recording
Jan 06 12:40:07 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > type of selection of the area to record: 3
Jan 06 12:40:07 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > window selection init
Jan 06 12:40:07 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection init
Jan 06 12:40:07 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > capture selection stop
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > selection x:1372 y:376 height:692 width:548
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > instant recording called
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > start video recording
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > path/file template : Screencast_%d_%t.webm
Jan 06 12:40:08 medusa gnome-session[3996]: Recording to /home/kparal/Screencast_6.1.2015_12:40:08.webm
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > screencast execute - true - /home/kparal/Screencast_6.1.2015_12:40:08.webm
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > record OK
Jan 06 12:40:08 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F undefined
Jan 06 12:40:12 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F true
Jan 06 12:40:12 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A true -F false
Jan 06 12:40:13 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > stop recording
Jan 06 12:40:13 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > stop video recording
Jan 06 12:40:13 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > refresh indicator -A false -F undefined
Jan 06 12:40:13 medusa gnome-session[3996]: Gjs-Message: JS LOG: ESC > screencast stop - true

And the width is needed too small in the log: width:548.

It seems that something is computing the coordinates incorrectly.

Mouse cursor not moving

When the 'Draw cursor on screencast' option is on the cursor doesn't move around the screen.
Can be seen in this quick video.

Cannot disable audio recording

The "Record audio" slider switch in the menu does nothing, whether it is on or off, it always records the audio on my system. Even after reloading gnome-shell between tries, or trying to flip the switch during recording (instead of inbetween tries).

Integrate webcam video

Following #4 it would be great to support not only sound but also the web cam, like silverbackapp.com - integrating the webcam video into the main videorecording, with adjustable position (default in the right-bottom corner) This should be possible with gstreamer :)

Showing the recording area rectangle breaks the mouse clicks

If I enable the option "Show area screencast during recording" (by the way it would be better to name this option "Show a border around the area being recorded"), I am not able to click (or drag) as long as the screencast recording is going on; I can't even stop the recording, unless I Alt+F2 & "r" to reload gnome-shell 3.16.

"Input source audio" setting doesn't match the names of input devices on my system

On my system I have a bunch of devices (motherboard's analog in/out, USB microphone, and graphic card's HDMI output), most of which are disabled in pavucontrol so that I can have only the USB microphone, and the analog output from the motherboard.

  • EasyScreenCast's "Input source Audio" setting lists my current devices by their type, instead of their true name. So in my case it says "analog-output-lineout" and "analog-input-mic" instead of "Monitor of Internal surround 5.1 analogic audio" and "AK5370 I/F A/D Converter" (that's how my microphone calls itself)...
  • There should probably also be an option (the default) in the combobox called "Default device (name_of_device)"

short-key function wrong for 3.16?

I was still able to access extension settings from a browser (and Tweak Tool), so I clicked “Restore Default Option” and tried various settings. I was able to reproduce the error with keyboard shortcut enabled and verbose debug on.

Output from:

journalctl /usr/bin/gnome-session -b | grep ‘ESC|JS’

Returns:
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > initExtension called
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > enableExtension called
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > create indicator
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > mixer _init
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > mixer create
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > check pulseaudio lib presence: true
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > init recorder
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > mixer _init
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > mixer exist -> [object instance proxy GIName:Gvc.MixerControl jsobj@0x7fb8c7c0ad60 native@0x22f4e90] state -> 2
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: ESC > enable keybinding
Jun 09 01:29:27 fargo gnome-session[460]: Gjs-Message: JS LOG: Extension “[email protected]” had error: TypeError: Shell.KeyBindingMode is undefined

Corrupt video recordings according with mpv

I'm trying EasyScreenCast 0.9.7.1-2 on GNOME 3.16.2. Most video recordings are corrupt according to the mpv video player:

$ mpv "Screencast_2015-09-28_14:24:00.webm"
Playing: Screencast_2015-09-28_14:24:00.webm
[mkv] Expected element 0x1043a770 not found
[mkv] Expected element 0x1254c367 not found
 (+) Video --vid=1 (*) 'Video' (vp9)
VO: [xv] 1280x800 yuv420p
V: 00:00:05 (75%)
[mkv] Corrupt file detected. Trying to resync starting from position 763471...
V: 00:00:05 (83%)
[mkv] Corrupt file detected. Trying to resync starting from position 769925...
V: 00:00:06 (98%)
[mkv] Corrupt file detected. Trying to resync starting from position 776695...
V: 00:00:06 (96%)


Exiting... (End of file)

It seems I can reproduce this problem only when randomly shaking windows on screen and relying on special effects from GNOME. If I record an idle screen the resulting file is not corrupt. My computer is a laptop from 2008, so perhaps it is simply not fast enough. I didn't change the default gstreamer pipeline but perhaps there are some options I can use to allow my computer record screencasts. Frankly I don't even think this is a problem with EasyScreenCast only, because I obtain corrupt videos with the default GNOME recording application, too.

Draw Border Around Area for "Specific Screen Area" Option

It would be great for the Specific Screen Area option if Easy Screencast could either optionally or always draw a simple border, on screen, in an overlay while you are screencasting. This way you can always know where to place windows, etc. for the screencast.
Thanks for a great and useful addon!

Replace the custom big file chooser widget by a small GTK FileChooserButton

In the settings, there is a huge area eaten by a full-fledged file chooser widget.
Instead, it would be better to use https://developer.gnome.org/gtk3/stable/GtkFileChooserButton.html
and to specify the "SELECT_FOLDER" action ("GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER") when instantiating it with https://developer.gnome.org/gtk3/stable/GtkFileChooser.html#GtkFileChooserAction

On startup, you could then set/restore the previously saved folder onto that widget so that it correctly indicates which folder the person has chosen.

Update for GNOME 3.18

Hello,

GNOME 3.18 has been released and many people already use it. Could you please update your extension at extensions.gnome.org to support this new GNOME version?

Thanks!

Locking Screen sometimes dock and window list will remain in view

Sometimes when I lock the screen, the dock and window list will be in view.
I am running Gnome 3.14 on EL7.2 Beta with EasyScreenCast 0.97.

(gnome-shell:25649): Gjs-WARNING **: JS ERROR: Exception in callback for signal: updated: Error: Type name EasyScreenCastSettingsWidget is already registered
GObjectMeta<._construct@resource:///org/gnome/gjs/modules/overrides/GObject.js:125
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204
@/usr/share/gnome-shell/extensions/[email protected]/prefs.js:329
@/usr/share/gnome-shell/extensions/[email protected]/convenience.js:34
@/usr/share/gnome-shell/extensions/[email protected]/extension.js:36
initExtension@resource:///org/gnome/shell/ui/extensionSystem.js:221
enableExtension@resource:///org/gnome/shell/ui/extensionSystem.js:110
enableAllExtensions/<@resource:///org/gnome/shell/ui/extensionSystem.js:345
enableAllExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:344
_sessionUpdated@resource:///org/gnome/shell/ui/extensionSystem.js:372
_emit@resource:///org/gnome/gjs/modules/signals.js:124
SessionMode<._sync@resource:///org/gnome/shell/ui/sessionMode.js:205
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
SessionMode<.popMode@resource:///org/gnome/shell/ui/sessionMode.js:174
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<._continueDeactivate@resource:///org/gnome/shell/ui/screenShield.js:1218
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<.deactivate/<@resource:///org/gnome/shell/ui/screenShield.js:1203
AuthPrompt<.finish@resource:///org/gnome/shell/gdm/authPrompt.js:494
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
UnlockDialog<.finish@resource:///org/gnome/shell/ui/unlockDialog.js:147
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<.deactivate@resource:///org/gnome/shell/ui/screenShield.js:1202
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
ScreenShield<._init/</<@resource:///org/gnome/shell/ui/screenShield.js:564
_emit@resource:///org/gnome/gjs/modules/signals.js:124
_convertToNativeSignal@resource:///org/gnome/gjs/modules/overrides/Gio.js:129

Breaking theme colors

Can you please remove the color at least?
It breaks on light popovers and the menu isn't visible. themes handle this fine anyway.

.RecordAction-label {
font-size: 15px;
font-weight: bold;
color: #ffffff;
}

Simple quality slider setting

When not using a custom gstreamer pipeline, it would be nice to have some sort of slider, from 0 to 100%, to easily set the "quality" of the recorded video, with 100% being nearly lossless (so you can post-process in video editing software etc.). It seems by default it uses min_quantizer=13 and max_quantizer=13, but I'm still able to see compression (so it's not the best quality for tutorial/demo material that needs to be edited afterwards) and pretty much nobody (among users, I mean) actually understands the notion of "quantizer" and how it functions...

New release for 0.9.8?

Hello
It would be great if you make a release for the new version 0.9.8, compatible with gnome shell 3.16
It's easier to manage in the distro with a release.

Audio recording

I am very impressed by the feature set and reliability of EasyScreenCast. Excellent work!

The only thing missing to make it the be-all-end-all gnome-shell screencast recording tool would be to support recording audio at the same time.

The audio recording feature should also allow specifying a particular input device (in case the default is wrong - for example PulseAudio never remembers that I want to prioritize my USB microphone instead of the built-in analog audio).

Highlight mouse cursor

I use screencast for tutorials and would really like to have the cursor highlighted during the screencast. Is there anyway to do that from this application?

README update

Hi,

I just post it there for later use.

Install command

For me it does not work.
After git clone, it should be

mv EasyScreenCast ~/.local/share/gnome-shell/extensions/[email protected]

Formatting issue

The commands ot install the extension are not well formatted, one tab should be remove for block quoted via 3 x `

Translatation files build

I dont know much about gnome extensions, but if no tool exists to taskify that, i d suggest to provide them for each languages supported, so that each user can copy-paste.
for reference

msgfmt locale/fr.po -o locale/fr/LC_MESSAGES/[email protected]
msgfmt locale-UI/fr.po -o locale-UI/fr/LC_MESSAGE/[email protected]

Update homepage link at extensions.gnome.org

Hello,

when I look at https://extensions.gnome.org/extension/690/easyscreencast/, the Homepage link refers to http://iacopodeenosee.wordpress.com/. But it's a bit difficult to find relevant information on a generic blog page. I think it would be much easier to point it either to the project homepage:
http://iacopodeenosee.wordpress.com/projects/easyscreencast/
or github itself:
https://github.com/iacopodeenosee/EasyScreenCast

People need this link mostly to contact the author and/or report problems, so one of those links would work much better.

Thanks!

ISSUE: Gjs-Message: JS LOG: Extension "[email protected]" had error: Error: Wrong type undefined; string expected

Hello,

First thanks for great extension!
For some time I cannot install your extension, everytime I did upgrade in extensions.gnome.org I had to revert to previous version :/

This time, I decided to find problem. I'm not gnome dev so sorry if I write something 'stupid'...

So error:

Gjs-Message: JS LOG: Extension "[email protected]" had error: Error: Wrong type undefined; string expected

So after few testing, I've got something I think is a bug

File: extensions.js, line 176

    _addSubMenuAreaRec: function () {
        this.smAreaRec = new PopupMenu.PopupSubMenuMenuItem('', true);
        this.smAreaRec.icon.icon_name = 'view-fullscreen-symbolic';
        var arrMI = this._createMIAreaRec();
        for (var ele in arrMI) {
            this.smAreaRec.menu.addMenuItem(arrMI[ele]);
        }
        this.smAreaRec.label.text =
            this.AreaType[Pref.getOption('i', Pref.AREA_SCREEN_SETTING_KEY)];
        this.menu.addMenuItem(this.smAreaRec);
    },

This line:

 this.smAreaRec.label.text =
            this.AreaType[Pref.getOption('i', Pref.AREA_SCREEN_SETTING_KEY)];

I know that if type is 'i' you want integer, if 's' you want string.
label.text should be string, but if I just change for 's' it returning me null var.

For now I just changed it for simple string and it is working for me.

I wrote new topic, but I thinks it is duplicated of #41

"Maximum recording duration" setting is useless?

Is there a real usecase for this setting? Why would anyone want to artificially limit the length of a recording session? If nobody provided a clear reason for this to exist, I would suggest removing that setting from the preferences (it even has a tooltip in italian that mentions bug 708660, which has been marked as resolved 1.5 years ago)

"select specific desktop" usually picks the primary screen, not the secondary one

This is my display setup:
displays

xrandr says:

$ xrandr 
Screen 0: minimum 8 x 8, current 3286 x 1080, maximum 32767 x 32767
LVDS1 connected 1366x768+0+312 (normal left inverted right x axis y axis) 277mm x 156mm
   1366x768      60.10*+
   1024x768      60.00  
   800x600       60.32    56.25  
   640x480       59.94  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected primary 1920x1080+1366+0 (normal left inverted right x axis y axis) 510mm x 290mm
   1920x1080     60.00*+
   1680x1050     59.88  
   1280x1024     60.02  
   1280x960      60.00  
   1152x864      59.97  
   1024x768      60.00  
   800x600       60.32  
   640x480       60.00  
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

When I use "select specific desktop" option and click on the right (primary) screen, everything works great, the right screen is recorded. However, if I pick the left screen, in 90% of cases the right screen is recorded. Only a handful times I saw the left screen recorded, otherwise it was always the right one (which is wrong).

GNOME 3.14

Unclear distinction between sections in the settings

Settings currently have these sections:

  • Options
  • Recording area
  • Screencast options
  • "File screencast"
  • GStreamer Pipeline

This is rather confusing, especially "Options" vs "Screencast options"

I would recommend something by areas of interest:

  • User interface
    • Everything related to the shell's menu/notifications
    • Keyboard shortcuts
    • "Show a border around the area being recorded"
  • Input & Performance
    • Audio input device
    • Framerate
    • Recording area
  • Output (where and how to name the files)
  • Advanced
    • Debug mode
    • GStreamer pipeline
    • Record cursor (could also go into the "Input" section, maybe)
    • Execute command after recording / "Command to execute after recording:" (could also go in the "Output" section, maybe)

And "Reset to defaults" is a global thing (AFAIK), so it should be taken out of the "User interface" tab and put below the whole notebook.

maximum duration does not work on GNOME 3.14

I set Maximum duration screencast to 10 seconds, but EasyScreenCast continued to record even after 10 seconds (I waited about half a minute, then manually ended it). It seems that that option has no effect.

Audio recording not working; could you document the requirements of gstreamer pipelines?

on a branch new ubuntu-gnome 15.10 installation, the audio recording is not working, I suspect is is the gstreamer pipeline, here is the default gstreamer plugins; could you document the requirements? and how to debug the audio recording problems? would be even better if you have one line of apt-get install required packages

queue ! videorate
 ! vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T
 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue
 ! mux. webmmux name=mux 

mouse not working on gnome shell widgets inside the area marked with "show area screencast during recording"

If I enable show area screencast during recording option and then record either the full screen or some specific part of the screen, I can't use the mouse click anywhere inside the marked area on gnome-shell widgets. That includes the top bar (if it is inside the marked area), anything in the gnome-shell overview, or the notification bar.

For example, I can't click on anything inside the red rectangle in gnome-shell overview in the following image:
area

If I disable "show area screencast during recording", the mouse clicks operate normally.

GNOME 3.14

Selecting recording area from the menu

It would be great if one could select the target area of the recording easily at the start of every recording, right from the menu.
Because sometimes I would want to record a window, or an area, or one desktop, and it is rather inconvenient having to always change this in the Options GUI.
So maybe you could add another option to the combobox on the "Screencast area" tab, something like "Selected at every recording", and if it is active, a few extra elements would appear in the menu under the "Start recording" option, one for each possible target selection.
Or maybe these could be there all the time, in a foldable submenu, and the main option would adhere to the selected option in the GUI, but these would always use a specific selection mode.

file selector in options

by default it s uninitialized, as a consequence the recording file path would not appear.
After click on a folder, it will appear, and the UI is updated to reflect a kind of initialization.

Would be great to make it intelligible out of the box.

--edit
in fact, it happens even after I selected a folder to save the videos.
BTW, i forgot, fedora@latest stable up2date on gnme3. Not sure which info i need to provide.

"Restore default option" should be plural

A small issue, but I thought it worth reporting since I can't figure out how to edit the .po and .pot files to do it for you. The button in the preferences window should probably read "Restore default options" rather than the current singular "Restore default option".

New icons?

Hi there,
I have started making some sleek new pixel-perfect SVG icons to replace the current blurry status icons. Would you be interested if I made my own branch eventually and contributed those so you can merge them? :)

shell command to run on the result

If you allow a custom shell command to be run on the final recording, we could install conversion packages and add a line into a "Final shell command to be run on the result" in your options.

print screen mode

Hi,

How do you think about a print screen option in order to enjoy all the selection methods but to produce an unique png/jpeg file ?

Thanks !

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.