[FFmpeg-user] Channel layout flags
Kevin Wells
kevwells at hotmail.co.uk
Wed Oct 21 07:39:38 CEST 2015
> 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.
More information about the ffmpeg-user
mailing list