7

I have the below file which I am re-mapping the audio and trying to set the channel layout flags on a Quicktime Prores file, but can't seem to get it working. I can successfully re-map the audio (from 8 discrete to 6 monos+stereo) but I can't seem to set the channel layout flags for the 6 monos and stereo, all the monos come out as 'Mono' instead of Front Left, Front Right, etc. I want the following channel layout:

Video
Mono - FL
Mono - FR
Mono - FC
Mono - LFE
Mono - BL
Mono - BR
Stereo - DL+DR

How do I set this channel layout so the audio channels are correctly flagged?

Here is the ffmpeg output of the file:

ffmpeg -i /Users/kev/Movies/Test_descrete.mov -ss 20 -to 25 -filter_complex \
> "[0:1]pan=1c|c0=c0[FL]; \
>  [0:1]pan=1c|c0=c1[FR]; \
>  [0:1]pan=1c|c0=c2[FC]; \
>  [0:1]pan=1c|c0=c3[LFE]; \
>  [0:1]pan=1c|c0=c4[BL]; \
>  [0:1]pan=1c|c0=c5[BR]; \
>  [0:1]pan=2c|c0=c6|c1=c7[stereo]" \
> -map v:0 \
> -map "[FL]" \
> -map "[FR]" \
> -map "[FC]" \
> -map "[LFE]" \
> -map "[BL]" \
> -map "[BR]" \
> -map "[stereo]" \
> -vcodec prores -profile:v 3 -vtag apcn -f mov -y -c:a pcm_s24le /Users/kev/Movies/Test_Movie_Out2.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 '/Users/kev/Movies/Test_descrete.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2015-10-17 18:55:33
  Duration: 00:01:58.04, start: 0.000000, bitrate: 170075 kb/s
    Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le, 1920x1080, 160844 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2015-10-17 18:55:33
      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-17 19:13:26
      handler_name    : Apple Alias Data Handler
[Parsed_pan_6 @ 0x7f91bbd05f80] Pure channel mapping detected: 6 7
[Parsed_pan_5 @ 0x7f91bbd05d20] Pure channel mapping detected: 5
[Parsed_pan_4 @ 0x7f91bbd05a20] Pure channel mapping detected: 4
[Parsed_pan_3 @ 0x7f91bbd05720] Pure channel mapping detected: 3
[Parsed_pan_2 @ 0x7f91bbd053e0] Pure channel mapping detected: 2
[Parsed_pan_1 @ 0x7f91bbd05060] Pure channel mapping detected: 1
[Parsed_pan_0 @ 0x7f91bbd04d60] Pure channel mapping detected: 0
Output #0, mov, to '/Users/kev/Movies/Test_Movie_Out2.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-17 18:55:33
      handler_name    : Apple Alias Data Handler
      encoder         : Lavc56.60.100 prores
    Stream #0:1: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s (default)
    Metadata:
      encoder         : Lavc56.60.100 pcm_s24le
    Stream #0:2: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, 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, mono, s32, 1152 kb/s
    Metadata:
      encoder         : Lavc56.60.100 pcm_s24le
    Stream #0:5: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s
    Metadata:
      encoder         : Lavc56.60.100 pcm_s24le
    Stream #0:6: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s
    Metadata:
      encoder         : Lavc56.60.100 pcm_s24le
    Stream #0:7: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 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: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)
Press [q] to stop, [?] for help
frame=    9 fps=1.6 q=-0.0 size=    4462kB time=00:00:00.50 bitrate=73099.2kbitsframe=   21 fps=3.4 q=-0.0 size=   16380kB time=00:00:01.00 bitrate=134183.6kbitframe=   35 fps=5.2 q=-0.0 size=   28001kB time=00:00:01.52 bitrate=150775.9kbitframe=   46 fps=6.4 q=-0.0 size=   38857kB time=00:00:02.00 bitrate=159158.1kbitframe=   57 fps=7.4 q=-0.0 size=   50044kB time=00:00:02.50 bitrate=163983.6kbitframe=   69 fps=8.3 q=-0.0 size=   62437kB time=00:00:03.00 bitrate=170495.5kbitframe=   80 fps=9.1 q=-0.0 size=   73925kB time=00:00:03.50 bitrate=173027.6kbitframe=   91 fps=9.8 q=-0.0 size=   85376kB time=00:00:04.00 bitrate=174850.3kbitframe=  103 fps= 10 q=-0.0 size=   97897kB time=00:00:04.50 bitrate=178216.6kbitframe=  114 fps= 11 q=-0.0 size=  109345kB time=00:00:05.00 bitrate=179151.2kbitframe=  120 fps= 11 q=-0.0 Lsize=  119787kB time=00:00:05.00 bitrate=196258.7kbits/s    
video:114148kB audio:5625kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.011179%

1 Answer 1

1

I have partially found an answer, although the Centre channel, Left Total and Right Total are not coming out in the file, all 3 are just coming out as Mono. It seems the Centre is an ffmpeg feature, I think Centre and Mono are the same thing, so ffmpeg just leaves it with Mono. Ideally I am looking for an ffmpeg patch file, to apply prior to build, which would give me the required results.

The result currently comes out as:

Video
Front Left
Front Right
Mono (should be Center)
Left Surround
Right Surround
Mono (should be Left Total)
Mono (shold be Right Total)

Here is the 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

Below is the ffmpeg output from that.

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%

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.