ffmpeg - especifica banderas de diseño de canal

7

Tengo el archivo a continuación, que estoy reasignando el audio e intentando configurar los indicadores de diseño del canal en un archivo Quicktime Prores, pero parece que no puedo hacerlo funcionar. Puedo reasignar con éxito el audio (de 8 discretos a 6 monos + estéreo), pero parece que no puedo establecer las banderas de diseño de canal para los 6 monos y estéreo, todos los monos aparecen como 'Mono' en lugar de Front Left , Delantero derecho, etc. Quiero el siguiente diseño de canal:

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

¿Cómo configuro este diseño de canal para que los canales de audio estén marcados correctamente?

Aquí está la salida ffmpeg del archivo:

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%
speedyrazor
fuente

Respuestas:

1

He encontrado parcialmente una respuesta, aunque el canal central, Total izquierdo y Total derecho no aparecen en el archivo, los 3 solo aparecen como Mono. Parece que el Centro es una función ffmpeg, creo que Centro y Mono son lo mismo, por lo que ffmpeg simplemente lo deja con Mono. Idealmente, estoy buscando un archivo de parche ffmpeg para aplicar antes de la compilación, lo que me daría los resultados requeridos.

El resultado actualmente sale como:

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

Aquí está el comando:

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

A continuación se muestra la salida de ffmpeg de eso.

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%
speedyrazor
fuente