Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#4835 closed defect (fixed)

Using -ac:a:0 6 with DCA as codec fails

Reported by: microchip Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: dca
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: When using -ac:a:0 6 with dca as encoder, ffmpeg errors out with DCA saying that channel layout 5.1 is not supported. If I use -ac:a:0 9 instead, the encoding works and dca uses 5.1 channels

How to reproduce:

ffmpeg -i DLNA/Punk/Nemesis.mkv -map_metadata -1 -map 0:0 -c:v libx264 -map 0:1 -c:a:0 dca -b:a:0 1509k -ac:a:0 6 -strict -2 -y output.mkv
ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8 (SUSE Linux)
  configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-pic --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --datadir=/usr/share/ffmpeg --enable-avfilter --enable-libpulse --enable-libwebp --enable-libvpx --enable-libopus --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libx265 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample --enable-libtwolame --enable-libvo-aacenc --enable-gnutls --enable-libass --enable-frei0r --enable-libcelt --enable-libcdio --enable-ladspa
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 36.100 / 56. 36.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, matroska,webm, from 'DLNA/Punk/Nemesis.mkv':
  Metadata:
    encoder         : libebml v1.3.0 + libmatroska v1.4.1
    creation_time   : 2014-08-05 07:59:22
  Duration: 01:35:41.28, start: 0.000000, bitrate: 10257 kb/s
    Stream #0:0: Video: h264 (High), yuv420p, 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_DATE_UTC: 2014-08-05 07:59:22
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-08-05 07:59:22
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 9359707
      BPS-eng         : 9359707
      DURATION        : 01:35:41.277000000
      DURATION-eng    : 01:35:41.277000000
      NUMBER_OF_FRAMES: 137653
      NUMBER_OF_FRAMES-eng: 137653
      NUMBER_OF_BYTES : 6717083928
      NUMBER_OF_BYTES-eng: 6717083928
    Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
    Metadata:
      title           : AC-3 5.1
      _STATISTICS_WRITING_APP: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_DATE_UTC: 2014-08-05 07:59:22
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-08-05 07:59:22
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 448000
      BPS-eng         : 448000
      DURATION        : 01:35:41.120000000
      DURATION-eng    : 01:35:41.120000000
      NUMBER_OF_FRAMES: 179410
      NUMBER_OF_FRAMES-eng: 179410
      NUMBER_OF_BYTES : 321502720
      NUMBER_OF_BYTES-eng: 321502720
    Stream #0:2(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Metadata:
      title           : AC-3 5.1
      _STATISTICS_WRITING_APP: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.1.0 ('Good Love') 64bit built on Jul 27 2014 15:30:41
      _STATISTICS_WRITING_DATE_UTC: 2014-08-05 07:59:22
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-08-05 07:59:22
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 448000
      BPS-eng         : 448000
      DURATION        : 01:35:41.248000000
      DURATION-eng    : 01:35:41.248000000
      NUMBER_OF_FRAMES: 179414
      NUMBER_OF_FRAMES-eng: 179414
      NUMBER_OF_BYTES : 321509888
      NUMBER_OF_BYTES-eng: 321509888
[libx264 @ 0xd395a0] using SAR=1/1
[libx264 @ 0xd395a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
[libx264 @ 0xd395a0] profile High, level 4.0
[libx264 @ 0xd395a0] 264 - core 148 r2597 e86f3a1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[dca @ 0xd09c60] Specified channel layout '5.1' is not supported
Output #0, matroska, to 'output.mkv':
    Stream #0:0: Video: h264 (libx264), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 23.98 tbn, 23.98 tbc (default)
    Metadata:
      encoder         : Lavc56.41.100 libx264
    Stream #0:1: Audio: dts, 0 channels, 128 kb/s (default)
    Metadata:
      encoder         : Lavc56.41.100 dca
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (ac3 (native) -> dts (dca))
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (11)

comment:1 by microchip, 9 years ago

Anyone?

comment:2 by Elon Musk, 9 years ago

I will look when I find time.

comment:3 by Elon Musk, 9 years ago

with 6 as number of channels, ffmpeg picks 5.1 channel layout. which is not supported by dcaenc. But 5.1(side) channel layout is suppported.

But encoding here stereo to 5.1(side) results with right channel into center one, which is wrong.

comment:4 by microchip, 9 years ago

I see, so I can use -channel_layout:a:0 "5.1(side)" to work it around (just tested it locally and it works)

comment:5 by Elon Musk, 9 years ago

Yes, but note that FC channel and probably LFE too is misplaced at least when going from stereo.

comment:6 by microchip, 9 years ago

OK, noted, but I always encode from 5.1 -> 5.1. But fix that stereo -> 5.1 issue if you can :)

comment:7 by Elon Musk, 9 years ago

I just tried from 5.1 to 5.1 and channels are messed up and side left is completly gone, can you confirm this?

comment:8 by microchip, 9 years ago

Yes, I can confirm. I only need DTS very rarely as I always use AC3 but you are right the channels are messed up

comment:9 by Elon Musk, 9 years ago

Looks like fixing it would not be that hard I'm working right now on it.

comment:10 by Elon Musk, 9 years ago

Resolution: fixed
Status: newclosed

Issue with channels mapping and lfe channel fixed.

comment:11 by Carl Eugen Hoyos, 9 years ago

Keywords: dca added
Version: 2.7git-master
Note: See TracTickets for help on using tickets.