Как я могу записать субтитры VOBSUB с помощью ffmpeg?

У меня есть MKV, который я использую для создания DVD с использованием DeVeDe

MKV имеет встроенные субтитры в формате vobsub, которые DeVeDe не поддерживает (или прослушивает, не уверен)

Я решил записать субтитры на выход, используя дополнительную опцию параметров ffmpeg, которую я взял отсюда:

https://trac.ffmpeg.org/wiki/How%20to%20burn%20subtitles % 20into% 20the% 20видео

Итак, я обновился до последней версии ffmpeg и добавил следующие дополнительные параметры:

-filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a

Итак, полная команда это:

ffmpeg -i ~/Input.mkv -vf scale=720:412,fifo,pad=720:576:0:82:0x000000 -y -target pal-dvd -sn -acodec copy -g 12 -t 60.0 -ac 2 -s 720x576 -threads 3 -trellis 1 -mbd 2 -b 2616000 -aspect 16:9 /var/tmp/previewfile_01_01.mpg -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a

Но из DeVeDe я получаю:

[AVFilterGraph @ 0xa744ca0] No such filter: '"'

Запуск его в оболочке получает:

Output pad "default" with type video of the filter instance "Parsed_overlay_0" of overlay not connected to any destination

Документация для фильтра здесь : http://ffmpeg.org/ffmpeg-filters.html#overlay-1

Но я не могу это понять. Параметры -map также являются загадкой.

Вот подробные сведения о потоках:

Stream #0:0(eng): Video: h264 (High), yuv420p(tv, smpte170m), 720x336 [SAR 21845:18873 DAR 109225:44037], SAR 199:172 DAR 2985:1204, 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
Stream #0:2(eng): Subtitle: dvd_subtitle, 720x480

Полный вывод от devede:

Launching program:  ffmpeg -i ~/input.mkv -vf scale=720:412,fifo,pad=720:576:0:82:0x000000 -y -target pal-dvd -sn -acodec copy -g 12 -t 60.0 -ac 2 -s 720x576 -threads 3 -trellis 1 -mbd 2 -b 2616000 -aspect 16:9 /var/tmp/previewfile_01_01.mpg -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a
elemento:  /usr/bin
ffmpeg version N-59114-gcc0e2ba Copyright (c) 2000-2013 the FFmpeg developers
Input #0, matroska,webm, from '~/input.mkv':
  Duration: 03:03:11.13, start: 0.000000, bitrate: 898 kb/s
    Chapter #0.0: start 0.000000, end 232.982856
    Metadata:
      title           : Chapter 1
    Chapter #0.1: start 232.982856, end 479.729356
    Metadata:
      title           : Chapter 2
    Chapter #0.2: start 479.729356, end 573.322856
    Metadata:
      title           : Chapter 3
    Chapter #0.3: start 573.322856, end 1007.089522
    Metadata:
      title           : Chapter 4
    Chapter #0.4: start 1007.089522, end 1375.590989
    Metadata:
      title           : Chapter 5
    Chapter #0.5: start 1375.590989, end 2044.258989
    Metadata:
      title           : Chapter 6
    Chapter #0.6: start 2044.258989, end 2395.443156
    Metadata:
      title           : Chapter 7
    Chapter #0.7: start 2395.443156, end 2863.110356
    Metadata:
      title           : Chapter 8
    Chapter #0.8: start 2863.110356, end 3193.657244
    Metadata:
      title           : Chapter 9
    Chapter #0.9: start 3193.657244, end 3327.290744
    Metadata:
      title           : Chapter 10
    Chapter #0.10: start 3327.290744, end 3801.214189
    Metadata:
      title           : Chapter 11
    Chapter #0.11: start 3801.214189, end 4209.622189
    Metadata:
      title           : Chapter 12
    Chapter #0.12: start 4209.622189, end 4484.897189
    Metadata:
      title           : Chapter 13
    Chapter #0.13: start 4484.897189, end 4971.299778
    Metadata:
      title           : Chapter 14
    Chapter #0.14: start 4971.299778, end 5710.371444
    Metadata:
      title           : Chapter 15
    Chapter #0.15: start 5710.371444, end 5999.627078
    Metadata:
      title           : Chapter 16
    Chapter #0.16: start 5999.627078, end 6423.417111
    Metadata:
      title           : Chapter 17
    Chapter #0.17: start 6423.417111, end 6593.470322
    Metadata:
      title           : Chapter 18
    Chapter #0.18: start 6593.470322, end 7171.923244
    Metadata:
      title           : Chapter 19
    Chapter #0.19: start 7171.923244, end 7462.630322
    Metadata:
      title           : Chapter 20
    Chapter #0.20: start 7462.630322, end 8388.505278
    Metadata:
      title           : Chapter 21
    Chapter #0.21: start 8388.505278, end 8734.233989
    Metadata:
      title           : Chapter 22
    Chapter #0.22: start 8734.233989, end 9171.087078
    Metadata:
      title           : Chapter 23
    Chapter #0.23: start 9171.087078, end 9439.688744
    Metadata:
      title           : Chapter 24
    Chapter #0.24: start 9439.688744, end 9770.936322
    Metadata:
      title           : Chapter 25
    Chapter #0.25: start 9770.936322, end 10253.918822
    Metadata:
      title           : Chapter 26
    Chapter #0.26: start 10253.918822, end 10732.396822
    Metadata:
      title           : Chapter 27
    Chapter #0.27: start 10732.396822, end 10991.130000
    Metadata:
      title           : Chapter 28
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, smpte170m), 720x336 [SAR 21845:18873 DAR 109225:44037], SAR 199:172 DAR 2985:1204, 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
    Stream #0:2(eng): Subtitle: dvd_subtitle, 720x480
Please use -b:a or -b:v, -b is ambiguous
[AVFilterGraph @ 0x9c18ca0] No such filter: '"'
Error configuring filters.
Creating window /usr/share/devede/werror_dialog.ui

Если я скопирую эту команду в оболочку, результат будет другим:

    $ ffmpeg -i ~/input.mkv -vf scale=720:412,fifo,pad=720:576:0:82:0x000000 -y -target pal-dvd -sn -acodec copy -g 12 -t 60.0 -ac 2 -s 720x576 -threads 3 -trellis 1 -mbd 2 -b 2616000 -aspect 16:9 /var/tmp/previewfile_01_01.mpg -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a
    ffmpeg version N-59114-gcc0e2ba Copyright (c) 2000-2013 the FFmpeg developers
      built on Dec 15 2013 05:22:20 with gcc 4.6 (Debian 4.6.3-1)
      configuration: --prefix=/root/ffmpeg-static/32bit --arch=x86_32 --extra-cflags='-m32 -I/root/ffmpeg-static/32bit/include -static' --extra-ldflags='-m32 -L/root/ffmpeg-static/32bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
      libavutil      52. 58.100 / 52. 58.100
      libavcodec     55. 45.101 / 55. 45.101
      libavformat    55. 22.100 / 55. 22.100
      libavdevice    55.  5.102 / 55.  5.102
      libavfilter     3. 92.100 /  3. 92.100
      libswscale      2.  5.101 /  2.  5.101
      libswresample   0. 17.104 /  0. 17.104
      libpostproc    52.  3.100 / 52.  3.100
    Trailing options were found on the commandline.
    Input #0, matroska,webm, from '~/input.mkv':
      Duration: 03:03:11.13, start: 0.000000, bitrate: 898 kb/s
        Chapter #0.0: start 0.000000, end 232.982856
        Metadata:
          title           : Chapter 1
        Chapter #0.1: start 232.982856, end 479.729356
        Metadata:
          title           : Chapter 2
        Chapter #0.2: start 479.729356, end 573.322856
        Metadata:
          title           : Chapter 3
        Chapter #0.3: start 573.322856, end 1007.089522
        Metadata:
          title           : Chapter 4
        Chapter #0.4: start 1007.089522, end 1375.590989
        Metadata:
          title           : Chapter 5
        Chapter #0.5: start 1375.590989, end 2044.258989
        Metadata:
          title           : Chapter 6
        Chapter #0.6: start 2044.258989, end 2395.443156
        Metadata:
          title           : Chapter 7
        Chapter #0.7: start 2395.443156, end 2863.110356
        Metadata:
          title           : Chapter 8
        Chapter #0.8: start 2863.110356, end 3193.657244
        Metadata:
          title           : Chapter 9
        Chapter #0.9: start 3193.657244, end 3327.290744
        Metadata:
          title           : Chapter 10
        Chapter #0.10: start 3327.290744, end 3801.214189
        Metadata:
          title           : Chapter 11
        Chapter #0.11: start 3801.214189, end 4209.622189
        Metadata:
          title           : Chapter 12
        Chapter #0.12: start 4209.622189, end 4484.897189
        Metadata:
          title           : Chapter 13
        Chapter #0.13: start 4484.897189, end 4971.299778
        Metadata:
          title           : Chapter 14
        Chapter #0.14: start 4971.299778, end 5710.371444
        Metadata:
          title           : Chapter 15
        Chapter #0.15: start 5710.371444, end 5999.627078
        Metadata:
          title           : Chapter 16
        Chapter #0.16: start 5999.627078, end 6423.417111
        Metadata:
          title           : Chapter 17
        Chapter #0.17: start 6423.417111, end 6593.470322
        Metadata:
          title           : Chapter 18
        Chapter #0.18: start 6593.470322, end 7171.923244
        Metadata:
          title           : Chapter 19
        Chapter #0.19: start 7171.923244, end 7462.630322
        Metadata:
          title           : Chapter 20
        Chapter #0.20: start 7462.630322, end 8388.505278
        Metadata:
          title           : Chapter 21
        Chapter #0.21: start 8388.505278, end 8734.233989
        Metadata:
          title           : Chapter 22
        Chapter #0.22: start 8734.233989, end 9171.087078
        Metadata:
          title           : Chapter 23
        Chapter #0.23: start 9171.087078, end 9439.688744
        Metadata:
          title           : Chapter 24
        Chapter #0.24: start 9439.688744, end 9770.936322
        Metadata:
          title           : Chapter 25
        Chapter #0.25: start 9770.936322, end 10253.918822
        Metadata:
          title           : Chapter 26
        Chapter #0.26: start 10253.918822, end 10732.396822
        Metadata:
          title           : Chapter 27
        Chapter #0.27: start 10732.396822, end 10991.130000
        Metadata:
          title           : Chapter 28
        Stream #0:0(eng): Video: h264 (High), yuv420p(tv, smpte170m), 720x336 [SAR 21845:18873 DAR 109225:44037], SAR 199:172 DAR 2985:1204, 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
        Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
        Stream #0:2(eng): Subtitle: dvd_subtitle, 720x480
    Please use -b:a or -b:v, -b is ambiguous
    Output pad "default" with type video of the filter instance "Parsed_overlay_0" of overlay not connected to any destination

Как записать этот поток субтитров на выходное видео?

2
задан 17 December 2013 в 23:21

3 ответа

Проблемы

Я вижу несколько проблем с вашей командой:

  • Вся фильтрация должна быть в одном фильтре .

  • У вас много противоречивых команд: например, вы используете видеофильтр scale , затем вы используете -target, который будет масштабироваться, и вы используете -s, который также будет масштабироваться. Вы используете -acodec copy - потоковое копирование аудио, но вы также включаете -ac 2 для включения стерео. Они взаимоисключающие, поэтому что-то игнорируется.

  • Вы разместили опции после вывода. Я не уверен, как ffmpeg это интерпретирует. Вариант размещения имеет значение.

Пример

Who's a good pig?

ffmpeg -y -i input.mkv -filter_complex "[0:v:0][0:s:0]overlay[vid]" -map "[vid]" -map 0:a \
-target pal-dvd -acodec copy -t 60 output.mpg

Примечание

Ваше видео имеет размер 720x336, но субтитры имеют разрешение 720x480. Возможно, вам придется использовать crop для субтитров, прежде чем использовать overlay :

[0:s:0]crop=iw:336[s1];[0:v:0][s1]overlay[vid]

Или же вы можете использовать отрицательное значение для y координата в overlay:

[0:v:0][0:s:0]overlay=0:H-h[vid]
0
ответ дан 17 December 2013 в 23:21
ffmpeg -i the_equalizer3.mpg -i the_equalizer3.sub -i the_equalizer3.idx -filter_complex "[0:v][2:s]overlay" -vcodec mpeg4 -vb 6000000 -r 59.94 -aspect 16:9 -acodec libmp3lame -async 48000 -vol 1250 the_equalizer-captioned2.mp4

Материал -filter complex - это важная часть, выше - вход 0 - это видео, вход 2 - это субтитры для наложения.

Если у вас есть отдельный файл vobsub и idx, у меня была определенная степень успеха с вышеуказанной командой (с использованием недавнего статического git-релиза ffmpeg). Интересно то, что мне пришлось указать файл .idx для наложения, а не файл .sub. Возможно, извлечение потока подзаголовка, а затем импорт извлеченных файлов, когда кодирование может работать?

0
ответ дан 17 December 2013 в 23:21

Предположим, что ваши входные файлы - infile.mp4, infile.idx и infile.sub, и вы хотите объединить их все в outfile.mkv. Будет делать следующее:

ffmpeg -i infile.mp4 -i infile.idx -i infile.sub -map 0: v -map 0: a -c copy -map 1 -c: s: 1 dvd_subtitle -метаданные: s: s: 1 language = fre outfile.mkv

0
ответ дан 17 December 2013 в 23:21

Другие вопросы по тегам:

Похожие вопросы: