2 votes

Comment puis-je graver des sous-titres vobsub en utilisant ffmpeg ?

J'ai un MKV que j'utilise pour créer un DVD avec DeVeDe.

Le MKV contient des sous-titres intégrés au format vobsub, que DeVeDe ne prend pas en charge (ou est bogué, je ne suis pas sûr).

J'ai décidé de graver les sous-titres sur la sortie en utilisant l'option de paramètres supplémentaires de ffmpeg, que j'ai pris ici :

https://trac.ffmpeg.org/wiki/How%20to%20burn%20subtitles%20into%20the%20video

J'ai donc mis à jour la dernière version de ffmpeg et ajouté les paramètres supplémentaires suivants :

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

Donc la commande complète est :

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

Mais de DeVeDe j'obtiens :

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

En l'exécutant dans un Shell, on obtient :

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

La documentation du filtre est ici : http://ffmpeg.org/ffmpeg-filters.html#overlay-1

Mais je ne peux pas faire la tête ou la queue de ça. Les paramètres -map sont également un mystère.

Voici les détails des flux :

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

Sortie complète de 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

Si je copie cette commande dans un Shell, la sortie est différente :

    $ 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

Comment puis-je graver ce flux de sous-titres sur la vidéo de sortie ?

5voto

Robert Gilliam Points 21

Les problèmes

Je vois plusieurs problèmes avec votre commande :

  • Tous les filtrages doivent être effectués dans un délai d'un graphique du filtre .

  • Vous avez de nombreuses commandes contradictoires : par exemple, vous utilisez la commande scale filtre vidéo alors vous utilisez -target qui sera mis à l'échelle, et vous utilisez -s qui sera également à l'échelle. Vous utilisez -acodec copy a copie du flux l'audio, mais vous incluez aussi -ac 2 pour forcer la stéréo. Ces options s'excluent mutuellement, ce qui signifie que quelque chose est ignoré.

  • Vous avez placé des options après la sortie. Je ne sais pas comment ffmpeg va interpréter ça. Placement en option questions.

Exemple

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

Note

Votre vidéo est en 720x336, mais vos sous-titres sont en 720x480. Vous devrez peut-être utiliser crop sur les sous-titres avant d'utiliser overlay :

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

Ou alternativement, vous pouvez utiliser une valeur négative sur l'option y coordonnées dans overlay :

[0:v:0][0:s:0]overlay=0:H-h[vid]

4voto

michel Points 41

Supposons que vos fichiers d'entrée sont infile.mp4 , infile.idx y infile.sub et vous souhaitez les combiner en outfile.mkv vous avez besoin de ce qui suit :

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 -metadata:s:s:1 language=fre outfile.mkv

1voto

rybl Points 358
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 Le truc est la partie importante, ci-dessus - l'entrée 0 est la vidéo, l'entrée 2 est les sous-titres, pour la superposition.

Si vous avez un fichier vobsub et un fichier idx séparés, j'ai eu un certain succès avec la commande ci-dessus (en utilisant une récente version git statique de ffmpeg). Ce qui est intéressant, c'est que j'ai dû spécifier l'attribut .idx pour la superposition et non le fichier .sub fichier. Peut-être qu'extraire le flux de sous-titres, puis importer les fichiers extraits lors de l'encodage pourrait fonctionner ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X