phw / peek

Simple animated GIF screen recorder with an easy to use interface
GNU General Public License v3.0
10.15k stars 318 forks source link

Could not start GNOME Shell recorder Issue #521

Open AidenBarrettMovidius opened 4 years ago

AidenBarrettMovidius commented 4 years ago

Peek: 1.4.0 GTK: 3.22.30 GLib: 2.56.4 Desktop: ubuntu:GNOME Display server: X FFmpeg version:

ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100

Output format: gif gifski enabled: false

Error details:

Could not start GNOME Shell recorder.

Missing codec or another active screen recording using org.gnome.Shell.Screencast?

Please see the FAQ at https://github.com/phw/peek#what-is-the-cause-for-could-not-start-gnome-shell-recorder-errors
pgasiorowski-es commented 3 years ago

Same problem here on ubuntu 18.04.5 LTS.

By default I get this error:

$ peek
Failed to initialize recorder: Could not start GNOME Shell recorder.
Make sure you have the GStreamer ugly plugins installed for MP4 recording.

peek

Switching the backend to ffmpeg does not seem any better.

$ peek -b ffmpeg
Requested screen recording backend ffmpeg
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --enable-shared --disable-static --disable-stripping --enable-swscale --enable-pthreads --enable-libmp3lame --disable-bzlib --disable-devices --enable-libx264 --enable-gpl --enable-libv4l2
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Error: Child process exited with code 1
Recording canceled: Command "ffmpeg -f x11grab -show_region 0 -framerate 10 -video_size 1918x960 -i :0+1921,217 -filter:v scale=iw/1:-1, crop=iw-mod(iw\,2):ih-mod(ih\,2) -codec:v libx264 -preset:v fast -profile:v baseline -pix_fmt yuv420p -r 10 -y /home/piotrgasiorowski/.cache/peek/peekSOSKT0.mp4" failed with status 256 (received signal 0).

Output:
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)  configuration: --enable-shared --disable-static --disable-stripping --enable-swscale --enable-pthreads --enable-libmp3lame --disable-bzlib --disable-devices --enable-libx264 --enable-gpl --enable-libv4l2  libavutil      56. 22.100 / 56. 22.100  libavcodec     58. 35.100 / 58. 35.100  libavformat    58. 20.100 / 58. 20.100  libavdevice    58.  5.100 / 58.  5.100  libavfilter     7. 40.101 /  7. 40.101  libswscale      5.  3.100 /  5.  3.100  libswresample   3.  3.100 /  3.  3.100  libpostproc    55.  3.100 / 55.  3.100

Unrecognized option 'show_region'.Error splitting the argument list: Option not found

This used to work before a recent system update.

$ dpkg -l | grep ffmpeg
ii  ffmpeg                                     7:3.4.8-0ubuntu0.2                               amd64        Tools for transcoding, streaming and playing of multimedia files

$ dpkg -l | grep gstreamer
ii  gir1.2-gstreamer-1.0:amd64                 1.14.5-0ubuntu1~18.04.1                          amd64        GObject introspection data for the GStreamer library
ii  gstreamer1.0-alsa:amd64                    1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter-3.0:amd64             3.0.26-1                                         amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-gl:amd64                      1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins for GL
ii  gstreamer1.0-gtk3:amd64                    1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugin for GTK+3
ii  gstreamer1.0-libav:amd64                   1.14.5-0ubuntu1~18.04.1                          amd64        libav plugin for GStreamer
ii  gstreamer1.0-nice:amd64                    0.1.14-1                                         amd64        ICE library (GStreamer plugin)
ii  gstreamer1.0-packagekit                    1.1.9-1ubuntu2.18.04.6                           amd64        GStreamer plugin to install codecs using PackageKit
ii  gstreamer1.0-plugins-bad:amd64             1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-base:amd64            1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps             1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64            1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64            1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64              1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                         1.14.5-0ubuntu1~18.04.1                          amd64        Tools for use with GStreamer
ii  gstreamer1.0-x:amd64                       1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer plugins for X11 and Pango
ii  libgstreamer-gl1.0-0:amd64                 1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer GL libraries
ii  libgstreamer-opencv1.0-0:amd64             1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer OpenCV libraries
ii  libgstreamer-plugins-bad1.0-0:amd64        1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer libraries from the "bad" set
ii  libgstreamer-plugins-bad1.0-dev:amd64      1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:amd64       1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-dev:amd64     1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer development files for libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64       1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer-plugins-good1.0-dev           1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer1.0-0:amd64                    1.14.5-0ubuntu1~18.04.1                          amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev:amd64                  1.14.5-0ubuntu1~18.04.1                          amd64        GStreamer core development files
ii  libreoffice-avmedia-backend-gstreamer      1:6.0.7-0ubuntu0.18.04.10                        amd64        GStreamer backend for LibreOffice
luigimannoni commented 2 years ago

Same issue here, however it works if I launch peek with ffmpeg backend: peek -b ffmpeg

$ dpkg -l | grep ffmpeg
ii  chromium-codecs-ffmpeg-extra               1:85.0.4183.83-0ubuntu2                           amd64        Transitional package - chromium-codecs-ffmpeg-extra -> chromium-ffmpeg snap
ii  ffmpeg                                     7:4.4.1-3ubuntu5                                  amd64        Tools for transcoding, streaming and playing of multimedia files
ii  gstreamer1.0-libav:amd64                   1.20.1-1                                          amd64        ffmpeg plugin for GStreamer

$ dpkg -l | grep gstreamer
ii  gir1.2-gstreamer-1.0:amd64                 1.20.1-1                                          amd64        GObject introspection data for the GStreamer library
ii  gstreamer1.0-alsa:amd64                    1.20.1-1                                          amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter-3.0:amd64             3.0.27-2build2                                    amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-gl:amd64                      1.20.1-1                                          amd64        GStreamer plugins for GL
ii  gstreamer1.0-gtk3:amd64                    1.20.1-1ubuntu1                                   amd64        GStreamer plugin for GTK+3
ii  gstreamer1.0-libav:amd64                   1.20.1-1                                          amd64        ffmpeg plugin for GStreamer
ii  gstreamer1.0-packagekit                    1.2.5-2ubuntu2                                    amd64        GStreamer plugin to install codecs using PackageKit
ii  gstreamer1.0-pipewire:amd64                0.3.48-1ubuntu1                                   amd64        GStreamer 1.0 plugin for the PipeWire multimedia server
ii  gstreamer1.0-plugins-bad:amd64             1.20.1-1ubuntu2                                   amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-base:amd64            1.20.1-1                                          amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base:i386             1.20.1-1                                          i386         GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps             1.20.1-1                                          amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64            1.20.1-1ubuntu1                                   amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64            1.20.1-1                                          amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64              1.20.1-1ubuntu1                                   amd64        GStreamer plugin for PulseAudio (transitional package)
ii  gstreamer1.0-tools                         1.20.1-1                                          amd64        Tools for use with GStreamer
ii  gstreamer1.0-vaapi:amd64                   1.20.1-1                                          amd64        VA-API plugins for GStreamer
ii  gstreamer1.0-x:amd64                       1.20.1-1                                          amd64        GStreamer plugins for X11 and Pango
ii  libgstreamer-gl1.0-0:amd64                 1.20.1-1                                          amd64        GStreamer GL libraries
ii  libgstreamer-plugins-bad1.0-0:amd64        1.20.1-1ubuntu2                                   amd64        GStreamer libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:amd64       1.20.1-1                                          amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-0:i386        1.20.1-1                                          i386         GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64       1.20.1-1ubuntu1                                   amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer1.0-0:amd64                    1.20.1-1                                          amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-0:i386                     1.20.1-1                                          i386         Core GStreamer libraries and elements

$ ffmpeg -version
ffmpeg version 4.4.1-3ubuntu5 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-18ubuntu1)
configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100
Baa14453 commented 4 months ago

For me, Ubuntu 22.04 Journalctl logs when it failed:

Feb 09 21:38:18 Tiles-PC dbus-daemon[8318]: [session uid=1000 pid=8318] Activating service name='org.gnome.Shell.Screencast' requested by ':1.10328' (uid=1000 pid=712491 comm="peek " label="unconfined")
Feb 09 21:38:18 Tiles-PC dbus-daemon[8318]: [session uid=1000 pid=8318] Successfully activated service 'org.gnome.Shell.Screencast'
Feb 09 21:38:23 Tiles-PC dbus-daemon[8318]: [session uid=1000 pid=8318] Activating service name='org.gnome.Shell.Screencast' requested by ':1.10328' (uid=1000 pid=712491 comm="peek " label="unconfined")
Feb 09 21:38:23 Tiles-PC dbus-daemon[8318]: [session uid=1000 pid=8318] Successfully activated service 'org.gnome.Shell.Screencast'
Feb 09 21:38:23 Tiles-PC gjs[712543]: JS LOG: Failed to start recorder: GDBus.Error:org.freedesktop.DBus.Error.Failed: Failed to start screen cast: Couldn't connect pipewire context

PipeWire service was masked:

systemctl --user status pipewire

I don't know why... I might've done it myself to fix some Bluetooth thing a while back, anyway I unmasked and started the service:

systemctl unmask --user pipewire
systemctl --user start pipewire
$ systemctl --user status pipewire
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-02-09 21:47:34 GMT; 2s ago
TriggeredBy: ● pipewire.socket
   Main PID: 716047 (pipewire)
      Tasks: 3 (limit: 38244)
     Memory: 5.7M
        CPU: 23ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─716047 /usr/bin/pipewire

The recording now starts but it crashes when I try to save:

peek
Using screen recorder backend gnome-shell
Recording to file /home/baa/.cache/peek/peek14F6I2.webm
Error: Timeout was reached
Recording canceled: Timeout was reached

image

I tried both with and without gifski with high quality ticked. peek -b ffmpeg worked fine for me.

I could not see any further journalctl lines during this new error. Happy to do more testing let me know what to do.

Baa14453 commented 4 months ago

Yeah I don't know why but enabling Pipewire breaks my microphone ffmpeg works great :)