GyanD / codexffmpeg

Support for https://www.gyan.dev/ffmpeg
1.31k stars 102 forks source link

v7 aevalsrc filter error #125

Closed tikuma-lsuhsc closed 2 months ago

tikuma-lsuhsc commented 2 months ago

The following command with the aevalsrc filter as an input fails in Windows v7 build:

ffmpeg -f lavfi -i "aevalsrc=sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC" -t 1  -

The filter definition is straight out of the documentation. The log reads as follows:

ffmpeg version 7.0-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
[Parsed_aevalsrc_0 @ 0000025c8fcea680] Invalid channel layout 'FC|BC'
[AVFilterGraph @ 0000025c8fce08c0] Error processing filtergraph: Invalid argument
[in#0 @ 0000025c8fcdfd00] Error opening input: Invalid argument
Error opening input file aevalsrc=sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC.
Error opening input files: Invalid argument

The CI for my ffmpegio Python package flagged this error only in Windows environment (more accurately the same test passes in Ubuntu and the CI hasn't reached MacOS run yet due to this error in Windows), and this same command has been working in the previous FFmpeg versions. For your reference, here is the link to the GitHub test summary for your reference.

Thanks for looking into this.

GyanD commented 2 months ago

The API used to parse the channel layout changed in 7.0. Your Ubuntu CI uses 6.1.

Change to c=FC+BC

tikuma-lsuhsc commented 2 months ago

Ah. Thanks for the clarification. So the online documentation is behind too. Will fix the CI accordingly (or rather drop the channel option).