2014-10-29 3 views
1

У меня есть (очень большой!) Apple ProRes 422 файл с 16-канальным аудио. Чтобы использовать его на менее мощном компьютере, я бы хотел преобразовать его в стандартный файл MP4 (видеокодек h264, стереозвук). Однако исходный файл имеет 16 каналов аудио, и FFmpeg дает ошибку, когда я пытаюсь преобразовать его («Rematrix необходим»). Как мне переписать звуковые каналы? Необходимы ли дополнительные шаги?Репарация звукового канала FFmpeg (от 5.1 до стерео)

Это команда FFmpeg я использовал:

ffmpeg -y -i Capture0000.mov -vcodec libx264 -vb 2000k -pix_fmt yuv420p -coder 0 -profile:v baseline -acodec libfaac -ab 128k /tmp/out.mp4 

Это выход FFmpeg:

ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers 
     built on May 8 2014 14:17:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
     configuration: --prefix=/usr/local/ffmpeg_build --extra-cflags=-I/usr/local/ffmpeg_build/include --extra-ldflags=-L/usr/local/ffmpeg_build/lib --bindir=/usr/local/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-libxvid --enable-libfaac 
     libavutil  52. 81.100/52. 81.100 
     libavcodec  55. 60.103/55. 60.103 
     libavformat 55. 37.102/55. 37.102 
     libavdevice 55. 13.101/55. 13.101 
     libavfilter  4. 5.100/4. 5.100 
     libswscale  2. 6.100/2. 6.100 
     libswresample 0. 18.100/0. 18.100 
     libpostproc 52. 3.100/52. 3.100 
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Capture0000.mov': 
     Metadata: 
     creation_time : 2014-08-17 18:30:31 
     Duration: 01:01:22.52, start: 0.000000, bitrate: 202001 kb/s 
     Stream #0:0(eng): Video: prores (apch/0x68637061), yuv422p10le, 1920x1080, 183513 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn, 2500 tbc (default) 
     Metadata: 
      creation_time : 2014-08-17 18:30:31 
      handler_name : Apple Alias Data Handler 
      encoder   : Apple ProRes 422 (HQ) 
     Stream #0:1(eng): Audio: pcm_s24le (lpcm/0x6D63706C), 48000 Hz, 16 channels, s32, 18432 kb/s (default) 
     Metadata: 
      creation_time : 2014-08-17 18:30:31 
      handler_name : Apple Alias Data Handler 
    [auto-inserted resampler 0 @ 0x3943da0] [SWR @ 0x39441a0] Rematrix is needed between 16 channels and 5.1 but there is not enough information to do it 
    [auto-inserted resampler 0 @ 0x3943da0] Failed to configure output pad on auto-inserted resampler 0 
    Error opening filters! 

Это выход FFprobe:

ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers 
    built on May 8 2014 14:17:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
    configuration: --prefix=/usr/local/ffmpeg_build --extra-cflags=-I/usr/local/ffmpeg_build/include --extra-ldflags=-L/usr/local/ffmpeg_build/lib --bindir=/usr/local/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-libxvid --enable-libfaac 
    libavutil  52. 81.100/52. 81.100 
    libavcodec  55. 60.103/55. 60.103 
    libavformat 55. 37.102/55. 37.102 
    libavdevice 55. 13.101/55. 13.101 
    libavfilter  4. 5.100/4. 5.100 
    libswscale  2. 6.100/2. 6.100 
    libswresample 0. 18.100/0. 18.100 
    libpostproc 52. 3.100/52. 3.100 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Capture0000.mov': 
    Metadata: 
    creation_time : 2014-08-17 18:30:31 
    Duration: 01:01:22.52, start: 0.000000, bitrate: 202001 kb/s 
    Stream #0:0(eng): Video: prores (apch/0x68637061), yuv422p10le, 1920x1080, 183513 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn, 2500 tbc (default) 
    Metadata: 
     creation_time : 2014-08-17 18:30:31 
     handler_name : Apple Alias Data Handler 
     encoder   : Apple ProRes 422 (HQ) 
    Stream #0:1(eng): Audio: pcm_s24le (lpcm/0x6D63706C), 48000 Hz, 16 channels, s32, 18432 kb/s (default) 
    Metadata: 
     creation_time : 2014-08-17 18:30:31 
     handler_name : Apple Alias Data Handler 
+0

Вы должны использовать libfdk_aac вместо libfaac. Это обеспечит лучшее качество для битрейта. См. [Руководство AAC] (http://trac.ffmpeg.org/wiki/Encode/AAC). Кроме того, я рад, что вы нашли ответ, но обратите внимание, что [так] вне темы для вопросов, не связанных с программированием. Попробуйте [su] в следующий раз (у нас есть ответы 'ffmpeg'). – LordNeckbeard

ответ

2

Нашел! После извлечения только аудио, оказалось, первые два канала были стерео, а другой четыре пустые, так что я добавил это:

-af 'pan=stereo:c0=FL:c1=FR' 

Который берет только передний левый и передний правый канал для стереомиксе.

Смежные вопросы