web-dev-qa-db-fra.com

FFMpeg ouvrir un DVD VOB chaîne?

Je suis nouveau dans FFMpeg, donc c'est peut-être une question idiote, mais je ne vois pas la réponse dans la documentation.

Je veux décoder les images d'un DVD vob. Ouvrir le premier VOB du groupe fonctionne bien, mais comment puis-je dire à ffmpeg de continuer au prochain VOB et de lire tous les VOB d'un DVD?

J'ai les fichiers VOB dans un dossier sur un disque dur.

24
Sugrue

Le format VOB est un sous-ensemble de mpeg , vous devriez donc pouvoir combiner les VOB que vous voulez lire comme des données mpeg: en les concaténant.

cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4

Levage Commentaire de Matt Gallagher pour augmenter la longévité/visibilité:

Les versions les plus récentes de ffmpeg prennent en charge la concaténation en tant qu’opérateur sur le fichier d’entrée. Donc, vous pouvez utiliser ... ffmpeg -i concat:VTS_01_0.VOB\|VTS_01_1.VOB\|VTS_01_2.VOB outfile.mp4

22
blahdiblah

Vous pouvez réellement utiliser la fonctionnalité de concaténation intégrée de ffmpegs, ce que je pense que vous recherchez:

ffmpeg -i "concat:$(echo *.VOB|tr \  \|)" -f mpeg -c copy -sn -y combined.mpg

Voir: http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files

12
Justin Buser

La fonctionnalité de concaténation intégrée semble être basée sur * NIX et ne fonctionne pas sous Windows pour moi. Sous Windows VobMerge semblait fonctionner pour joindre les fichiers VOB appropriés (qui, pour le film principal sur un DVD, semblaient être l’ensemble commençant à 1 Go).

Addenda _

Vous pouvez également joindre des fichiers VOB dans Windows directement à partir de la ligne de commande :

copy /b "vob1.vob" + "vob2.vob" + "vob3.vob" "voboutput.vob"

Vous pouvez omettre les guillemets s'il n'y a pas d'espace dans les noms de fichiers, mais n'oubliez pas de vous souvenir du signe /b et de tous les signes +.

4
SharpC

dans Windows, j'ai préféré "refactoriser" la concaténation et ne pas utiliser de noms de fichiers prédéfinis:

copy /b  e:\VIDEO_TS\vts*.vob  temp.vob
ffmpeg -i temp.vob .... newfile.ogg

/ b signifie: copie binaire; sinon, les retours à la ligne et autres sont traités différemment.

Mises en garde:

  • il y a parfois des fichiers VOB qui ne font pas partie du film, et je ne pouvais pas trouver un moyen automatisé de détecter lequel
  • sur les systèmes d'E/S lents, cela ajoute un temps considérable: il faut du temps pour écrire et lire le fichier temporaire.
0
Berry Tsakala