Opened 3 years ago
Last modified 2 months ago
#10207 open defect
aac 6 channels -> ac3 6 channels fails (Back Centre, Cb not supported)
| Reported by: | Andres Rohr | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | unspecified | Keywords: | aac, ac3 |
| Cc: | Andres Rohr | Blocked By: | |
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
If I use the full build of current https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest of 2023-02-18 (Windows version) to convert a video that has a 6 channels aac stream to an ac3 6 channels stream it says "Channel layout change is not supported" and "Not yet implemented". But if I use a nearly 2 year old build from https://github.com/mannyamorim/ffmpeg-windows-builds it can do it. I suggest to compare the 6 channel processing of the two releases and if possible incorporate the working code from the old release into the most recent build.
Output of https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest of 2023-02-18
"C:\Program Files\ffmpeg-master-latest-win64-gpl 2023-02-18\bin\ffmpeg.exe" -hide_banner -y -i "D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example.mp4" -map 0:0 -map 0:1 -c:v:0 h264 -c:a:0 ac3 -b:v:0 2500k -pix_fmt:0 yuv420p -f mp4 "D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example (2).mp4" (20.02.2023 17:15:43)
Guessed Channel Layout for Input Stream #0.1 : 5.1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf60.2.100
Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 2733 kb/s, 24 fps, 24 tbr, 12288 tbn (default)
Metadata:
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 6 channels, fltp, 394 kb/s (default)
Metadata:
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> ac3 (native))
[Parsed_anull_0 @ 000000000305ee40] Channel layout change is not supported
Error while filtering: Not yet implemented in FFmpeg, patches welcome
Failed to inject frame into filter network: Not yet implemented in FFmpeg, patches welcome
Error while processing the decoded data for stream #0:1
Conversion failed!
Output of
https://github.com/mannyamorim/ffmpeg-windows-builds (which redirects to https://sourceforge.net/projects/ffmpeg-windows-builds/files/release/) of 2021-04-27
"C:\Program Files\ffmpeg 4.4 alt\ffmpeg.exe" -hide_banner -y -i "D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example.mp4" -map 0:0 -map 0:1 -c:v:0 h264 -c:a:0 ac3 -b:v:0 2500k -f mp4 "D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example (7).mp4" (20.02.2023 19:03:21)
Guessed Channel Layout for Input Stream #0.1 : 5.1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf60.2.100
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 2733 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)
Metadata:
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> ac3 (native))
[libx264 @ 000000000319e840] using SAR=1/1
[libx264 @ 000000000319e840] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000000000319e840] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 000000000319e840] 264 - core 161 r3049M 55d517b - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=6 lookahead_threads=1 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=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=2500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'D:\Video Tests für MMX\Konversionsprobleme\6 channels\6 channel conversion problem example (7).mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.76.100
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 2500 kb/s, 24 fps, 12288 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc58.134.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/2500000 buffer size: 0 vbv_delay: N/A
Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1, fltp, 448 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
encoder : Lavc58.134.100 ac3
video:3303kB audio:548kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.195004%
[libx264 @ 000000000319e840] frame I:3 Avg QP:11.21 size: 78722
[libx264 @ 000000000319e840] frame P:67 Avg QP:13.44 size: 24313
[libx264 @ 000000000319e840] frame B:171 Avg QP:15.30 size: 8867
[libx264 @ 000000000319e840] consecutive B-frames: 1.2% 2.5% 29.9% 66.4%
[libx264 @ 000000000319e840] mb I I16..4: 33.1% 39.9% 27.1%
[libx264 @ 000000000319e840] mb P I16..4: 1.4% 3.2% 0.5% P16..4: 35.0% 9.1% 4.1% 0.0% 0.0% skip:46.8%
[libx264 @ 000000000319e840] mb B I16..4: 0.1% 0.3% 0.0% B16..8: 31.0% 2.4% 0.4% direct: 0.9% skip:64.8% L0:44.7% L1:53.2% BI: 2.1%
[libx264 @ 000000000319e840] final ratefactor: 17.93
[libx264 @ 000000000319e840] 8x8 transform intra:53.9% inter:79.6%
[libx264 @ 000000000319e840] coded y,uvDC,uvAC intra: 55.0% 71.4% 48.1% inter: 8.8% 9.3% 1.0%
[libx264 @ 000000000319e840] i16 v,h,dc,p: 45% 19% 10% 26%
[libx264 @ 000000000319e840] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 20% 29% 5% 6% 7% 5% 6% 5%
[libx264 @ 000000000319e840] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 14% 17% 12% 12% 8% 7% 7% 5%
[libx264 @ 000000000319e840] i8c dc,h,v,p: 58% 18% 16% 8%
[libx264 @ 000000000319e840] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000000000319e840] ref P L0: 66.1% 4.1% 19.0% 10.8%
[libx264 @ 000000000319e840] ref B L0: 80.5% 15.6% 3.9%
[libx264 @ 000000000319e840] ref B L1: 96.6% 3.4%
[libx264 @ 000000000319e840] kb/s:2693.89
Success!
Attachments (1)
Change History (7)
by , 3 years ago
| Attachment: | 6 channel conversion problem example.mp4 added |
|---|
comment:1 by , 3 years ago
| Keywords: | 6 channels removed |
|---|---|
| Status: | new → open |
| Summary: | aac 6 channels -> ac3 6 channels fails → aac 6 channels -> ac3 6 channels fails (Back Centre, Cb not supported)) |
comment:2 by , 3 years ago
| Summary: | aac 6 channels -> ac3 6 channels fails (Back Centre, Cb not supported)) → aac 6 channels -> ac3 6 channels fails (Back Centre, Cb not supported) |
|---|
comment:3 by , 3 years ago
so it needs convertion and we do not support that.
On the other hand what convertion can it be? Are we even allowed to add so different channel into other channels?
comment:4 by , 3 years ago
Thanks for the quick response.
I see. Tested that specifying the output option "-ac 5" drops the Back Centre and solves the problem. But the average user can't understand why the processing fails. He doesn't know which channels are inside. If there would be a clearer info that only one channel is making all the trouble and that reducing the channels with "-ac 5" would solve the problem, would be a nice addition.
comment:5 by , 3 months ago
Well, this is "fixed" now... Except it writes LFE channel now instead of Cb. Weird stuff.
So not really fixed, but broken...
-c:a:0 aac still says
Unsupported channel layout "6 channels"
This is more correct:
ffmpeg -i input.mp4 -c:v copy -af "pan=5.1|c0=c0|c1=c1|c2=c2|c3=c3|c4=c4+0.5*c6|c5=c5+0.5*c6" -c:a ac3 -b:a 640k output.mp4
c4=c4+0.5*c6: Maps the 5th input channel (Surround Left) and mixes in 50% of the 7th channel (Back Center).
c5=c5+0.5*c6: Maps the 6th input channel (Surround Right) and mixes in 50% of the 7th channel (Back Center).
comment:6 by , 2 months ago
This whole back center is what Dolby Surround EX is. https://en.wikipedia.org/wiki/Surround_channels#/media/File:6_1_channels_surround_sound.svg
Dunno this is still not recognised as back center ffmpeg even after all recent aacdec changes.



"aac 6 channels" Your little file has Cb channel in place of LFE. That channel is Back Centre. We do support this, but AC3 does not, so it needs convertion and we do not support that.
See this for clarity, last MediaInfo Name says that Cb means back center that is right behind your head perfectly. https://mediaarea.net/AudioChannelLayout
Older version just creates L R C Ls Rs file, i.e. 5.0 file.