Opened 7 years ago

Closed 6 years ago

#6318 closed defect (fixed)

Problem with -filter_complex and DNxHD with ffmpeg 3.3

Reported by: Paul Pacifico Owned by:
Priority: important Component: avfilter
Version: git-master Keywords: dnxhd amerge regression
Cc: Marton Balint Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Hello everyone,

This is my first post and i'm french user so please be indulgent with my english.

Since ffmpeg build 3.3 is out, i've got a problem when using -filter_complex with video AND amerge audio filter.

This is my command :

ffmpeg -i "DNxHD_4_Mono_Channels.mov" -c:v libx264 -filter_complex "[0:v]yadif=0:1:0[vout];[0:a:0][0:a:1]amerge=inputs=2[aout]" -map [vout] -map [aout] "test.mp4"

and the log :

ffmpeg version 3.3-tessus Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-libzvbi --enable-version3 --disable-ffplay --disable-indev=qtkit
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/nodal3/Desktop/DNxHD_4_Mono_Channels.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2017-04-14T09:15:38.000000Z
    timecode        : 01:00:00:00
  Duration: 00:01:17.40, start: 0.000000, bitrate: 123546 kb/s
    Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709/unknown/unknown), 1920x1080, 121241 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25k tbn, 25k tbc (default)
    Metadata:
      creation_time   : 2017-04-14T09:15:38.000000Z
      handler_name    : Apple Alias Data Handler
      encoder         : Avid DNxHD Codec
    Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2017-04-14T09:15:38.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)
    Metadata:
      creation_time   : 2017-04-14T09:15:39.000000Z
      handler_name    : Apple Alias Data Handler
    Stream #0:3(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2017-04-14T09:16:05.000000Z
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
Stream mapping:
  Stream #0:0 (dnxhd) -> yadif
  Stream #0:1 (pcm_s24le) -> amerge:in0
  Stream #0:2 (pcm_s24le) -> amerge:in1
  yadif -> Stream #0:0 (libx264)
  amerge -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[Parsed_amerge_1 @ 0x7f93c3400500] No channel layout for input 1
[Parsed_amerge_1 @ 0x7f93c3400500] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
Error while filtering
Failed to inject frame into filter network: Cannot allocate memory
Error while processing the decoded data for stream #0:0
Conversion failed!

I tried to to set layout to mono for inputs -> no success
But it works with amix, and it works with Apple ProRes file with same audio mapping...

This same command line works perfectly with ffmpeg build 3.2.4

Looking for a solution, thanks for all.

Paul Pacifico.

Change History (12)

comment:1 by Carl Eugen Hoyos, 7 years ago

Component: ffmpegundetermined
Keywords: regression added; error removed
Priority: normalimportant

Do I understand correctly that your issue is not reproducible with "ffmpeg-85480-g18490c", the current version on http://evermeet.cx/ffmpeg?

comment:2 by Paul Pacifico, 7 years ago

The issue is also reproducible with ffmpeg nightly build.

Last edited 7 years ago by Paul Pacifico (previous) (diff)

comment:3 by Carl Eugen Hoyos, 7 years ago

Please provide an input sample.

comment:4 by Paul Pacifico, 7 years ago

Here is an input sample :

https://mega.nz/#!xpogwbDT!gtYFUopdhvqvW8E4knD1rqTTQLaI3bu3CrFVcJVEQSM

I tested today with last FFmpeg build ffmpeg-85548-g3390a2b, same error.

comment:5 by Marton Balint, 7 years ago

Reproduced by developer: set

Reproducible with -threads 11 or more:

ffmpeg -threads 11 -i "DNxHD_4_Mono_Channels.mov" -filter_complex "[0:v]null[vout];[0:a:0][0:a:1]amerge[aout]" -map [vout] -map [aout] "test.mp4"

Regression since af1761f7b5b1b72197dc40934953b775c2d951cc.

comment:6 by Paul Pacifico, 7 years ago

Rewrapping DNxHD with .mxf container to .mov is also not working with last build ffmpeg-85548-g3390a2b.

Input sample :

https://mega.nz/#!lpoDSQQb!A1YmzIAIC6osbPS3u0boIbwa1Ys0JN6LtvNcNOkslZU

Command line used :

ffmpeg -i "DNxHD.mxf" -c copy "test.mov"

Output is empty, still working on ffmpeg build 3.2.4

Segmentation Fault 11 on some clips

Last edited 7 years ago by Paul Pacifico (previous) (diff)

comment:7 by Marton Balint, 7 years ago

Cc: Marton Balint added

You should open a separate ticket for that, as that seems like another regression since e1940d2458353943e2fab6bdb87d2278077e22a5.

comment:8 by Marton Balint, 7 years ago

Created ticket #6344 for the second issue.

comment:9 by Marton Balint, 7 years ago

A workaround for this is to increase FF_BUFQUEUE_SIZE in libavfilter/bufferqueue.h. A more proper fix might be to buffer incoming packets instead of decoded frames in ffmpeg.c?

comment:10 by Elon Musk, 6 years ago

A proper fix is to port amerge to activate API, which I just did.

comment:11 by Elon Musk, 6 years ago

Component: undeterminedavfilter

comment:12 by Elon Musk, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.