[FFmpeg-user] AMD screen record + h/w vaapi encode to mkv fails.
Andy Furniss
adf.lists at gmail.com
Sat Feb 24 02:40:38 EET 2018
Haven't had time to bisect, but I can't screengrab to mkv any more.
kmsgrab + playing with vsync etc. give the same error as this example,
mp4 works OK.
ffm -loglevel debug -vaapi_device /dev/dri/renderD128 -f x11grab
-video_size 1920x1080 -i :0 -vf 'format=nv12,hwupload' -c:v h264_vaapi
-profile:v 578 -bf 0 -y out.mkv
ffmpeg version N-90148-g0419623cdc Copyright (c) 2000-2018 the FFmpeg
developers
built with gcc 7.3.0 (GCC)
configuration: --prefix=/usr --disable-doc --enable-gpl
--enable-libvpx --enable-libx265 --enable-libx264 --enable-gnutls
--enable-libdrm --enable-libfreetype --enable-libmp3lame
libavutil 56. 7.101 / 56. 7.101
libavcodec 58. 12.102 / 58. 12.102
libavformat 58. 9.100 / 58. 9.100
libavdevice 58. 2.100 / 58. 2.100
libavfilter 7. 12.100 / 7. 12.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-vaapi_device' ... matched as option 'vaapi_device' (set
VAAPI hardware device (DRM path or X11 display name)) with argument
'/dev/dri/renderD128'.
Reading option '-f' ... matched as option 'f' (force format) with
argument 'x11grab'.
Reading option '-video_size' ... matched as AVOption 'video_size' with
argument '1920x1080'.
Reading option '-i' ... matched as input url with argument ':0'.
Reading option '-vf' ... matched as option 'vf' (set video filters) with
argument 'format=nv12,hwupload'.
Reading option '-c:v' ... matched as option 'c' (codec name) with
argument 'h264_vaapi'.
Reading option '-profile:v' ... matched as option 'profile' (set
profile) with argument '578'.
Reading option '-bf' ... matched as AVOption 'bf' with argument '0'.
Reading option '-y' ... matched as option 'y' (overwrite output files)
with argument '1'.
Reading option 'out.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Applying option vaapi_device (set VAAPI hardware device (DRM path or X11
display name)) with argument /dev/dri/renderD128.
[AVHWDeviceContext @ 0x2152640] Opened VA display via DRM device
/dev/dri/renderD128.
[AVHWDeviceContext @ 0x2152640] libva: VA-API version 1.1.0
[AVHWDeviceContext @ 0x2152640] libva: va_getDriverName() returns 0
[AVHWDeviceContext @ 0x2152640] libva: User requested driver 'radeonsi'
[AVHWDeviceContext @ 0x2152640] libva: Trying to open
/usr/lib/dri/radeonsi_drv_video.so
[AVHWDeviceContext @ 0x2152640] libva: Found init function
__vaDriverInit_1_1
[AVHWDeviceContext @ 0x2152640] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x2152640] Initialised VAAPI connection: version 1.1
[AVHWDeviceContext @ 0x2152640] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x2152640] Format 0x30313050 -> p010le.
[AVHWDeviceContext @ 0x2152640] Format 0x36313050 -> unknown.
[AVHWDeviceContext @ 0x2152640] Format 0x32315659 -> yuv420p.
[AVHWDeviceContext @ 0x2152640] Format 0x56595559 -> unknown.
[AVHWDeviceContext @ 0x2152640] Format 0x59565955 -> uyvy422.
[AVHWDeviceContext @ 0x2152640] Format 0x41524742 -> bgra.
[AVHWDeviceContext @ 0x2152640] Format 0x41424752 -> rgba.
[AVHWDeviceContext @ 0x2152640] Format 0x58524742 -> bgr0.
[AVHWDeviceContext @ 0x2152640] Format 0x58424752 -> rgb0.
[AVHWDeviceContext @ 0x2152640] Unknown driver "Mesa Gallium driver
18.1.0-devel for AMD Radeon R9 200 Series (TONGA / DRM 3.25.0 /
4.16.0-rc1-g2693c7e7ca44, LLVM 7.0.0)", assuming standard behaviour.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url :0.
Applying option f (force format) with argument x11grab.
Successfully parsed a group of options.
Opening an input file: :0.
[x11grab @ 0x223ca00] Probe buffer size limit of 5000000 bytes reached
[x11grab @ 0x223ca00] Stream #0: not enough frames to estimate rate;
consider increasing probesize
Input #0, x11grab, from ':0':
Duration: N/A, start: 1519432751.575405, bitrate: N/A
Stream #0:0, 1, 1/1000000: Video: rawvideo, 1 reference frame
(BGR[0] / 0x524742), bgr0, 1920x1080, 0/1, 29.97 fps, 1000k tbr, 1000k
tbn, 1000k tbc
Successfully opened the file.
Parsing a group of options: output url out.mkv.
Applying option vf (set video filters) with argument format=nv12,hwupload.
Applying option c:v (codec name) with argument h264_vaapi.
Applying option profile:v (set profile) with argument 578.
Successfully parsed a group of options.
Opening an output file: out.mkv.
[file @ 0x224ab40] Setting default whitelist 'file,crypto'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[rawvideo @ 0x22467c0] PACKET SIZE: 8294400, STRIDE: 7680
detected 4 logical cores
[Parsed_format_0 @ 0x224cc00] Setting 'pix_fmts' to value 'nv12'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'video_size' to
value '1920x1080'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'pix_fmt' to value '123'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'time_base' to value
'1/1000000'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'pixel_aspect' to
value '0/1'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'sws_param' to value
'flags=2'
[graph 0 input from stream 0:0 @ 0x224dbc0] Setting 'frame_rate' to
value '30000/1001'
[graph 0 input from stream 0:0 @ 0x224dbc0] w:1920 h:1080 pixfmt:bgr0
tb:1/1000000 fr:30000/1001 sar:0/1 sws_param:flags=2
[format @ 0x21521c0] Setting 'pix_fmts' to value 'vaapi_vld'
[auto_scaler_0 @ 0x224f000] Setting 'flags' to value 'bicubic'
[auto_scaler_0 @ 0x224f000] w:iw h:ih flags:'bicubic' interl:0
[Parsed_format_0 @ 0x224cc00] auto-inserting filter 'auto_scaler_0'
between the filter 'graph 0 input from stream 0:0' and the filter
'Parsed_format_0'
[AVFilterGraph @ 0x224bf80] query_formats: 5 queried, 3 merged, 1
already done, 0 delayed
[auto_scaler_0 @ 0x224f000] w:1920 h:1080 fmt:bgr0 sar:0/1 -> w:1920
h:1080 fmt:nv12 sar:0/1 flags:0x4
[hwupload @ 0x224a2c0] Surface format is nv12.
[AVHWFramesContext @ 0x224a0c0] Created surface 0x1.
[AVHWFramesContext @ 0x224a0c0] Direct mapping disabled: deriving image
does not work: 6 (invalid VASurfaceID).
[AVHWFramesContext @ 0x224a0c0] Map surface 0x1.
[AVHWFramesContext @ 0x224a0c0] Unmap surface 0x1.
[h264_vaapi @ 0x2248bc0] Warning: some packed headers are not supported
(want 0xd, got 0).
[h264_vaapi @ 0x2248bc0] Using nv12 as format of reconstructed frames.
[AVHWFramesContext @ 0x22edf80] Created surface 0x3.
[AVHWFramesContext @ 0x22edf80] Direct mapping disabled: deriving image
does not work: 6 (invalid VASurfaceID).
[AVHWFramesContext @ 0x22edf80] Created surface 0x4.
[AVHWFramesContext @ 0x22edf80] Created surface 0x5.
[h264_vaapi @ 0x2248bc0] Using fixed QP = 20 / 20 / 24 for IDR- / P- /
B-frames.
[matroska @ 0x2246d80] get_metadata_duration returned: 0
Could not write header for output file #0 (incorrect codec parameters
?): Invalid data found when processing input
Error initializing output stream 0:0 --
[AVIOContext @ 0x2249b80] Statistics: 0 seeks, 1 writeouts
Conversion failed
More information about the ffmpeg-user
mailing list