#2865 closed enhancement (fixed)
Front Center, Downmix Left, and Downmix Right unlabelled in QTPlayer
Reported by: | CJ | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | avformat |
Version: | git-master | Keywords: | chan mov |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | yes |
Description
Summary of the bug: When the below command generates an MOV file, we open it in Quicktime Player to verify the track configuration is labelled correctly. On the 3rd, 7th, and 8th audio tracks (0:3,0:7,0:8) the audio assignment label (QT Player>Movie Properties>Audio Settings>Channel Assignment) does not appear and instead says "Mono" in the Quicktime UI. When I run the FFMPEG -i <input> command by itself on the produced file, "Center" or "FC" does not show up in that track and instead says "mono".
How to reproduce:
Command Line - %ffmpegpath% -i "%~dpnx1" -map 0:v:0 -c:v prores -profile:v 3 -filter:v "setsar=sar=10/11" -top:v -1 -filter_complex "[0:a:0]pan=FL:c0=c0[outFL]" -map [outFL] -filter_complex "[0:a:0]pan=FR:c0=c1[outFR]" -map [outFR] -filter_complex "[0:a:0]pan=FC:c0=c2[outFC]" -map [outFC] -filter_complex "[0:a:0]pan=LFE:c0=c3[outLFE]" -map [outLFE] -filter_complex "[0:a:0]pan=BL:c0=c4[outBL]" -map [outBL] -filter_complex "[0:a:0]pan=BR:c0=c5[outBR]" -map [outBR] -filter_complex "[0:a:0]pan=DL:c0=c6[outDL]" -map [outDL] -filter_complex "[0:a:0]pan=DR:c0=c7[outDR]" -map [outDR] -c:a pcm_s24le -timecode 00:59:59:00 -f mov -y "%~dpn1_ProResHQ.mov"
ffmpeg version built on ... 07/02/2013
Analysis of Output Console Readout - ffmpeg version N-54362-ge0be3cb Copyright (c) 2000-2013 the FFmpeg developers built on Jul 2 2013 22:15:59 with gcc 4.7.3 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo- amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs -- enable-libxvid --enable-zlib libavutil 52. 38.100 / 52. 38.100 libavcodec 55. 18.100 / 55. 18.100 libavformat 55. 11.100 / 55. 11.100 libavdevice 55. 2.100 / 55. 2.100 libavfilter 3. 77.101 / 3. 77.101 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'T:\prores_inbound\SD_TESTING\SD_IVTC_8c hannel_ProResHQ_metasave.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2013-08-14 20:10:39 encoder : Lavf55.11.100 Duration: 00:00:10.01, start: 0.000000, bitrate: 51014 kb/s Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le, 720x480, 4 1831 kb/s, SAR 10:11 DAR 15:11, 23.98 fps, 23.98 tbr, 11988 tbn, 11988 tbc Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler timecode : 00:59:59:00 Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FL), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (LFE), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BL), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BR), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DL), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DR), s32, 1152 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler Stream #0:9(eng): Data: none (tmcd / 0x64636D74), 0 kb/s Metadata: creation_time : 2013-08-14 20:10:39 handler_name : Apple Alias Data Handler timecode : 00:59:59:00 At least one output file must be specified
BTW, if you find a better way to do this command, I would really appreciate it. We need 8 mono tracks in an MOV with ProResHQ and this command does 95% of the job whereas our current process does about 65% of the job.
Attachments (2)
Change History (16)
by , 11 years ago
Attachment: | SD_IVTC_8channel_ProResHQ_test.mov added |
---|
comment:1 by , 11 years ago
Component: | FFmpeg → avformat |
---|---|
Keywords: | chan added; Quicktime Channel Metadata ProResHQ removed |
Priority: | normal → wish |
Type: | defect → enhancement |
Version: | unspecified → git-master |
Could you provide a mov sample that shows the intended layout in QuickTime?
by , 11 years ago
Attachment: | SD_IVTC_8channel_ProResHQ_test_withT3.7.8_labels.mov added |
---|
Asset with labelling provided by QT Player. Same video and audio.
follow-up: 3 comment:2 by , 11 years ago
Thank you so much for looking into this. I only called it a defect as 5 of the 8 tracks were working so I thought it was a bug. Anyway, the attached file is almost the same asset, but now with QTPlayer's labelling included. You'll see in QTPlayer's movie inspector as well when all 8 tracks are turned on in Movie Properties. That's another weird thing about the LibAV output is that the tracks are "turned off" upon output from FFMPEG.
Chris.
follow-up: 4 comment:3 by , 11 years ago
Replying to cjplay93:
I only called it a defect as 5 of the 8 tracks were working so I thought it was a bug.
I really understand that, the problem is that DL and DR were never supported when writing the chan atom, adding support is relatively easy for caf and aiff (which does not help you) but less easy for mov (the code used to be identical for mov and the other containers but was deliberately broken at some point, it will be necessary to test if there is a hidden feature in the brokenness that I so far didn't see or if the change can simply be reverted).
Concerning FC vs "mono": FFmpeg cannot discern between them (mono and center are the same in wav), are you only worried because QuickTime does not show what you expect or is the output file effectively broken if you produce six instead of eight channels?
Anyway, the attached file is almost the same asset, but now with QTPlayer's labelling included.
This is extremely useful, thank you!
You'll see in QTPlayer's movie inspector as well when all 8 tracks are turned on in Movie Properties. That's another weird thing about the LibAV output is that the tracks are "turned off" upon output from FFMPEG.
I still believe that the typical use-case is to mux several languages into one mov file and you don't want them to play simultaneously. But what you ask is an often requested feature, help on this is welcome, initial tests showed that we (or at least I) don't know how exactly to enable all tracks. (But you could test older versions of FFmpeg.)
comment:4 by , 11 years ago
Replying to cehoyos:
I really understand that, the problem is that DL and DR were never supported when writing the chan atom, adding support is relatively easy for caf and aiff (which does not help you) but less easy for mov (if used to be identical for mov and the other containers but was deliberately broken at some point, it will be necessary to test if there is a hidden feature in the brokenness that I so far didn't see or if the change can simply be reverted).
The "caf" and "aiff" is a point I'd not differentiated. I simply want 24-bit, 48khz LE PCM inside the MOV file. If you feel using a different audio format within the Quicktime output is more viable and/or simpler for you, then by all means I will gladly change my command to match that. What would your recommendation be there?
Concerning FC vs "mono": FFmpeg cannot discern between them (mono and center are the same in wav), are you only worried because QuickTime does not show what you expect or is the output file effectively broken if you produce six instead of eight channels?
Yes, I just need QTPlayer to show the correct values, thus validating the output for Apple's usage.
Anyway, the attached file is almost the same asset, but now with QTPlayer's labelling included.
This is extremely useful, thank you!
You'll see in QTPlayer's movie inspector as well when all 8 tracks are turned on in Movie Properties. That's another weird thing about the LibAV output is that the tracks are "turned off" upon output from FFMPEG.
I still believe that the typical use-case is to mux several languages into one mov file and you don't want them to play simultaneously. But what you ask is an often requested feature, help on this is welcome, initial tests showed that we (or at least I) don't know how exactly to enable all tracks. (But you could test older versions of FFmpeg.)
Exactly what help is needed? Programmatic or simple decisive choice? I actually agree on that with your typical use case. I have actually tried turning on those tracks in QTPlayer and they fail to stay on. Even on a Mac and saving a new file. Strange... Anyway, I will help how I can. If you need research into atom states/occupancies/settings, I can help there as I've gotten to know Atombox a bit.
comment:5 by , 11 years ago
Keywords: | mov added |
---|
comment:6 by , 11 years ago
Confirming FFMBC has multi-track working in Quicktime player. I was able to get 8 tracks working at one time. I'm checking on the metadata track assignments as I have to re-write most of my command to work with the older syntax.
More as it develops.
Chris.
comment:7 by , 10 years ago
Could I suggest that we introduce a new channel ("C", "center"). This channel will become the channel for true mono 1.0 channel sets. FC will become the channel to be used for all other channel sets. When a channel layout is unknown, 0 should be used as opposed to guessing mono/FC.
comment:9 by , 9 years ago
I have exactly the same issue with the latest version of ffmpeg, did anyone get to the bottom of this?
comment:10 by , 6 years ago
This is still an issue in the current build. Was it ever addressed elsewhere?
comment:11 by , 5 years ago
We are also very interested in this. Perhaps a Mono track assignment (M?) is created to differentiate from true Front Center (FC) as part of a 5.1.
follow-up: 14 comment:12 by , 3 years ago
Status: | new → open |
---|
Last part is fixed here. https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220328232453.54773-6-jamrial@gmail.com/
comment:13 by , 3 years ago
Analyzed by developer: | set |
---|---|
Reproduced by developer: | set |
Resolution: | → fixed |
Status: | open → closed |
Should be fixed in c2c5f3484399281e7eb74f5fdcc1f2eab8b9f62d and 7ccc9108032aeaa21b8ad91b201ed19c88b8d239
comment:14 by , 12 months ago
Replying to Balling:
Last part is fixed here. https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220328232453.54773-6-jamrial@gmail.com/
I found another use case where this fix would be helpful.
https://trac.ffmpeg.org/ticket/10527
Example of output of command line, 12 frames of black and silence.