모든 오디오 트랙을 AAC로 변환하는 동안 FFmpeg MKV에서 MP4로 재다중화

모든 오디오 트랙을 AAC로 변환하는 동안 FFmpeg MKV에서 MP4로 재다중화

mkv를 iTunes 호환 mp4로 성공적으로 재다중화하는 ffmpeg 명령이 있었습니다. 그러나 언어에 관계없이 첫 번째 오디오 스트림만 사용했습니다. 모든 오디오 스트림 또는 최소한 영어 스트림을 리먹싱하고 싶습니다. 5.1도 유지해야 합니다.

지금까지 내가 가진 것은 다음과 같습니다.

ffmpeg -i "input.mkv" -y -f mp4 -vcodec copy -acodec libvo_aacenc -ac 6 "output.mp4"

다음 오류가 발생합니다.

출력 스트림 #0:1에 대한 인코더를 여는 중 오류가 발생했습니다. 비트 전송률, 속도, 너비 또는 높이와 같은 매개변수가 잘못되었을 수 있습니다.

전체 출력은 다음과 같습니다.

C:\Program Files\ffmpeg\bin>"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "E:\movies\A film.mkv" -y -f mp4 -vcodec copy -acodec libvo_aacenc -ac 6 "E:\iTunes\Automatically Add to iTunes\A film.mp4"
ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 25 2012 12:21:26 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enab
le-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libop
encore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libop
enjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheo
ra --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-lib
vpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52.  9.100 / 52.  9.100
  libavcodec     54. 77.100 / 54. 77.100
  libavformat    54. 37.100 / 54. 37.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 23.102 /  3. 23.102
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 17.101 /  0. 17.101
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'E:\movies\Pitch Perfect.mkv':
  Duration: 01:52:07.11, start: 0.000000, bitrate: 9765 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1920x1040, SAR 1:1 DAR 24:13, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Stream #0:2(eng): Subtitle: subrip
[libvo_aacenc @ 037dfb00] Unable to set encoding parameters
Output #0, mp4, to 'E:\iTunes\Automatically Add to iTunes\Pitch Perfect.mp4':
    Stream #0:0(eng): Video: h264, yuv420p, 1920x1040 [SAR 1:1 DAR 24:13], q=2-31, 23.98fps, 90k tbn, 1k tbc (default)
    Stream #0:1(eng): Audio: aac, 48000 Hz, 5.1, s16, 128 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (dca -> libvo_aacenc)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

답변1

[libvo_aacenc @ 037dfb00] Unable to set encoding parameters

libvo_aacenc아마도 5.1 채널을 인코딩할 수 없으며 일반적으로 인코더가 좋지 않습니다. aac(with -strict experimental), libfaac또는 libfdk_aac(ffmpeg가 이를 지원하도록 구성된 경우)를 사용하여 채널을 보존할 수 있습니다 . 사용해야 하는 경우 오디오 필터를 libvo_aacenc추가하거나 -ac 2사용하여 출력을 두 채널로 변경할 수 있습니다.

-q:a 100for libfaac또는 -vbr 5for 와 같이 오디오의 "품질"을 선언하는 것이 가장 쉬울 것입니다 libfdk_aac. 그렇지 않으면 으로 오디오 비트 전송률을 선택할 수 있지만 -b:a비트 전송률은 모든 채널에서 공유되므로 스테레오에 비해 더 높은 값을 지정해야 합니다. 산출. libvo_aacenc만 받아들입니다 -b:a.

기본적으로 ffmpeg는 입력에서 "최상의" 비디오, 오디오 및 자막 스트림을 선택하여 잠재적으로 하나의 비디오, 하나의 오디오 스트림 및 하나의 자막 스트림이 포함된 출력을 생성합니다. -map 0slhck가 언급한 대로 이 기본값을 재정의하고 입력 0(첫 번째 입력) 의 모든 스트림을 포함하려면 을 추가하세요 . 보다스트림 선택자세한 정보와 "최고"에 대한 설명은 ffmpeg 문서에서 확인하세요.

다음도 참조하세요.

관련 정보