Closed gort818 closed 7 years ago
Weird. Looks like something goes wrong when the palette file gets generated. Can you post the complete output of Peek? I suspect the actual issue is already earlier, maybe we can see something in the output. Also it is important to know whether the ffmpeg or gnome shell backend was used (it will always be ffmpeg unless you are using gnome shell).
For a quick workaround run peek with PEEK_POSTPROCESSOR=imagemagick peek
and it will use the old approach for GIF (this won't help with APNG, this only works with the new code).
Using screen recorder backend ffmpeg webmgifffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3 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 Input #0, x11grab, from ':0+227,101': Duration: N/A, start: 1508689385.013648, bitrate: N/A Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 479x193, 10 fps, 10 tbr, 1000k tbn, 1000k tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> pam (native)) Press [q] to stop, [?] for help Finishing stream 0:0 without any data written to it. Output #0, rawvideo, to '/home/alessandro/.cache/peek/peekB8527Y.pam': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: pam, rgb24, 479x193, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc Metadata: encoder : Lavc57.107.100 pam frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3 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 /home/alessandro/.cache/peek/peekB8527Y.pam: Invalid data found when processing input Error: Child process exited with code 1 ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3 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 /home/alessandro/.cache/peek/peekB8527Y.pam: Invalid data found when processing input Error: Child process exited with code 1 Error deleting palette file: Error removing file /home/alessandro/.cache/peek/peekQNCC8Y.png: No such file or directory File save error: Error when getting information for file “/home/alessandro/.cache/peek/peek3LEG8Y.gif”: No such file or directory Temp file delete error: Error removing file /home/alessandro/.cache/peek/peek3LEG8Y.gif: No such file or directory
Here is the output with the workaround
PEEK_POSTPROCESSOR=imagemagick ./peek Using screen recorder backend ffmpeg gifffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3 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 Input #0, x11grab, from ':0+227,101': Duration: N/A, start: 1508689469.701404, bitrate: N/A Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 479x193, 10 fps, 10 tbr, 1000k tbn, 1000k tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> pam (native)) Press [q] to stop, [?] for help Finishing stream 0:0 without any data written to it. Output #0, rawvideo, to '/home/alessandro/.cache/peek/peekYD067Y.pam': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: pam, rgb24, 479x193, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc Metadata: encoder : Lavc57.107.100 pam frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) convert: improper image header/home/alessandro/.cache/peek/peekYD067Y.pam' @ error/pnm.c/ReadPNMImage/284. convert: no images defined
/home/alessandro/.cache/peek/peek3L1I8Y.gif' @ error/convert.c/ConvertImageCommand/3258. Error: Child process exited with code 1 File save error: Error when getting information for file “/home/alessandro/.cache/peek/peek3L1I8Y.gif”: No such file or directory Temp file delete error: Error removing file /home/alessandro/.cache/peek/peek3L1I8Y.gif: No such file or directory
Also I just tested on Ubuntu 17.10 if backed is gnome-shell it works brilliantly, but if I use ffmpeg it saves the file as a gif but unfortunately it is just a static image.
I have the same problem with Ubuntu 17.10
WARNING: library configuration mismatch
@gort818 This is very strange, are you sure release 1.1.0 works? Because your ffmpeg recording already fails, in both cases the recorded file is empty ("Output file is empty, nothing was encoded" and "Finishing stream 0:0 without any data written to it."). And absolutely nothing changed in this regard, ffmpeg in 1.1.0 gets called exactly as in the current development version. For how long did you record? What desktop environment are you using?
@irk3n-dev Likely a different issue, please open a new issue and post the full console output of Peek there.
@phw Here is the output using release peek-1.1.0 it works beautifully , I am using Cinnamon. I tried recording for a few seconds and up to a minute
./peek-1.1.0 Using screen recorder backend ffmpeg ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3 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 Input #0, x11grab, from ':0+331,138': Duration: N/A, start: 1508974958.940594, bitrate: N/A Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 677x450, 10 fps, 10 tbr, 1000k tbn, 1000k tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> pam (native)) Press [q] to stop, [?] for help Output #0, rawvideo, to '/home/alessandro/.cache/peek/peekXXXXXX.pam': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: pam, rgb24, 677x450, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc Metadata: encoder : Lavc57.107.100 pam frame= 11 fps=0.0 q=-0.0 size= 9728kB time=00:00:01.10 bitrate=72447.1kbitsframe= 16 fps= 16 q=-0.0 size= 14080kB time=00:00:01.60 bitrate=72089.6kbitsframe= 22 fps= 14 q=-0.0 size= 19456kB time=00:00:02.20 bitrate=72447.1kbitsframe= 28 fps= 13 q=-0.0 size= 24832kB time=00:00:02.80 bitrate=72651.3kbitsframe= 34 fps= 12 q=-0.0 size= 30208kB time=00:00:03.40 bitrate=72783.5kbitsframe= 40 fps= 12 q=-0.0 size= 35584kB time=00:00:04.00 bitrate=72876.0kbitsframe= 45 fps= 12 q=-0.0 size= 39936kB time=00:00:04.50 bitrate=72701.3kbitsframe= 51 fps= 11 q=-0.0 size= 45312kB time=00:00:05.10 bitrate=72783.5kbitsframe= 57 fps= 11 q=-0.0 size= 50688kB time=00:00:05.70 bitrate=72848.4kbitsframe= 63 fps= 11 q=-0.0 size= 56064kB time=00:00:06.30 bitrate=72901.0kbitsframe= 69 fps= 11 q=-0.0 size= 61440kB time=00:00:06.90 bitrate=72944.4kbitsframe= 75 fps= 11 q=-0.0 size= 66816kB time=00:00:07.50 bitrate=72980.9kbitsframe= 80 fps= 11 q=-0.0 size= 71168kB time=00:00:08.00 bitrate=72876.0kbitsframe= 85 fps= 11 q=-0.0 Lsize= 75870kB time=00:00:08.50 bitrate=73121.0kbits/s speed=1.06x
video:75870kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Still not sure what is happening here. I checked, the recording of the pam file is completely unchanged compared to 1.1.0 . Also cannot reproduce, maybe I have to test with Cinnamon.
I have this exact issue too. Going from AUR package peek-git
to peek
(which is version 1.1.0) solves the issue.
@sQVe What de are you using?
@gort818 I'm not using a DE. I only use i3 as a window manager.
I'm using Arch Linux with KDE and I have problems with Peek built from the peek
as well as from the peek-git
package. The final GIF has only ~10KiB. I can see the size of the ~/.cache/peek/peekXXXXXX.pam
file is increasing but if I try to play it with VLC, it loops only the first second (like in the final GIF). There are no errors in the Peek logs:
$ peek
Using screen recorder backend ffmpeg
ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3
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
Input #0, x11grab, from ':0+959,494':
Duration: N/A, start: 1509278715.154771, bitrate: N/A
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 955x548, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> pam (native))
Press [q] to stop, [?] for help
Output #0, rawvideo, to '/home/user/.cache/peek/peekXXXXXX.pam':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: pam, rgb24, 955x548, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc
Metadata:
encoder : Lavc57.107.100 pam
frame= 123 fps= 10 q=-0.0 Lsize= 188594kB time=00:00:12.30 bitrate=125606.6kbits/s speed=1.02x
video:188594kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
EDIT: I have discovered that if I disable Plasma 5 effects (CTRL+ALT+F12), it starts recording just fine.
Can you all try the latest git revision again? I could finally reproduce, changed the intermediary output format. This is probably an intermediate fix, but curious if it fixes your issues.
Can you all try the latest git revision again? I could finally reproduce, changed the intermediary output format. This is probably an intermediate fix, but curious if it fixes your issues.
@phw fixes the problem for me 👍.
@phw ah, maybe you already know, but also note that the fix broke PEEK_POSTPROCESSOR=imagemagick
for me. With the fix, I get this:
~ PEEK_POSTPROCESSOR=imagemagick /opt/peek/build/peek
** (peek:30606): WARNING **: Binding '<Ctrl><Alt>R' failed!
Using screen recorder backend ffmpeg
ffmpeg version 3.4-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.4.0 (Debian 6.4.0-7) 20170920
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
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
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[x11grab @ 0x48d9ee0] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0+654,459':
Duration: N/A, start: 1509724229.505680, bitrate: N/A
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1233x547, 5 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> ffvhuff (native))
Press [q] to stop, [?] for help
Output #0, matroska, to '/home/ronj/.cache/peek/peekHFWZ8Y.mkv':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: ffvhuff (FFVH / 0x48564646), rgb24, 1233x547, q=2-31, 200 kb/s, 5 fps, 1k tbn, 5 tbc
Metadata:
encoder : Lavc57.107.100 ffvhuff
frame= 53 fps=5.2 q=-0.0 Lsize= 37271kB time=00:00:10.40 bitrate=29355.4kbits/s speed=1.02x
video:37268kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.009093%
convert: no decode delegate for this image format `MKV' @ error/constitute.c/ReadImage/501.
convert: no images defined `/home/ronj/.cache/peek/peekM6ZQ8Y.gif' @ error/convert.c/ConvertImageCommand/3210.
Error: Child process exited with code 1
File save error: Error when getting information for file '/home/ronj/.cache/peek/peekM6ZQ8Y.gif': No such file or directory
Temp file delete error: Error removing file: No such file or directory
ah, maybe you already know,
I didn't know, but I kind of expected this (it works for me, but ImageMagick relies on global config files for this). But I think the ImageMagick backend just has to go, especially when we have both ffmpeg (fast, low RAM usage, small gif size, ok quality) and gifski (slow, low RAM usage, large GIF size, excellent quality) ImageMagick does not bring anything to the table (slow, huge RAM usage, small gif size, ok quality)
This is fixed in the git master branch.
@phw Awesome thanks !
@phw Please do a release with this bugfix, it took me a while to figure out why I can't take any video ^^
@C0rn3j This specific bug was never released and is already fixed. If you have issues recording with the current stable version I recommend trying the latest development version. But there will be a new release soon.
I did indeed have issues on the stable version, using devel version made it work.
Good to hear a release is gonna come soon.
I am using arch linux and on the latest development version I can no longer recorder GIF or APNG file formats. Release 1.1.0 works perfectly.
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) /home/user/.cache/peek/peekQTVC8Y.png: Invalid data found when processing input Error: Child process exited with code 1 Temp file delete error: Error removing file /home/user/.cache/peek/peekQ5IH8Y.gif: No such file or directory