[FFmpeg-devel] MOV: center channel 'chan' metadata

Courtland Idstrom cidstrom at telltalegames.com
Sat Mar 17 04:33:23 EET 2018


Hi -

I'm working with a post-production workflow to mux 5.1 wav audio into a mov
file (each channel specified as a separate track), with correct channel
assignments written as metadata. I'm able to get everything except for the
Center channel to appear correctly when viewed in Quicktime, however the
Center channel shows up as 'mono'.

I'm using a command like this (other channels omitted for the sake of
brevity):

ffmpeg -i input.mov \
  -i audio.wav \
 -filter_complex "[1:0]pan=FC|c0=c0[FC]" \
 -map 0:v \
 -map "[FC]" \
 -c:v copy \
 -c:a pcm_s24le \
 output.mov

This ends up writing a 'chan' tag that indicates Mono content
(MOV_CH_LAYOUT_MONO). If I use a different channel, such as "FL", it writes
a value that Quicktime understands (layout=MOV_CH_LAYOUT_USE_BITMAP
bitmap=0). After some tracing, it appears that this configuration comes
from the layout defined in mov_ch_layout_map_1ch for a single center
channel. This seems like intended functionality and not a bug, but
unfortunately doesn't solve my issue.

I previously noticed that ffmpeg doesn't currently support writing channel
labels -- I've just submitted a patch to add this fallback when a layout
isn't found (for a semi-related situation, DownmixLeft/DownmixRight =>
LeftTotal/RightTotal tracks).

One potential solution I've found for this is adding a flag which
exclusively writes using channel labels instead of layouts. I can cleanup
and submit this patch if desired, which adds a -movflags
use_channel_labels (Link
#1 below). I don't know enough to be sure that this is the right approach;
however, it does work and shows up correctly in Quicktime Pro.

I'm looking for some advice here on the best path forward -- I'm more than
happy to implement whatever is needed.

Thanks,
-Courtland

[#1]:
https://github.com/Frugality/FFmpeg/commit/5ed6413fc9b17fd1bdd25672e959e934799f7b53


More information about the ffmpeg-devel mailing list