[FFmpeg-user] Channel layout flags

James Heliker james.heliker at gmail.com
Tue Oct 20 23:39:33 CEST 2015


On 10/20/2015 2:30 PM, Kevin Wells wrote:
>> From: kevwells at hotmail.co.uk
>> To: ffmpeg-user at ffmpeg.org
>> Date: Tue, 20 Oct 2015 20:14:31 +0000
>> Subject: [FFmpeg-user] Channel layout flags
>>
>> Hi, I posted this incorrectly on the dev list, so posting in the correct place with corrections.
>> I am looking for a patch, or solution, to my problem. When using the below Channel layout flags, in the resulting Quicktime Prores file, in the audio channels, the FC, DL and DR all come out flagged as 'Mono', but I would like these flagged as 'Center', 'Left Total' and 'Right Total'. Is there a patch / command / flag to get these flagged to how I label them please?
>>
>> Here is my current command:
>>
>> ffmpeg -i /Volumes/GRAID/EXPORTS/DESCRETE_TEST.mov -ss 45 -to 50 -filter_complex \
>> "[0:1]pan=FL|c0=c0[FL]; \
>>   [0:1]pan=FR|c0=c1[FR]; \
>>   [0:1]pan=FC|c0=c2[FC]; \
>>   [0:1]pan=LFE|c0=c3[LFE]; \
>>   [0:1]pan=BL|c0=c4[BL]; \
>>   [0:1]pan=BR|c0=c5[BR]; \
>>   [0:1]pan=DL|c0=c6[DL]; \
>>   [0:1]pan=DR|c0=c7[DR]" \
>> -map v:0 \
>> -map "[FL]" \
>> -map "[FR]" \
>> -map "[FC]" \
>> -map "[LFE]" \
>> -map "[BL]" \
>> -map "[BR]" \
>> -map "[DL]" \
>> -map "[DR]" \
>> -vcodec prores -profile:v 3 -vtag apcn -f mov -y -c:a pcm_s24le /Volumes/GRAID/EXPORTS/DONE_TEST.mov
>>
>> When viewing the result in Quicktime player, they are displayed as:
>>
>> Video
>> Front Left
>> Front Right
>> Mono (would like it to be Center)
>> Left Surround
>> Right Surround
>> Mono (would like it to be Left Total)
>> Mono (would like it to be Right Total)
>> Below is the ffmpeg output.
>>
>> ffmpeg -i /Volumes/GRAID/EXPORTS/DESCRETE_TEST.mov -ss 45 -to 50 -filter_complex \
>>> "[0:1]pan=FL|c0=c0[FL]; \
>>>   [0:1]pan=FR|c0=c1[FR]; \
>>>   [0:1]pan=FC|c0=c2[FC]; \
>>>   [0:1]pan=LFE|c0=c3[LFE]; \
>>>   [0:1]pan=BL|c0=c4[BL]; \
>>>   [0:1]pan=BR|c0=c5[BR]; \
>>>   [0:1]pan=DL|c0=c6[DL]; \
>>>   [0:1]pan=DR|c0=c7[DR]" \
>>> -map v:0 \
>>> -map "[FL]" \
>>> -map "[FR]" \
>>> -map "[FC]" \
>>> -map "[LFE]" \
>>> -map "[BL]" \
>>> -map "[BR]" \
>>> -map "[DL]" \
>>> -map "[DR]" \
>>> -vcodec prores -profile:v 3 -vtag apcn -f mov -y -c:a pcm_s24le /Volumes/GRAID/EXPORTS/DONE_TEST.mov
>> ffmpeg version 2.8.1-tessus Copyright (c) 2000-2015 the FFmpeg developers
>>    built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
>>    configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb
>>    libavutil      54. 31.100 / 54. 31.100
>>    libavcodec     56. 60.100 / 56. 60.100
>>    libavformat    56. 40.101 / 56. 40.101
>>    libavdevice    56.  4.100 / 56.  4.100
>>    libavfilter     5. 40.101 /  5. 40.101
>>    libswscale      3.  1.101 /  3.  1.101
>>    libswresample   1.  2.101 /  1.  2.101
>>    libpostproc    53.  3.100 / 53.  3.100
>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/GRAID/EXPORTS/DESCRETE_TEST.mov':
>>    Metadata:
>>      major_brand     : qt
>>      minor_version   : 537199360
>>      compatible_brands: qt
>>      creation_time   : 2015-10-20 14:25:55
>>    Duration: 00:01:37.08, start: 0.000000, bitrate: 160894 kb/s
>>      Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le, 1920x1080, 151675 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
>>      Metadata:
>>        creation_time   : 2015-10-20 14:25:55
>>        handler_name    : Apple Alias Data Handler
>>        encoder         : Apple ProRes 422 HQ
>>      Stream #0:1(eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 8 channels (FL+FR+FC+LFE+SL+SR+DL+DR), s32 (24 bit), 9216 kb/s (default)
>>      Metadata:
>>        creation_time   : 2015-10-20 14:28:55
>>        handler_name    : Apple Alias Data Handler
>> [Parsed_pan_7 @ 0x7fe7d1e05dc0] Pure channel mapping detected: 7
>> [Parsed_pan_6 @ 0x7fe7d1e05b60] Pure channel mapping detected: 6
>> [Parsed_pan_5 @ 0x7fe7d1e05860] Pure channel mapping detected: 5
>> [Parsed_pan_4 @ 0x7fe7d1e05580] Pure channel mapping detected: 4
>> [Parsed_pan_3 @ 0x7fe7d1e05280] Pure channel mapping detected: 3
>> [Parsed_pan_2 @ 0x7fe7d1e04f80] Pure channel mapping detected: 2
>> [Parsed_pan_1 @ 0x7fe7d1e04ba0] Pure channel mapping detected: 1
>> [Parsed_pan_0 @ 0x7fe7d1e048c0] Pure channel mapping detected: 0
>> Output #0, mov, to '/Volumes/GRAID/EXPORTS/DONE_TEST.mov':
>>    Metadata:
>>      major_brand     : qt
>>      minor_version   : 537199360
>>      compatible_brands: qt
>>      encoder         : Lavf56.40.101
>>      Stream #0:0(eng): Video: prores (apch) (apch / 0x68637061), yuv422p10le, 1920x1080, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
>>      Metadata:
>>        creation_time   : 2015-10-20 14:25:55
>>        handler_name    : Apple Alias Data Handler
>>        encoder         : Lavc56.60.100 prores
>>      Stream #0:1: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FL), s32, 1152 kb/s (default)
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:2: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:3: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:4: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (LFE), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:5: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BL), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:6: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BR), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:7: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DL), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>>      Stream #0:8: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (DR), s32, 1152 kb/s
>>      Metadata:
>>        encoder         : Lavc56.60.100 pcm_s24le
>> Stream mapping:
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:1 (pcm_s24le) -> pan (graph 0)
>>    Stream #0:0 -> #0:0 (prores (native) -> prores (native))
>>    pan (graph 0) -> Stream #0:1 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:2 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:3 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:4 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:5 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:6 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:7 (pcm_s24le)
>>    pan (graph 0) -> Stream #0:8 (pcm_s24le)
>> Press [q] to stop, [?] for help
>> [pcm_s24le @ 0x7fe7d3007c00] not writing 'chan' tag due to lack of channel information
>> [pcm_s24le @ 0x7fe7d3010a00] not writing 'chan' tag due to lack of channel information
>> frame=  120 fps=7.4 q=-0.0 Lsize=  129110kB time=00:00:05.00 bitrate=211534.5kbits/s
>> video:123470kB audio:5625kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.011760%
>>
>>   		 	   		
>> _______________________________________________
I had a small command line tool written for this exact purpose, since 
we're only talking about metadata it isn't difficult to manipulate after 
the fact. Apple has this fairly well documented too. Its a shame FFmpeg 
can't handle it directly!

> I found that exactly the same thing has been reported 2 years ago, this is precisely my current issue.
>
> https://trac.ffmpeg.org/ticket/2865#comment:9 		 	   		
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list