[FFmpeg-user] Channel layout flags
James Heliker
james.heliker at gmail.com
Wed Oct 21 14:54:43 CEST 2015
On Oct 20, 2015, at 10:39 PM, Kevin Wells <kevwells at hotmail.co.uk> wrote:
>> To: ffmpeg-user at ffmpeg.org
>> From: james.heliker at gmail.com
>> Date: Tue, 20 Oct 2015 14:39:33 -0700
>> Subject: Re: [FFmpeg-user] Channel layout flags
>>
>> 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!
>>
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> Any chance you could share this command line tool, would be very handy?
> Kind regards.
I'll message you directly about this.
Thanks!
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
More information about the ffmpeg-user
mailing list