Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#11016 closed defect (fixed)

-channel_layout input flag stopped working

Reported by: Derek Prestegard Owned by:
Priority: important Component: ffmpeg
Version: 7.0 Keywords: regression
Cc: Derek Prestegard, Marton Balint Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
I deal with wacky QuickTime MOVs with lots of different combinations of audio tracks. Often I need to extract 2 or 6 channels and use the amerge filter to make a multi-channel track to pass downstream for AAC encoding etc.

Sometimes the channel layouts of these input files are wrong, and sometimes they use labels that FFmpeg doesn't understand. So, several years ago I found that simply adding "-channel_layout mono" prior to the input file was a nice way to make ffmpeg just treat each channel as "mono" which avoided chaos downstream with amerge.

However, this seems to have broken recently. I'm on 7.0 (also tried a recent build from git head) and it doesn't seem to have any effect.

How to reproduce:

% ffmpeg -channel_layout mono -i sample_24_track_crazy.mov  -filter_complex "[0:18][0:18]amerge=inputs=2[aout]" -map "[aout]" -c:a pcm_s24le foo.wav

ffmpeg version N-115032-g127e7e4249-gb7debef3cc+1 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev6, 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-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --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-libbluray --enable-libfreetype --enable-libmfx --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-decklink --enable-libcdio --enable-libfribidi --enable-librist --enable-librtmp --enable-librubberband --enable-libzvbi --enable-openal --enable-libcodec2 --enable-ladspa --enable-libglslang --enable-vulkan --enable-libplacebo --enable-libjxl --enable-opencl --enable-opengl --enable-libnpp --enable-openssl --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads --enable-nonfree --extra-cflags='-IC:/PROGRA~1/NVIDIA~2/CUDA/v12.4/include' --extra-ldflags='-LC:/PROGRA~1/NVIDIA~2/CUDA/v12.4/lib/x64' --extra-cflags=-DAL_LIBTYPE_STATIC --extra-cflags='-IC:/media-autobuild_suite/local64/include' --extra-cflags='-IC:/media-autobuild_suite/local64/include/AL'
  libavutil      59. 16.101 / 59. 16.101
  libavcodec     61.  5.103 / 61.  5.103
  libavformat    61.  3.103 / 61.  3.103
  libavdevice    61.  2.100 / 61.  2.100
  libavfilter    10.  2.101 / 10.  2.101
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
[aist#0:2/pcm_s24le @ 000001c76394e340] Guessed Channel Layout: mono
[aist#0:6/pcm_s24le @ 000001c76392a840] Guessed Channel Layout: mono
[aist#0:17/pcm_s24le @ 000001c763951340] Guessed Channel Layout: mono
[aist#0:20/pcm_s24le @ 000001c763950e00] Guessed Channel Layout: mono
[aist#0:21/pcm_s24le @ 000001c763950fc0] Guessed Channel Layout: mono
[aist#0:24/pcm_s24le @ 000001c7639516c0] Guessed Channel Layout: mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample_24_track_crazy.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537134592
    compatible_brands: qt
    creation_time   : 2024-05-16T20:37:59.000000Z
    encoder         : Telestream Media Framework Local 999999
    encoder-eng     : Telestream Media Framework Local 999999
    com.apple.quicktime.software: Telestream Media Framework Local 999999
    timecode        : 00:00:00:00
  Duration: 00:00:00.88, start: 0.000000, bitrate: 31912 kb/s
  Stream #0:0[0x1](eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        handler_name    : Time Code Media Handler
        reel_name       : Unnamed
        timecode        : 00:00:00:00
  Stream #0:1[0x2](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:3[0x4](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FLC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:4[0x5](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:5[0x6](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:6[0x7](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:7[0x8](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:8[0x9](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (SL), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:9[0xa](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:10[0xb](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (LFE), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:11[0xc](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:12[0xd](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:13[0xe](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FL), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:14[0xf](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (SR), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:15[0x10](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBR), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:16[0x11](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBC), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:17[0x12](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:18[0x13](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (UNSD), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:19[0x14](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DL), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:20[0x15](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:21[0x16](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:22[0x17](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:23[0x18](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
  Stream #0:24[0x19](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
      Metadata:
        creation_time   : 2024-05-16T20:37:59.000000Z
        vendor_id       : [0][0][0][0]
File 'foo.wav' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:18 (pcm_s24le) -> amerge
  Stream #0:18 (pcm_s24le) -> amerge
  amerge:default -> Stream #0:0 (pcm_s24le)
Press [q] to stop, [?] for help
[Parsed_amerge_0 @ 000001c763949140] No channel layout for input 1
[fc#0 @ 000001c7638ffb80] Error while filtering: Cannot allocate memory
[fc#0 @ 000001c7638ffb80] Task finished with error code: -12 (Cannot allocate memory)
[fc#0 @ 000001c7638ffb80] Terminating thread with return code -12 (Cannot allocate memory)
[aost#0:0/pcm_s24le @ 000001c76391d140] Could not open encoder before EOF
[aost#0:0/pcm_s24le @ 000001c76391d140] Task finished with error code: -22 (Invalid argument)
[aost#0:0/pcm_s24le @ 000001c76391d140] Terminating thread with return code -22 (Invalid argument)
[out#0/wav @ 000001c76394eac0] Nothing was written into output file, because at least one of its streams received no packets.
size=       0KiB time=N/A bitrate=N/A speed=N/A
Conversion failed!

Attachments (1)

sample_24_track_crazy.zip (4.5 KB ) - added by Derek Prestegard 2 years ago.
short 24 track pcm_s24le mov with a weird channel label that ffmpeg does not understand on track index 18

Download all attachments as: .zip

Change History (6)

by Derek Prestegard, 2 years ago

Attachment: sample_24_track_crazy.zip added

short 24 track pcm_s24le mov with a weird channel label that ffmpeg does not understand on track index 18

comment:1 by Derek Prestegard, 2 years ago

I confirmed this works fine on 6.0 and is broken in 7.0

ffmpeg version 6.0.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10.2.1 (Alpine 10.2.1_pre1) 20201203
  configuration: --disable-debug --disable-doc --disable-ffplay --enable-fontconfig --enable-gpl --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libfdk_aac --enable-libfreetype --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libsrt --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nonfree --enable-openssl --enable-postproc --enable-shared --enable-small --enable-version3 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib --extra-libs=-ldl --extra-libs=-lpthread --prefix=/opt/ffmpeg
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.6 : mono
Guessed Channel Layout for Input Stream #0.17 : mono
Guessed Channel Layout for Input Stream #0.18 : mono
Guessed Channel Layout for Input Stream #0.20 : mono
Guessed Channel Layout for Input Stream #0.21 : mono
Guessed Channel Layout for Input Stream #0.24 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/sample_24_track_crazy.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537134592
    compatible_brands: qt
    creation_time   : 2024-05-16T20:37:59.000000Z
    encoder         : Telestream Media Framework Local 999999
    encoder-eng     : Telestream Media Framework Local 999999
    com.apple.quicktime.software: Telestream Media Framework Local 999999
    timecode        : 00:00:00:00
  Duration: 00:00:00.88, start: 0.000000, bitrate: 31912 kb/s
  Stream #0:0[0x1](eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      handler_name    : Time Code Media Handler
      reel_name       : Unnamed
      timecode        : 00:00:00:00
  Stream #0:1[0x2](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:3[0x4](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FLC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:4[0x5](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:5[0x6](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:6[0x7](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:7[0x8](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:8[0x9](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (SL), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:9[0xa](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:10[0xb](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (LFE), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:11[0xc](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:12[0xd](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:13[0xe](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FL), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:14[0xf](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (SR), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:15[0x10](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBR), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:16[0x11](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (TBC), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:17[0x12](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:18[0x13](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:19[0x14](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DL), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:20[0x15](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:21[0x16](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:22[0x17](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:23[0x18](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:24[0x19](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2024-05-16T20:37:59.000000Z
      vendor_id       : [0][0][0][0]
File '/mnt/foo.wav' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:18 (pcm_s24le) -> amerge
  Stream #0:18 (pcm_s24le) -> amerge
  amerge:default -> Stream #0:0 (pcm_s24le)
Press [q] to stop, [?] for help
[Parsed_amerge_0 @ 0x7fc2756c0a00] No channel layout for input 1
[Parsed_amerge_0 @ 0x7fc2756c0a00] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
Output #0, wav, to '/mnt/foo.wav':
  Metadata:
    major_brand     : qt
    minor_version   : 537134592
    compatible_brands: qt
    ISMP            : 00:00:00:00
    com.apple.quicktime.software: Telestream Media Framework Local 999999
    ISFT            : Lavf60.3.100
  Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s32, 2304 kb/s
    Metadata:
      encoder         : Lavc60.3.100 pcm_s24le
size=     252kB time=00:00:00.87 bitrate=2361.3kbits/s speed=24.3x
video:0kB audio:252kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.047278%
Last edited 2 years ago by Derek Prestegard (previous) (diff)

comment:2 by Marton Balint, 2 years ago

Cc: Marton Balint added
Component: undeterminedffmpeg
Keywords: regression added
Priority: normalimportant
Status: newopen

Sent a patch to fix this: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-May/327617.html

Although it is not entirely clear if the change that caused this (as in not being able to override channel layout via a decoder option) is intentional or not.

comment:3 by Derek Prestegard, 2 years ago

Thank you for the patches! I'm following the discussion on ffmpeg-devel and hope it gets approved soon :)

comment:4 by Marton Balint, 2 years ago

Resolution: fixed
Status: openclosed

comment:5 by Derek Prestegard, 2 years ago

Looks like this caused some unexpected (to me) side effects on multi-channel tracks.

It's pretty common practice in my workflows to always use

-channel_layout mono -i myInput.mov

to basically blank out all the channel labels of a source since I have my own heuristics for picking out channels. Historically this was also a no-op with multi-channel tracks, but now it seems that's no longer the case

[aist#0:1/pcm_s24le @ 0x558554e7dec0] Specified channel layout 'mono' has 1 channels, but input has 6 channels.
Error opening input file uhd_sdr_15_new.mov

Here's the streams in my source:

  Stream #0:1[0x2](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 5.1(side), s32 (24 bit), 6912 kb/s (default)
      Metadata:
        handler_name    : Apple Sound Media Handler
        vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
      Metadata:
        handler_name    : Apple Sound Media Handler
        vendor_id       : [0][0][0][0]

Is there any way to basically tell FFmpeg "Hey... if there's any tracks there with just one channel each, just pretend they're all mono" yet also have it leave the multi-channel tracks alone? I was a bit spoiled before, looks like...

I am testing out changing my code to make it a bit more adaptive, but I figured I'd ask.

Note: See TracTickets for help on using tickets.