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.
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
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
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 +
.
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: