Kualitas konversi VOB dalam FFmpeg

16

Saya mencoba mengonversi file VOB ke mpeg seperti ini:

./ffmpeg.exe -i VTS_01_2.VOB -r 24  out1.mpeg

Namun, kualitasnya sangat buruk.

Saya mencoba ./ffmpeg.exe -i VTS_01_2.VOB -vcodec copy out1.mpeg

Tetapi ukuran file terlalu besar (90% dari aslinya - 300 MB untuk video berdurasi 4 menit), dan Windows Movie Maker berusaha untuk mengimpornya.

Bagaimana saya bisa mendapatkan MPEG kualitas yang layak dari VOB saya?

slhck
sumber

Jawaban:

28
ffmpeg -i input.vob -c:v copy -c:a copy output.mpg  

Perintah ini tidak mengurangi ukuran atau mengubah kualitas. Ini hanya menggantikan VOB dan mengemasnya kembali sebagai MPEG. Anda harus dibiarkan dengan kualitas yang sama persis. Ukurannya berubah minimal karena kehilangan overhead wadah VOB.

Jika Anda ingin mempertahankan kualitas dan mengurangi ukuran, Anda harus mengonversinya dengan enkoder lain seperti x264 atau XviD ke wadah MKV atau MP4, misalnya:

ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4

Ini akan memberi Anda video H.264 dan audio AAC. Ditetapkan -crf 23untuk kualitas video, di mana lebih sedikit berarti kualitas yang lebih baik (nilai-nilai waras dari 18-28). Kualitas audio dapat diubah dengan -b:a 192kuntuk bitrate tetap, atau jika Anda ingin menggunakan pembuat enkode lain seperti -c:a libfaac, Anda dapat memilih VBR dengan -q:a 100(kualitas default 100%).

Stanley Williams
sumber
Begitu ya, ini info bagus untuk diketahui. Masih mencari cara yang masuk akal untuk mengompres dan mempertahankan kualitas (4 menit pada kualitas yang layak harus dimungkinkan dalam 10-20 MB pasti ... mungkin bahkan 50MB baik-baik saja).
1
bagaimana jika ada VOB lain yang merupakan bagian dari film. Apakah ffmpeg tahu untuk memasukkannya?
Sun
1
Anda dapatcat *.VOB > output.vob
dmgl
Untuk Windows, jika Anda harus terlebih dahulu menggabungkan beberapa VOBs: copy /b "1.vob" + "2.vob" + "3.vob" "temp.vob". Lihat juga stackoverflow.com/a/29729610
Basj
4

Saya baru-baru ini melakukan beberapa pengkodean VOB setelah merobek beberapa DVD yang tak tergantikan. Menggunakan ffmpeg version 1.2.4keluar dari Homebrew di OSX:

ffmpeg -probesize 2G -analyzeduration 2G \
    -i VTS_04.VOB \
    -map 0:0 -map 0:1 -map 0:2 -map 0:9 \
    -metadata:s:a:0 language=eng -metadata:s:a:0 title="English Stereo" \
    -metadata:s:a:1 language=jap -metadata:s:a:1 title="Japanese Stereo" \
    -metadata:s:s:0 language=eng -metadata:s:s:0 title="English"
    -c:v libx264 -filter:v yadif -crf 18 -level 3.1 -tune film \
    -c:a copy \
    -c:s copy \
    OutputMovie.mkv

Saya harus mengatur -probesizedan -analyzedurationkarena file VOB 5.4GB memiliki aliran mulai nanti dalam file yang tidak ditemukan tanpa opsi ini.

Berikutnya -mapparameternya memungkinkan saya untuk memilih aliran mana yang akan diteruskan ke keluaran - aliran video, dua aliran audio pertama dan aliran ke-9, yang merupakan teks terjemahan. Gunakan ffprobe(dengan -probesize& -analyzedurationuntuk melihat daftar aliran).

Tambahkan beberapa -metadatake stream audio dan subtitle dalam output.

Opsi pengodean video setelah -c:vAnda dapat membaca tentang tempat lain .

Akhirnya salin apa adanya stream audio dan subtitle ke file output. Keluaran harus MKVdalam rangka menanamkan subtitle dan semua metadata dengan benar.

Di Macbook Air 2011 saya, penyandian ini memakan waktu sekitar 6 jam dan meludahkan file MKV 2.4GB yang sempurna.

mafrosis
sumber
-1

Sintaks pada jawaban sebelumnya tidak berfungsi pada Mac OS saya. Yang ini tampaknya berfungsi dengan baik, dengan opsi yang sedikit berbeda ( -samequntuk mencocokkan kuantizer input, -ssuntuk offset waktu mulai dan -tuntuk durasi):

ffmpeg -i VTS_01_1.VOB -sameq -strict experimental -ss 1612 -t 28 test.mpg
Jeff
sumber
3
Jawaban diurutkan berdasarkan suara, bukan berdasarkan waktu. Anda harus mengedit jawaban Anda untuk memperjelas jawaban sebelumnya yang Anda maksud.
Isaac Rabinovitch
1
Anda harus menggunakan versi lama, karena -sameqopsi ini sudah usang. Dalam versi lama gunakan -vcodec/ -acodecbukan -c:v/ -c:a.
mark4o