[FFmpeg-trac] #11500(swscale:new): AV1 frame extraction (screenshot) fails
FFmpeg
trac at avcodec.org
Thu Mar 27 16:25:03 EET 2025
#11500: AV1 frame extraction (screenshot) fails
-------------------------------------+-----------------------------------
Reporter: ffmpegScale | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: swscale
Version: unspecified | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 1 |
-------------------------------------+-----------------------------------
Comment (by ffmpegScale):
Replying to [comment:5 MasterQuestionable]:
> ͏ Is it AV1 specific?
Yes I think so. Didn't encounter the error with AVC
> ͏ And per previous description hardware decoding shouldn't matter?
Hardware decoding doesn't matter, except for libplacebo that works. Before
v7 every file worked. I think I also had a working AV1 file, but most
won't work. (Attached file won't work)
>
> ͏ What happens?
> ͏ `ffmpeg -v debug -hide_banner -nostdin -nostats -f lavfi -i
"testsrc" -vframes 1 -vf "scale=1x1" -f null -`
This won't work, because it tries to sue the input as filter:
{{{
ffmpeg -v debug -hide_banner -nostdin -nostats -f lavfi -i "in.mkv"
-vframes 1 -vf "scale=1x1" -f null -
}}}
[AVFilterGraph @ 0x583487e06ec0] No such filter: 'in.mkv'
[AVFilterGraph @ 0x583487e06ec0] Error processing filtergraph: Filter not
found
I put the -f lavfi to the filters
{{{
ffmpeg -v debug -hide_banner -nostdin -nostats -i in.mkv -f lavfi
-vframes 1 -vf "scale=1x1" -f null -
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument 'debug'.
Reading option '-hide_banner' ... matched as option 'hide_banner' (do not
show program banner) with argument '1'.
Reading option '-nostdin' ... matched as option 'stdin' (enable or disable
interaction on standard input) with argument 0.
Reading option '-nostats' ... matched as option 'stats' (print progress
report during encoding) with argument 0.
Reading option '-i' ... matched as input url with argument 'in.mkv'.
Reading option '-f' ... matched as option 'f' (force container format
(auto-detected otherwise)) with argument 'lavfi'.
Reading option '-vframes' ... matched as option 'vframes' (set the number
of video frames to output) with argument '1'.
Reading option '-vf' ... matched as option 'vf' (alias for -filter:v
(apply filters to video streams)) with argument 'scale=1x1'.
Reading option '-f' ... matched as option 'f' (force container format
(auto-detected otherwise)) with argument 'null'.
Reading option '-' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option hide_banner (do not show program banner) with argument 1.
Applying option nostdin (enable or disable interaction on standard input)
with argument 0.
Applying option nostats (print progress report during encoding) with
argument 0.
Successfully parsed a group of options.
Parsing a group of options: input url in.mkv.
Successfully parsed a group of options.
Opening an input file: in.mkv.
[AVFormatContext @ 0x635303eb48c0] Opening 'in.mkv' for reading
[file @ 0x635303eb4f80] Setting default whitelist 'file,crypto,data'
[matroska,webm @ 0x635303eb48c0] Format matroska,webm probed with
size=2048 and score=100
st:0 removing common factor 1000000 from timebase
[matroska,webm @ 0x635303eb48c0] Before avformat_find_stream_info() pos:
524 bytes read:32768 seeks:0 nb_streams:1
[libdav1d @ 0x635303eb67c0] libdav1d 1.5.1
[libdav1d @ 0x635303eb67c0] Using 1 threads, 0 max_frame_delay
[libdav1d @ 0x635303eb67c0] Frame 0: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[matroska,webm @ 0x635303eb48c0] All info found
[matroska,webm @ 0x635303eb48c0] After avformat_find_stream_info() pos:
607 bytes read:32768 seeks:0 frames:1
Input #0, matroska,webm, from 'in.mkv':
Metadata:
ENCODER : Lavf61.7.100
Duration: 00:00:10.00, start: 0.000000, bitrate: 127 kb/s
Stream #0:0, 1, 1/1000: Video: av1 (libdav1d) (Main), 1 reference frame,
yuv420p10le(tv, ictcp/bt709/bt709), 320x180, 0/1, SAR 1:1 DAR 16:9, 24
fps, 24 tbr, 1k tbn
Metadata:
DURATION : 00:00:10.000000000
Successfully opened the file.
Parsing a group of options: output url -.
Applying option f (force container format (auto-detected otherwise)) with
argument lavfi.
Applying option vframes (set the number of video frames to output) with
argument 1.
Applying option vf (alias for -filter:v (apply filters to video streams))
with argument scale=1x1.
Applying option f (force container format (auto-detected otherwise)) with
argument null.
Successfully parsed a group of options.
Opening an output file: -.
[out#0/null @ 0x635303eba7c0] No explicit maps, mapping streams
automatically...
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Created video stream from
input stream 0:0
[AVFilterGraph @ 0x635303eb9200] Setting 'w' to value '1x1'
[Parsed_scale_0 @ 0x635303eb9500] w:1 h:1 flags:'' interl:0
[libdav1d @ 0x635303ebca80] libdav1d 1.5.1
[libdav1d @ 0x635303ebca80] Using 0 threads, 0 max_frame_delay
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (av1 (libdav1d) -> wrapped_avframe (native))
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Starting thread...
[vf#0:0 @ 0x635303eb9140] Starting thread...
[vist#0:0/av1 @ 0x635303eba600] [dec:libdav1d @ 0x635303ebc240] Starting
thread...
[in#0/matroska,webm @ 0x635303eb4600] Starting thread...
[libdav1d @ 0x635303eb9f40] Frame 16: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 8: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 4: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 2: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 1: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 3: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 6: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 5: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 7: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 12: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 10: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 9: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 11: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[AVFilterGraph @ 0x7755a8001000] Setting 'w' to value '1x1'
detected 20 logical cores
[libdav1d @ 0x635303eb9f40] Frame 14: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 13: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[Parsed_scale_0 @ 0x7755a8003d80] w:1 h:1 flags:'' interl:0
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'video_size' to
value '320x180'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'pix_fmt' to
value '62'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'time_base' to
value '1/1000'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'pixel_aspect'
to value '1/1'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'colorspace' to
value '14'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'range' to value
'1'
[graph -1 input from stream 0:0 @ 0x7755a8011840] Setting 'frame_rate' to
value '24/1'
[libdav1d @ 0x635303eb9f40] Frame 15: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[graph -1 input from stream 0:0 @ 0x7755a8011840] w:320 h:180
pixfmt:yuv420p10le tb:1/1000 fr:24/1 sar:1/1 csp:ictcp range:tv
[libdav1d @ 0x635303eb9f40] Frame 32: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 24: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 20: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 18: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[libdav1d @ 0x635303eb9f40] Frame 17: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[auto_scale_0 @ 0x7755a80139c0] w:iw h:ih flags:'' interl:0
[Parsed_scale_0 @ 0x7755a8003d80] auto-inserting filter 'auto_scale_0'
between the filter 'graph -1 input from stream 0:0' and the filter
'Parsed_scale_0'
Impossible to convert between the formats supported by the filter 'graph
-1 input from stream 0:0' and the filter 'auto_scale_0'
[libdav1d @ 0x635303eb9f40] Frame 19: size 320x180 upscaled 320 render
320x180 subsample 2x2 bitdepth 10 tiles 1x1.
[vf#0:0 @ 0x635303eb9140] Error reinitializing filters!
[vf#0:0 @ 0x635303eb9140] Task finished with error code: -38 (Function not
implemented)
[out#0/null @ 0x635303eba7c0] sq: 0 EOF
[out#0/null @ 0x635303eba7c0] sq: finish 0; head ts NOPTS
[out#0/null @ 0x635303eba7c0] sq: finish queue
[vf#0:0 @ 0x635303eb9140] Terminating thread with return code -38
(Function not implemented)
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Encoder thread received EOF
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Could not open encoder before
EOF
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Task finished with error code:
-22 (Invalid argument)
[vost#0:0/wrapped_avframe @ 0x635303eb8bc0] Terminating thread with return
code -22 (Invalid argument)
[vist#0:0/av1 @ 0x635303eba600] [dec:libdav1d @ 0x635303ebc240] Decoder
returned EOF, finishing
[vist#0:0/av1 @ 0x635303eba600] [dec:libdav1d @ 0x635303ebc240]
Terminating thread with return code 0 (success)
[vist#0:0/av1 @ 0x635303eba600] All consumers of this stream are done
[in#0/matroska,webm @ 0x635303eb4600] All consumers are done
[in#0/matroska,webm @ 0x635303eb4600] Terminating thread with return code
0 (success)
[out#0/null @ 0x635303eba7c0] Nothing was written into output file,
because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
[in#0/matroska,webm @ 0x635303eb4600] Input file #0 (in.mkv):
[in#0/matroska,webm @ 0x635303eb4600] Input stream #0:0 (video): 20
packets read (5580 bytes); 7 frames decoded; 0 decode errors;
[in#0/matroska,webm @ 0x635303eb4600] Total: 20 packets (5580 bytes)
demuxed
[AVIOContext @ 0x635303ebd1c0] Statistics: 32768 bytes read, 0 seeks
Conversion failed!
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11500#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list