Pistas de audio AAC y AC3 en archivo M4V

Me di cuenta de que en la descarga de películas desde iTunes Store hay una pista de audio duplicada: la primera es AAC y la segunda es AC3, pero esto es visible como una pista de audio con la opción "Preferir paso a través de AC3". He comprimido una película en handbrake con audio AAC y AC3, pero cuando la cargo en iTunes, veo 2 pistas de audio (mismo idioma) en lugar de 1. También noté que cuando pones 2 pistas de audio en la última versión de HandBrake , donde el primero es AAC y el segundo es AC3, iTunes lo muestra como una pista de audio. Me pregunto si existe alguna posibilidad de cambiar mi archivo M4V, para que iTunes muestre 1 pista de audio en lugar de 2 sin volver a comprimir el video. Estoy pensando en usar ffmpeg o mp4box para hacer eso, pero no tengo idea de cómo manejarlo.

Para obtener mejores resultados, he creado nuevos archivos. Uno con HandBrake 0.10 y el segundo con HandBrake 1.0.7. Ambos archivos son la misma película, la misma configuración, la única diferencia es la versión de HandBrake que he usado. La salida de FFprobe parece ser la misma (excepto la fecha de creación).

A continuación se muestra la salida de ffprobe para el archivo que se desea y el archivo que tiene 2 pistas de audio visibles en iTunes:

ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'd:\tbbb_ok.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2018-02-17T09:09:52.000000Z
    title           : Big Buck Bunny
    artist          : Big Buck Bunny artist
    date            : 2018-01-01
    encoder         : HandBrake 1.0.7 2017040900
    genre           : Comedy
  Duration: 00:09:56.48, start: 0.000000, bitrate: 4857 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 4048 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      creation_time   : 2018-02-17T09:09:52.000000Z
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2018-02-17T09:09:52.000000Z
      handler_name    : Stereo
    Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 640 kb/s
    Metadata:
      creation_time   : 2018-02-17T09:09:52.000000Z
      handler_name    : Stereo
    Side data:
      audio service type: main

.

ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'd:\tbbb_nok.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : Big Buck Bunny
    artist          : Big Buck Bunny artist
    date            : 2018-01-01
    encoder         : HandBrake 0.10.1 2015030800
    genre           : Comedy
  Duration: 00:09:56.46, start: 0.000000, bitrate: 4806 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 3997 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      handler_name    : Stereo
    Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 640 kb/s
    Metadata:
      handler_name    : Stereo
    Side data:
      audio service type: main
Q no está claro. Muestra la salida de ffprobe para un archivo que aparece como se esperaba en iTunes y para un archivo que no.
Sin diferencia significativa. ¿En qué se diferencia la pantalla de iTunes?
Cuando voy a la configuración de idioma de audio / subtítulos en iTunes, hay, por ejemplo, la opción "Inglés" dos veces y la opción "Preferir AC3 Passthrough", mientras que en el segundo video solo hay "Preferir AC3 Passthrough".

Respuestas (1)

He encontrado solución. Para lograr esto, usé MP4Box y agrupar pistas de audio, así que puse las pistas AAC en el grupo 1 y las pistas AC3 en el grupo 2.

mp4box -add "track1.h264:fps=24.000:delay=0:lang=en:name=Video" -add "track2.aac:delay=0:lang=en:name=English:group=1" -add "track3.ac3:delay=0:lang=en:name=English:group=2" -add "track4.aac:delay=0:lang=fr:name=French:group=1" -add "track5.ac3:delay=0:lang=fr:name=French:group=2" -new "muxed.m4v"

El comando anterior crea un nuevo archivo m4v con 2 pistas AAC y 2 pistas AC3, por lo que iTunes mostrará "Inglés" y "Francés" una vez y también la opción "Preferir AC3 Passthrough".