Opened 3 years ago

Last modified 9 months ago

#2865 new enhancement

Front Center, Downmix Left, and Downmix Right unlabelled in QTPlayer

Reported by: cjplay93 Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: chan mov
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

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)

SD_IVTC_8channel_ProResHQ_test.mov (998.1 KB) - added by cjplay93 3 years ago.
Example of output of command line, 12 frames of black and silence.
SD_IVTC_8channel_ProResHQ_test_withT3.7.8_labels.mov (1005.2 KB) - added by cjplay93 3 years ago.
Asset with labelling provided by QT Player. Same video and audio.

Download all attachments as: .zip

Change History (11)

Changed 3 years ago by cjplay93

Example of output of command line, 12 frames of black and silence.

comment:1 Changed 3 years ago by cehoyos

  • Component changed from FFmpeg to avformat
  • Keywords chan added; Quicktime Channel Metadata ProResHQ removed
  • Priority changed from normal to wish
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master

Could you provide a mov sample that shows the intended layout in QuickTime??

Changed 3 years ago by cjplay93

Asset with labelling provided by QT Player. Same video and audio.

comment:2 follow-up: Changed 3 years ago by cjplay93

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.

comment:3 in reply to: ↑ 2 ; follow-up: Changed 3 years ago by cehoyos

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.)

Last edited 3 years ago by cehoyos (previous) (diff)

comment:4 in reply to: ↑ 3 Changed 3 years ago by cjplay93

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 Changed 3 years ago by cehoyos

  • Keywords mov added

comment:6 Changed 2 years ago by cjplay93

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 Changed 22 months ago by billys

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:8 Changed 18 months ago by cjplay93

That's rational to me.

comment:9 Changed 9 months ago by speedyrazor

I have exactly the same issue with the latest version of ffmpeg, did anyone get to the bottom of this?

Note: See TracTickets for help on using tickets.