Saya mencoba untuk mengkonversi file VOB yang disalin dari DVD ke avi di Ubuntu 13.10. Saya mencoba dvdrip
, yang gagal karena kesalahan jumlah bingkai atau sesuatu. Saya mencoba acidrip juga, tetapi selalu memilih trek audio yang tidak ingin saya gunakan. Saya lebih suka memiliki solusi baris perintah untuk membuat avi dengan fitur berikut:
- dapat digunakan dengan mplayer (yaitu menggunakan fungsi langkah)
- dengan subtitle sesuai kebutuhan (atau tidak ada sama sekali)
- dengan trek audio yang benar
- dengan video dan audio dalam sinkronisasi
Aku mencoba beberapa ffmpeg
dan avconv
perintah dan berhasil membuat avi, tapi video dan audio completly tidak sinkron. Jadi opsi apa yang harus saya gunakan untuk mengonversi file VOB ke file avi?
Saya akan sangat menghargai beberapa penjelasan tentang opsi yang disarankan!
Informasi tambahan:
The
ffmpeg
perintah memberikan output berikut untuk file inputInput #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
Perintah berikut
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
misalnya mengakibatkan crash pada sesi Ubuntu saya.
Perintah berikut
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
misalnya mengakibatkan kesalahan berikut:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
Perintah berikut
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
misalnya mengakibatkan kesalahan berikut:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Perintah berikut
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
misalnya sepertinya berfungsi untuk beberapa frame. Tetapi segera saya menemukan banyak kesalahan dari formulir
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
Perintah berikut
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
melakukan beberapa konversi, tetapi (i) menggunakan subtitle meskipun saya tidak ingin menggunakannya (ii) salah audio (audio dan video sangat salah tempat) dan (iii) tampaknya lebih lambat daripada film sebenarnya berjalan (mungkin butuh 2 jam untuk film berdurasi 90 menit).
Saya mencoba perintah yang diberikan di sini (pos ketiga dari Xeratul), tetapi terhenti karena kesalahan
FATAL: Cannot initialize video driver.
Saya mencoba saran yang dibuat di bawah ini untuk melihat halaman mencoder . Halaman ini menyarankan untuk menggunakan dua pass:
yang pertama membaca informasi tentang film, yang kedua menggunakan informasi itu untuk menyandikan.
tetapi tidak dijelaskan informasi mana yang akan diekstraksi atau bagaimana menggunakannya di pass kedua. Jadi saya menggunakan perintah berikut:
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
yang memang mengkonversi video, tetapi dengan subtitle yang tidak diinginkan. Tidak jelas sama sekali bagaimana saya bisa menghindari menggunakan subtitle.
sumber
ffmpeg
sudah ditinggalkan sejak lama, Anda seharusnya menggunakan penggantinya sendiri:avconv
.avconv
untuk mengonversi file VOB ke avi. Perintah ituavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
memberi kesalahanApplication 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
coba iniError 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
kemudianmencoder 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
- mengambil yang sebagian dari doc Arch @ dg99 terkait.Jawaban:
Untuk menghilangkan subtitle, saya yakin Anda dapat menambahkan
-nosub
switch, tepat setelah nama file .VOB.Contoh
Detail
Mantra-mantera ini seringkali sangat padat sehingga untuk memecah yang satu ini sedikit
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
daftar codec lainnya
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
estimasi gerakan fullpixel alg .:
me=umh
CATATAN: umh - pencarian multi-hexagon tidak merata (lambat)
aktifkan semua jenis makroblok:
partitions=all
tingkat-distorsi kuantisasi optimal:
trellis=1
CATATAN: 2 - diaktifkan selama semua keputusan mode (lambat, membutuhkan subq> = 6)
nilai kenaikan / penurunan quantizer:
qp_step=4
CATATAN: nilai maksimum dimana quantizer dapat bertambah / dikurangi antar frame (default: 4)
kompresi quantizer (default: 0.6):
qcomp=0.7
direct_pred=auto
interval maksimum antara frame kunci dalam bingkai:
keyint=300
opsi setelah ini adalah filter video:
-vf
CATATAN: Untuk filter video beralih, penting bahwa Anda menggunakan
harddup
sebagai filter terakhir: itu akan memaksa MEncoder untuk menulis setiap frame (bahkan yang duplikat) dalam output. Juga, perlu untuk menggunakanscale=$WIDTH,-10
dengan$WIDTH
sebagai-1
untuk menjaga lebar asli atau baru, biasanya lebih kecil, lebar: perlu karena H.264 codec menggunakan piksel dan DVD persegi sebagai gantinya menggunakan piksel persegi panjang.scale=-1
-10
harddup
sumber
-noaudio
dan dengan-oac copy
saya mendapatkan audio, yang tidak sinkron dengan video. Ini bisa dipindahkan, dengan kecepatan yang berbeda atau keduanya. Adakah saran bagaimana saya bisa mendapatkan juga audio yang benar? Dan bagaimana dengan banyak file VOB? Bagaimana mengemas konten ke dalam satu.avi
file (atau format lain)?-oac copy
dengan 2 pass, karena Anda meng-encode ulang videonya, Anda harus menyandikan ulang audio bersamaan dengan itu. Seperti "kemasan" mereka, file vob harus digabung menyukai ini:cat *.vob all.vob
. Kemudian gunakanall.vob
di cmd mencoder. Ada cara lain untuk melakukan ini juga.Jika Anda berniat untuk menggunakan
mplayer
, maka Anda harus mencobamencoder
( http://www.mplayerhq.hu ). Salah satu fitur terbaiknya adalah bahwa opsi pemutaran yang Anda ketahuimplayer
berperilaku cukup banyak dengan cara yang sama ketika melakukan encoding. Juga, ada banyak dokumentasi dan utas email yang mencakup persis apa yang Anda tanyakan:sumber
mencoder
halaman. Ada beberapa kelompok bajak laut yang hanya menggunakanmencoder
untuk semua pekerjaan mereka; begitulah sederhana, kuat, dan otomatiknya.Saya tahu ini posting lama tetapi mencari masalah ini di internet pertanyaan di atas muncul, dan beberapa entri lainnya bahkan lebih tua.
Saya telah mencoba berbagai alat tetapi pada akhirnya saya paling puas dengan perintah ini:
Ini adalah sedikit modifikasi dari yang saya temukan di sini .
Saya baru saja mengganti codec audio (
libflac
tidak ada di sistem saya, jadi saya menggantinya denganlibmp3lame
( sumber ) dan-crf
nilai untuk meningkatkan kualitas. Format lain juga dapat digunakan, sepertimp4
.Dalam pengujian saya (dengan prosesor yang agak biasa-biasa saja) file vob 2,6 GB (sudah digabungkan dari tiga file lainnya) dikonversi ke video avi 960 MB dengan kualitas yang sebanding dalam waktu sekitar 50 menit.
20 adalah kualitas yang dapat diterima menengah (dalam artikel bantuan Handbrake yang telah saya lihat). Angka yang lebih besar mengurangi ukuran dengan mengorbankan kualitas. Di atas 20 kehilangan kualitas jelas.
Lebih baik menggunakan perintah itu di terminal untuk melihat progresnya, bunuh lebih mudah, dll.
Apa yang saya sukai dari perintah ini adalah bahwa ia memberikan keseimbangan yang baik antara kualitas, waktu dan ukuran dan dapat dengan mudah digunakan dari menu konteks manajer file.
Cara melakukannya tergantung pada manajer file. Perintah dapat dengan mudah ditambahkan ke Thunar dan Nautilus sebagai 'tindakan kustom'. Saya telah menambahkannya ke Dolphin dengan
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
file seperti ini:sumber