Comment «graver» une piste de sous-titres sur un fichier vidéo mp4

10

Je voudrais faire un fichier de sous-titres pour faire partie d'un fichier vidéo mp4, afin de ne pas avoir à traiter deux fichiers distincts.

J'imagine deux façons:

  • Faites du sous-titre une partie intrinsèque de la vidéo. Cela nécessitera un ré-encodage vidéo.
  • Faites du sous-titre un flux distinct, mais toujours intégré dans le même fichier vidéo. C'est beaucoup plus préférable, surtout parce que je peux le désactiver (contrairement à l'autre approche), ou même jouer avec le type / taille de police.

Comment faire les choses de la 2ème façon? Il serait également intéressant de savoir comment fonctionne la 1ère approche.

tshepang
la source
1
Je ne l'ai pas encore réglé, mais je suis très intéressé ... Il semble que le conteneur mp4 (MPEG-4) puisse gérer des flux de sous-titres embarqués séparés .. donc (pour moi) ce serait la voie à suivre. . Si vous vous greffe dur les sous-titres dans la vidéo elle-même, vous devez ré-encoder la vidéo et ils sont intégrés pour toujours ... Le seul avantage des sous-titres hard "codés" est que le lecteur vidéo n'a pas besoin de soyez conscient du flux de sous-titres mp4 ... Il est assez simple d'encoder en dur un AVI, mais je n'ai pas encore eu besoin d'utiliser des flux de sutitle (encore :). Où est le format de vos sous-titres?
Peter.O
@fred Mon fichier de sous-titres se termine par .srt, et Nautilus me dit que le format est des sous-titres SubRip (application / x-subrip).
tshepang

Réponses:

9

Le format de conteneur Matroska (mkv) prend en charge les sous-titres textuels intégrés en tant que flux séparé dans le fichier.

Vous pouvez utiliser mkvmerge pour remuxer le fichier en .mkv et inclure les sous-titres dans la sortie, que vous pouvez activer / désactiver lors de la lecture de la vidéo. Notez que cette méthode ne réencodera PAS la vidéo ou l'audio, elle met simplement les mêmes données dans un format de conteneur différent, donc cela ne diminuera pas la qualité de la vidéo.

mkvmerge -o output.mkv video.mp4 subtitles.srt
axel_c
la source
A fonctionné comme un charme, et si vite j'ai pensé que ça s'est écrasé au début!
Tomislav Nakic-Alfirevic
3

Dans un package appelé gpac, il existe un utilitaire CLI appeléMP4Box

Voici un exemple de ce qui a fonctionné pour moi ..

MP4Box  -add ~/file.noaudio.mp4 \
        -add ~/file.mp3 \
        -add ~/file.srt \
             ~/file.MP4Box.mp4   

J'ai utilisé une vidéo uniquement et audio uniquement, mais cela fonctionnera sûrement (?) Avec un "film" audio + vidéo normal ... Il est très tard, donc je vais en rester là ...

Remarque: Les sous-titres fonctionnent dans Totem, mais pas dans SMPlayer ...

Peter.O
la source
1

Essayez quelque chose comme:

mencoder -oac copy -ovc copy -sub subs.srt video.mp4 -o new_video.mp4
gelraen
la source
Ça ne marche pas. Il en résulte un son et une vidéo mutilés et la vidéo est tronquée (le fichier initial est ~ 1,6 Go et le fichier résultant est ~ 200 Mo). J'utilise mencoder 1.0-rc3.
tshepang
J'ai un fichier mp4 et un srt. Mais avec ces arguments, le sous-titre n'apparaît pas sur le fichier résultant. :(
TrueY
J'ai regardé exactement ce que je cherchais. Je l'ai essayé avec une vidéo WebM (piste vidéo VP8, piste audio VORBIS) et j'ai obtenu une vidéo cassée en conséquence. La honte. : \
Tomislav Nakic-Alfirevic