[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