J'essaie de convertir un fichier VOB copié à partir d'un DVD en avi dans Ubuntu 13.10. J'ai essayé dvdrip
, ce qui a échoué en raison d'une erreur de comptage d'images ou quelque chose. J'ai également essayé acidrip, mais il a toujours choisi une piste audio que je ne voulais pas utiliser. Je préférerais avoir une solution en ligne de commande pour créer un avi avec les fonctionnalités suivantes:
- utilisable avec mplayer (c'est-à-dire en utilisant les fonctions pas à pas)
- avec le sous-titre requis (ou personne du tout)
- avec la bonne piste audio
- avec vidéo et audio synchronisés
J'ai essayé quelques - uns ffmpeg
et les avconv
commandes et a réussi à créer un fichier AVI, mais la vidéo et de l' audio étaient complètement désynchronisés. Alors, quelles options dois-je utiliser pour convertir le fichier VOB en fichier avi?
J'apprécierais quelques explications sur les options suggérées!
Information additionnelle:
La
ffmpeg
commande donne la sortie suivante pour le fichier d'entréeInput #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB': Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.3[0x81]: Audio: ac3, 0 channels [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420p
La commande suivante
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
par exemple, a entraîné un crash de ma session Ubuntu.
La commande suivante
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
par exemple, a entraîné l'erreur suivante:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
La commande suivante
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avi
par exemple, a entraîné l'erreur suivante:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
La commande suivante
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.avi
par exemple, semblait fonctionner pour certains cadres. Mais très vite j'ai rencontré de nombreuses erreurs de forme
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
La commande suivante
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
a fait une conversion, mais (i) utilise des sous-titres bien que je ne veuille pas les utiliser (ii) s'est trompé (l'audio et la vidéo sont terriblement mal placés) et (iii) semble être plus lent que le film ne le fait réellement (peut prendre 2 heures pour un film de 90 minutes).
J'ai essayé de commander donné ici (troisième message de Xeratul), mais il s'est arrêté avec l'erreur
FATAL: Cannot initialize video driver.
J'ai essayé la suggestion faite ci-dessous pour regarder la page mencoder . Cette page propose d'utiliser deux passes:
le premier lit des informations sur le film, le second utilise ces informations pour encoder.
mais il n'est pas expliqué non plus quelles informations extraire ni comment les utiliser dans le deuxième passage. J'ai donc utilisé la commande suivante:
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \ -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf scale=-1:-10,harddup -o video.avi
qui a converti la vidéo, mais avec un sous-titre indésirable. On ne sait pas du tout comment je peux éviter d'utiliser un sous-titre.
ffmpeg
est dépréciée depuis il y a longtemps, vous êtes censé utiliser son propre successeuravconv
.avconv
ensuite pour convertir les fichiers VOB en avi. La commande aavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
donné une erreurApplication provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
...avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
essayez ceciError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null
alorsmencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi
- a pris cela en partie de l'Arch doc @ dg99 lié.Réponses:
Pour se débarrasser des sous-titres, je pense que vous pouvez ajouter le
-nosub
commutateur, juste après le nom du fichier .VOB.Exemple
Détails
Ces incantations sont souvent très denses donc pour casser celle-ci un peu
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
liste des autres codecs
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
estimation du mouvement fullpixel alg .:
me=umh
REMARQUE: umh - recherche multi-hexagone inégale (lente)
activer tous les types de macroblocs:
partitions=all
quantification optimale du taux de distorsion:
trellis=1
REMARQUE: 2 - activé pendant toutes les décisions de mode (lent, nécessite subq> = 6)
valeur d'incrémentation / décélération du quantificateur:
qp_step=4
REMARQUE: valeur maximale par laquelle le quantificateur peut être incrémenté / décrémenté entre les trames (par défaut: 4)
compression du quantificateur (par défaut: 0,6):
qcomp=0.7
direct_pred=auto
intervalle maximum entre les images clés dans les images:
keyint=300
les options après cela sont des filtres vidéo:
-vf
REMARQUE: Pour les commutateurs de filtre vidéo, il est important que vous l'utilisiez
harddup
comme dernier filtre: cela forcera MEncoder à écrire chaque image (même en double) dans la sortie. En outre, il est nécessaire d'utiliserscale=$WIDTH,-10
avec$WIDTH
as-1
pour conserver la largeur d'origine ou une nouvelle largeur, généralement plus petite: elle est nécessaire car le codec H.264 utilise des pixels carrés et les DVD utilisent à la place des pixels rectangulaires.scale=-1
-10
harddup
la source
-noaudio
et avec,-oac copy
j'obtiens l'audio, qui n'est pas synchronisé avec la vidéo. Il est soit déplacé, à une vitesse différente, soit les deux. Une suggestion sur la façon dont je peux également obtenir l'audio correctement? Et qu'en est-il de plusieurs fichiers VOB? Comment emballer le contenu dans un seul.avi
fichier (ou autre format)?-oac copy
avec un 2 passes, puisque vous ré-encodez la vidéo, vous devrez ré-encoder l'audio avec. Quant à « emballer » les, les fichiers vob devraient être fusionnés aimé:cat *.vob all.vob
. Ensuite, utilisezall.vob
dans le cmencoder mencoder. Il existe également d'autres façons de procéder.Si vous avez l'intention d'utiliser
mplayer
, alors vous devriez essayermencoder
( http://www.mplayerhq.hu ). L'une de ses meilleures fonctionnalités est que les options de lecture que vous connaissezmplayer
se comportent à peu près de la même manière lors de l'encodage. En outre, il existe de nombreux documents et fils de discussion couvrant exactement ce que vous demandez:la source
mencoder
pages. Il existe plusieurs groupes de pirates qui n'utilisent quemencoder
pour tout leur travail; c'est aussi simple, puissant et automatisable.Je sais que c'est une publication ancienne, mais en recherchant ce problème sur Internet, la question ci-dessus apparaît et certaines autres entrées sont encore plus anciennes.
J'ai essayé différents outils mais au final je suis le plus satisfait de cette commande:
C'est une légère modification de celle que j'ai trouvée ici .
Je viens de remplacer le codec audio (
libflac
absent sur mon système, je l'ai donc remplacé parlibmp3lame
( source ) et la-crf
valeur pour augmenter la qualité. D'autres formats peuvent également être utilisés, commemp4
.Lors de mon test (avec un processeur plutôt médiocre), un fichier vob de 2,6 Go (déjà concaténé sur trois autres fichiers) a été converti en une vidéo avi de 960 Mo de qualité comparable en environ 50 minutes.
20 est la qualité moyenne acceptable (dans les articles d'aide Handbrake que j'ai vus). De plus grands nombres réduisent la taille au détriment de la qualité. Au-dessus de 20, la perte de qualité est claire.
Il est préférable d'utiliser cette commande dans un terminal pour voir la progression, la tuer plus facilement, etc.
Ce que j'aime dans cette commande, c'est qu'elle offre un bon équilibre entre qualité, temps et taille et qu'elle peut être facilement utilisée à partir du menu contextuel du gestionnaire de fichiers.
La procédure dépend du gestionnaire de fichiers. La commande peut être facilement ajoutée à Thunar et Nautilus en tant qu '«action personnalisée». Je l'ai ajouté à Dolphin avec un
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
fichier comme celui-ci:la source