Предположим, у меня есть такой формат видео:

Metadata:
    CREATION_TIME   : 2017-08-04T21:29:42Z
    ENCODER         : Lavf57.7.2
  Duration: 00:24:45.83, start: 0.000000, bitrate: 1130 kb/s
    Chapter #0:0: start 0.000000, end 90.048000
    Metadata:
      title           : Chapter 1
    Chapter #0:1: start 90.048000, end 741.074000
    Metadata:
      title           : Chapter 2
    Chapter #0:2: start 741.074000, end 1391.348000
    Metadata:
      title           : Chapter 3
    Chapter #0:3: start 1391.348000, end 1422.338000
    Metadata:
      title           : Chapter 4
    Chapter #0:4: start 1422.338000, end 1485.693000
    Metadata:
      title           : Chapter 5
    Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 960x720 [SAR 1:1 DAR 4:3], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
    Metadata:
      title           : Stereo
    Stream #0:2(jpn): Audio: aac (LC), 48000 Hz, stereo, fltp
    Metadata:
      title           : Stereo
    Stream #0:3(eng): Subtitle: ass (default) (forced)
    Stream #0:4: Attachment: ttf
    Metadata:
      filename        : FRAMD.TTF
      mimetype        : application/x-truetype-font
    Stream #0:5: Attachment: ttf
    Metadata:
      filename        : FRAMDCN.TTF
      mimetype        : application/x-truetype-font
    Stream #0:6: Attachment: ttf
    Metadata:
      filename        : FRAMDIT.TTF
      mimetype        : application/x-truetype-font
    Stream #0:7: Attachment: ttf
    Metadata:
      filename        : DEJAVUSERIF.TTF
      mimetype        : application/x-truetype-font
    Stream #0:8: Attachment: ttf
    Metadata:
      filename        : FRADM.TTF
      mimetype        : application/x-truetype-font
    Stream #0:9: Attachment: ttf
    Metadata:
      filename        : FRADMCN.TTF
      mimetype        : application/x-truetype-font
    Stream #0:10: Attachment: ttf
    Metadata:
      filename        : FRADMIT.TTF
      mimetype        : application/x-truetype-font

Я хочу взять каждый кадр этого видео и преобразовать его в изображение, но я хочу сохранить субтитры.

Я попробовал команду как это:

 ffmpeg -i file.mkv -r 1 -ss 120 -t 350 -map 0:0  images/output_%05d.png

Это дает мне кадры из диапазона, который я хочу (-ss..-t), но всякий раз, когда я пытаюсь добавить некоторую вариацию -map 0:3 (поток субтитров), я получаю

Automatic encoder selection failed for output stream #0:1. Default encoder for format image2 (codec none) is probably disabled. Please choose an encoder manually.

Ошибка выбора кодера для потока 0:1

Я также попробовал вариант как

ffmpeg -i file.mkv -r 1 -ss 120 -t 350 -map 0:0 -attach ~/Library/Fonts/DejaVuSans.ttf -metadata:s:0 mimetype=application/x-truetype-font images/output_%05d.png

Который также просто выписал PNG - без субтитров.

Что мне здесь не хватает?

1 ответ1

1

Я понял это после того, как узнал, что ffmpeg не выполняет рендеринг субтитров. Мне пришлось использовать фильтр subtitles, что означало перекомпиляцию ffmpeg с --enable-libass .

Последняя команда выглядела так:

ffmpeg -i file.mkv -r 1 -map 0:0 -vf "subtitles=file.mkv" images/output_%05d.png

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