converti .vobs decrittografati in .avi con ffmpeg su ubuntu


2

Ho un file .vob che è stato strappato da un dvd, quando guardo .vob è un video di ottima qualità e audio in inglese 5.1 ma quando uso ffmpeg ha video di spazzatura e audio mono francese.

Quello stava usando questo comando:

ffmpeg -i /samba/ripping/vobs/12161840#2.vob -f avi /samba/ripping/avis/test.avi

Ho provato alcune varianti diverse su questo, ma non torna mai con qualcosa di buono, solo file più grandi con video scadente e suono errato.

Conosco bene i video e esistono i flussi audio corretti, quindi come posso selezionare una traccia 5.1 e ottenere un buon video?

ffmpeg fornisce i dettagli .vob come:

Input #0, mpeg, from '/samba/ripping/vobs/12161840#2.vob':
   Duration: 00:42:05.56, start: 0.287267, bitrate: 5738 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8436 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.3[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
Output #0, avi, to '/samba/ripping/avis/test.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 720x576 [PAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, mono, s16, 64 kb/s
Stream mapping:
   Stream #0.0 -> #0.0
   Stream #0.3 -> #0.1

Risposte:


2

Le opzioni di codifica predefinite sono basse, ad esempio il bitrate audio è 64k. Puoi aumentare questi valori con opzioni extra da riga di comando:

ffmpeg -i sourcefile.vob -ab 128kb -qscale 4 newfile.avi

-ab 128kbimposta il bitrate audio medio su 128kb e -qscale 3imposta la scala del quantizzatore video, dove q è 1 (migliore) o 31 (peggiore) qualità.

Per comparisson, per un video di 5 minuti con una risoluzione di 700x576 con audio da 128kb:

  • q 10 = ~ 40 MB
  • q 4 = ~ 80 MB

Facendo questo un altro passo, puoi convertire in batch un sacco di vob in una directory con questo comando bash:

for f in *.vob; do ffmpeg -i "$f" -ab 128kb -qscale 4 "${f%%.vob}.avi"; done;

Includiamo $ f tra virgolette nel caso in cui ci siano spazi nei nomi dei file e $ {f %%. Vob} rimuove l'estensione vob prima di aggiungere la nostra estensione avi. (Questa è la sostituzione dei parametri in bash, molto utile! Http://tldp.org/LDP/abs/html/parameter-substitution.html )

Ci sono molte altre opzioni che puoi leggere su: http://www.ffmpeg.org/ffmpeg-doc.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.