1

Я пытаюсь использовать ffmpeg в Ubuntu для конвертации файла в MKV, копируя все потоки видео и субтитров, но конвертируя все аудио потоки в AC3.

Используя эту команду:

ffmpeg -i input.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -ab 256k output.mkv

не удается с

Number of stream maps must match number of output streams

Удаление -map 0 проблему, но не все потоки субтитров находятся в выходном файле.

редактировать

Вот полный вывод консоли:

user@laptop:~/$ ffmpeg -i input.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -ab 256k output.mkv
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[matroska,webm @ 0xa0cb20] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'input.mkv':
  Duration: 00:10:56.88, start: 0.000000, bitrate: 1536 kb/s
    Stream #0.0(eng): Video: h264 (High), yuv420p, 1920x1080, PAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0.1(eng): Audio: dca (DTS), 48000 Hz, 5.1, s16, 1536 kb/s (default)
    Stream #0.2(eng): Subtitle: pgssub (default)
    Stream #0.3(fre): Subtitle: pgssub
    Stream #0.4(spa): Subtitle: pgssub
Number of stream maps must match number of output streams

1 ответ1

3

Поведение, которое вы видите, на самом деле не имеет смысла, но, учитывая, что вы используете сломанный и "фальшивый" ffmpeg который на самом деле из Libav, а не настоящая сделка, это, вероятно, ошибка, которая уже давно исправлена. Просто вопрос использования последней версии, где это работает нормально.

Загрузите последнюю статическую сборку с домашней страницы FFmpeg или скомпилируйте ее самостоятельно.

Вы можете сократить команду до:

ffmpeg -i in.mkv -c copy -c:a ac3 -map 0 out.mkv

FFmpeg теперь автоматически скопирует все потоки и отобразит их все в вывод, например, так:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> ac3)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:3 -> #0:3 (copy)
  Stream #0:4 -> #0:4 (copy)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .