[FFmpeg-trac] #8450(avdevice:reopened): x11grab doesn't work with headless X servers

FFmpeg trac at avcodec.org
Tue Dec 31 18:08:24 EET 2019


#8450: x11grab doesn't work with headless X servers
------------------------------------+------------------------------------
             Reporter:  eero-t      |                    Owner:
                 Type:  defect      |                   Status:  reopened
             Priority:  normal      |                Component:  avdevice
              Version:  git-master  |               Resolution:
             Keywords:              |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+------------------------------------

Comment (by eero-t):

 > Well, you should try the latest git master because there were some
 issues with XCB grab timestamps for the last few weeks. Also make sure you
 can reproduce this with local (non-networked) output and without hwaccel.

 With git-master from last evening, I'll see:
 {{{
 $ ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -an -f x11grab
 -video_size 1920x1080 -framerate 2 -i :99 -c:v h264_vaapi -vf
 format=nv12,hwupload -b:v 5000k -f flv rtmp://192.168.0.8/live/desktop
 ffmpeg version N-96204-gf651b18c19 Copyright (c) 2000-2019 the FFmpeg
 developers
   built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
   configuration: --prefix=/opt/ --enable-libmfx --enable-vaapi --enable-
 sdl2 --disable-libx265 --disable-libx264 --disable-libvpx --enable-
 libvorbis --enable-libopus --disable-libmp3lame --disable-libass
 --disable-sndio --enable-libfreetype --enable-gpl --disable-doc
   libavutil      56. 38.100 / 56. 38.100
   libavcodec     58. 65.100 / 58. 65.100
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.101 / 58.  9.101
   libavfilter     7. 70.101 /  7. 70.101
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 [x11grab @ 0x556499d1fa80] Cannot get the image data event_error:
 response_type:0 error_code:128 sequence:9 resource_id:4194304 minor_code:4
 major_code:130.
 [x11grab @ 0x556499d1fa80] Continuing without shared memory.
 [x11grab @ 0x556499d1fa80] Stream #0: not enough frames to estimate rate;
 consider increasing probesize
 Input #0, x11grab, from ':99':
   Duration: N/A, bitrate: N/A
     Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 2
 fps, 1000k tbr, 1000k tbn, 1000k tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
 Press [q] to stop, [?] for help
 [graph 0 input from stream 0:0 @ 0x556499d43d00] sws_param option is
 deprecated and ignored
 Output #0, flv, to 'rtmp://192.168.0.8/live/desktop':
   Metadata:
     encoder         : Lavf58.35.101
     Stream #0:0: Video: h264 (h264_vaapi) (High) ([7][0][0][0] / 0x0007),
 vaapi_vld, 1920x1080, q=-1--1, 5000 kb/s, 2 fps, 1k tbn, 2 tbc
     Metadata:
       encoder         : Lavc58.65.100 h264_vaapi
 [flv @ 0x556499d29c40] Failed to update header with correct duration.N/A
 dup=0 drop=63 speed=N/A
 [flv @ 0x556499d29c40] Failed to update header with correct filesize.
 frame=    2 fps=0.1 q=-0.0 Lsize=       1kB time=00:00:00.00
 bitrate=7848.0kbits/s dup=0 drop=64 speed=3.09e-05x
 }}}

 Same issue without HW acceleration to local file:
 {{{
 $ ffmpeg -y -an -f x11grab -video_size 1920x1080 -framerate 2 -i :99
 out.mp4
 ffmpeg version N-96204-gf651b18c19 Copyright (c) 2000-2019 the FFmpeg
 developers
   built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
   configuration: --prefix=/opt/ --enable-libmfx --enable-vaapi --enable-
 sdl2 --disable-libx265 --disable-libx264 --disable-libvpx --enable-
 libvorbis --enable-libopus --disable-libmp3lame --disable-libass
 --disable-sndio --enable-libfreetype --enable-gpl --disable-doc
   libavutil      56. 38.100 / 56. 38.100
   libavcodec     58. 65.100 / 58. 65.100
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.101 / 58.  9.101
   libavfilter     7. 70.101 /  7. 70.101
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 [x11grab @ 0x55a4dccf4380] Cannot get the image data event_error:
 response_type:0 error_code:128 sequence:9 resource_id:4194304 minor_code:4
 major_code:130.
 [x11grab @ 0x55a4dccf4380] Continuing without shared memory.
 [x11grab @ 0x55a4dccf4380] Stream #0: not enough frames to estimate rate;
 consider increasing probesize
 Input #0, x11grab, from ':99':
   Duration: N/A, bitrate: N/A
     Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 2
 fps, 1000k tbr, 1000k tbn, 1000k tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg4 (native))
 Press [q] to stop, [?] for help
 [graph 0 input from stream 0:0 @ 0x55a4dcd07d80] sws_param option is
 deprecated and ignored
 Output #0, mp4, to 'out.mp4':
   Metadata:
     encoder         : Lavf58.35.101
     Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1920x1080,
 q=2-31, 200 kb/s, 2 fps, 16384 tbn, 2 tbc
     Metadata:
       encoder         : Lavc58.65.100 mpeg4
     Side data:
       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
 frame=    3 fps=0.0 q=2.0 size=       0kB time=00:00:01.00 bitrate=
 0.4kbits/s dup=0 drop=3 speed=1.83xframe=    3 fps=1.9 q=2.0 size=
 0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=5 speed=0.647frame=
 3 fps=1.5 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s
 dup=0 drop=6 speed=0.489frame=    3 fps=1.0 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=8 speed=0.328frame=    3
 fps=0.7 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=10 speed=0.24frame=    3 fps=0.7 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=11 speed=0.22frame=    3
 fps=0.5 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=13 speed=0.18frame=    3 fps=0.5 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=15 speed=0.15frame=    3
 fps=0.4 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=16 speed=0.14frame=    3 fps=0.4 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=18 speed=0.12frame=    3
 fps=0.3 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=20 speed=0.11frame=    3 fps=0.3 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=22 speed=0.09frame=    3
 fps=0.3 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=23 speed=0.09frame=    3 fps=0.3 q=2.0 size=       0kB
 time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=24 speed=0.09frame=    3
 fps=0.2 q=2.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0
 drop=26 speed=0.08frame=    3 fps=0.2 q=2.0 Lsize=      25kB
 time=00:00:01.00 bitrate= 203.6kbits/s dup=0 drop=27 speed=0.0797x
 }}}

 Now Fmpeg says that it's continuing without shared memory, but all frames
 are still dropped.

 What's worse, last night git-master version says that (and fails), even
 when Xvfb has been started with -shmem option.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8450#comment:5>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list