#11113: output option `-f ffmetadata` may stop the filter chain application
-------------------------------------+-------------------------------------
             Reporter:  Hunter       |                     Type:  defect
  Hogan                              |
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  ffmetadata   |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 In some configurations, `-f ffmetadata` as an output option will prevent
 the filter chain from being applied.

 ----

 How to reproduce:
 {{{
 % ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -f ffmetadata -c
 pcm_f32le basic_no_map.ffmeta
 }}}

 But, `-filter_complex` works:
 {{{
 ffmpeg -hide_banner -i test.wav -filter_complex
 "astats=measure_perchannel=none:measure_overall=Entropy" -f ffmetadata -c
 pcm_f32le complex_no_map.ffmeta
 }}}

 As does `-f lavfi -i amovie=`:
 {{{
 ffmpeg -hide_banner -f lavfi -i
 "amovie=test.wav,astats=measure_perchannel=none:measure_overall=Entropy"
 -f ffmetadata -c pcm_f32le lavfi_no_map.ffmeta
 }}}

 ----

 But, this triad is different:
 `-filter` does not work:
 {{{
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -f ffmetadata
 basic_no_map_no_codec.ffmeta
 }}}

 And `-filter_complex` gives an error:
 {{{
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -c pcm_f32le -f
 ffmetadata basic_codec_ffmetadata_map_null.ffmeta -map 0 -f null -
 [aost#0:0 @ 0000022a8a09aa40] Automatic encoder selection failed Default
 encoder for format ffmetadata (codec none) is probably disabled. Please
 choose an encoder manually.
 }}}

 But, `-f lavfi -i amovie=` works correctly:
 {{{
 ffmpeg -hide_banner -f lavfi -i
 "amovie=test.wav,astats=measure_perchannel=none:measure_overall=Entropy"
 -f ffmetadata lavfi_no_map_no_codec.ffmeta
 }}}

 ----

 The same thing happens with `aspectralstats` (stdout is empty):
 {{{
 ffmpeg -hide_banner -i test.wav -filter
 "aspectralstats=measure=mean,ametadata=print:file=-" -f ffmetadata -c
 pcm_f32le aspectralstats_basic_no_map.ffmeta
 }}}

 ----

 The same triad with `signalstats`:
 `-filter` does not work:
 {{{
 ffmpeg -hide_banner -i test/testVideo11sec.mkv -filter
 "signalstats,metadata=print:file=-" -f ffmetadata
 signalstats_basic_no_map_no_codec.ffmeta
 }}}

 `-filter_complex` gives an error:
 {{{
 ffmpeg -hide_banner -i test/testVideo11sec.mkv -filter_complex
 "signalstats,metadata=print:file=-" -f ffmetadata
 signalstats_complex_no_map_no_codec.ffmeta
 [vost#0:0 @ 000001c885cc8040] Automatic encoder selection failed Default
 encoder for format ffmetadata (codec none) is probably disabled. Please
 choose an encoder manually.
 }}}

 `-f lavfi -i movie=` works:
 {{{
 ffmpeg -hide_banner -f lavfi -i
 "movie=test/testVideo11sec.mkv,signalstats,metadata=print:file=-" -f
 ffmetadata signalstats_lavfi_no_map_no_codec.ffmeta
 }}}

 ----

 The contents of the FFmetadata file ''sometimes'' correlates with success
 or failure.

 Success: complex_no_map.ffmeta:
 {{{
 ;FFMETADATA1
 encoder=Lavf61.3.104
 [STREAM]
 encoder=Lavc61.7.100 pcm_f32le
 [CHAPTER]
 TIMEBASE=1/48000
 START=132003
 END=302400
 title=bike\\shed
 }}}

 Failure: basic_no_map.ffmeta:
 {{{
 ;FFMETADATA1
 encoder=Lavf61.3.104
 [CHAPTER]
 TIMEBASE=1/48000
 START=132003
 END=302400
 title=bike\\shed
 }}}

 ----

 Can also reproduce, at a minimum, with:
 {{{
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -c pcm_f32le -f
 ffmetadata basic_codec_ffmetadata_map_null.ffmeta -map 0 -f null -
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -c pcm_f32le -f
 ffmetadata basic_codec_map_null.ffmeta -map 0 -f null -
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -map 0 -f
 ffmetadata basic_map_no_codec.ffmeta
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -f ffmetadata
 basic_map_null.ffmeta -map 0 -f null -
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -c pcm_f32le -f
 ffmetadata basic_no_map_codec_first.ffmeta
 ffmpeg -hide_banner -i test.wav -filter
 "astats=measure_perchannel=none:measure_overall=Entropy" -f ffmetadata
 basic_no_map_no_codec.ffmeta
 }}}

 FFmpeg version:
 {{{
 ffmpeg version N-115666-gae00db87ca-g417957ec5e+3 Copyright (c) 2000-2024
 the FFmpeg developers
   built with gcc 14.1.0 (Rev3, Built by MSYS2 project)
   configuration:  --pkg-config=pkgconf --cc='ccache gcc' --cxx='ccache
 g++' --ld='ccache g++' --extra-cxxflags=-fpermissive --extra-cflags=-Wno-
 int-conversion --disable-autodetect --enable-amf --enable-bzlib --enable-
 d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-zlib
 --enable-sdl2 --enable-libmp3lame --enable-libopus --enable-libvorbis
 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d
 --enable-libaom --disable-debug --enable-libfdk-aac --enable-fontconfig
 --enable-libass --enable-libfreetype --enable-libmysofa --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora
 --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-
 libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl
 --enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3
 --enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf
 --enable-libsvtav1 --enable-chromaprint   libavutil      59. 21.100 / 59.
 21.100
   libavcodec     61.  7.100 / 61.  7.100
   libavformat    61.  3.104 / 61.  3.104
   libavdevice    61.  2.100 / 61.  2.100
   libavfilter    10.  2.102 / 10.  2.102
   libswscale      8.  2.100 /  8.  2.100
   libswresample   5.  2.100 /  5.  2.100
   libpostproc    58.  2.100 / 58.  2.100
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11113>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to