Я пытаюсь сделать фильм (в контейнере Matroska), преобразовать все звуковые дорожки в AC3 и больше ничего не трогать. Я использую эту строку:

avconv -i infile.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -ab 256k outfile.mkv

Это работает нормально, за исключением случаев, когда есть встроенные субтитры. Затем, после некоторого времени обработки без прогресса, avconv просто "умирает" (вывод сокращен, это, кажется, интересные части):

[matroska,webm @ 0xf867a0] max_analyze_duration reached
[matroska,webm @ 0xf867a0] Estimating duration from bitrate, this may be inaccurate
...
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
...
Stream #0.0(eng): Video: H264 / 0x34363248, yuv420p, 1280x536 [PAR 1:1 DAR 160:67], q=2-31, 1k tbn, 1k tbc (default)
    Stream #0.1(ger): Audio: ac3, 48000 Hz, 5.1, flt, 256 kb/s (default)
    Stream #0.2(eng): Audio: ac3, 48000 Hz, 5.1, flt, 256 kb/s
    Stream #0.3(ger): Subtitle: dvdsub (default) (forced)
    Metadata:
      title           : forced
    Stream #0.4(ger): Subtitle: dvdsub
    Metadata:
      title           : complete
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (dca -> ac3)
  Stream #0:2 -> #0:2 (dca -> ac3)
  Stream #0:3 -> #0:3 (copy)
  Stream #0:4 -> #0:4 (copy)
Input stream #0:2 frame changed from rate:48000 fmt:s16 ch:6 to rate:48000 fmt:flt ch:6
Input stream #0:1 frame changed from rate:48000 fmt:s16 ch:6 to rate:48000 fmt:flt ch:6
frame= 2606 fps=1303 q=-1.0 size=       3kB time=107.36 bitrate=   0.2kbits/s   
...
frame=96141 fps=813 q=-1.0 size= 2195806kB time=2807.04 bitrate=6408.2kbits/s
frame=96251 fps=810 q=-1.0 size= 2195806kB time=2807.04 bitrate=6408.2kbits/s
...
frame=97015 fps=397 q=-1.0 size= 2195806kB time=2807.04 bitrate=6408.2kbits/s
Getötet ["Killed", in English]

Я понятия не имею, почему это происходит, поскольку нет вывода ошибок.

Я хотел бы просто скопировать субтитры, а не трогать их вообще. Если это не сработает, их можно полностью отбросить.

1 ответ1

2

Проблема в том, что version 0.8.7-6:0.8.7-1ubuntu2 для "ffmpeg" на самом деле не ffmpeg, а ошибочная версия Libav, поставляемая под неправильным именем.

Большинство проблем, когда вы знаете, что это должно работать, но по какой-то причине это не помогает, обычно исправляются в последних сборках, которые вы можете легко получить:

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