Nasıl VOB dosyası avi dönüştürmek için?


10

Bir DVD kopyalanan bir VOB dosyasını Ubuntu 13.10 bir avi içine dönüştürmek çalışıyorum. Denedim dvdrip, bir kare sayısı hatası ya da bir şey nedeniyle başarısız oldu. Ben de acidrip denedim, ama her zaman kullanmak istemediğim bir ses parçası seçer. Aşağıdaki özelliklere sahip bir avi oluşturmak için bir komut satırı çözümüne sahip olmayı tercih ederim:

  • mplayer ile kullanılabilir (yani adım işlevlerini kullanarak)
  • altyazı gerektiği gibi (veya hiç kimse)
  • doğru ses parçasıyla
  • senkronize video ve ses ile

Bazılarını denedim ffmpegve avconvkomutları denedim ve bir avi oluşturmayı başardım, ancak video ve ses tamamen senkronize değildi. Peki VOB dosyasının bir avi dosyasına dönüştürülmesi için hangi seçenekleri kullanmalıyım?

Önerilen seçenekler hakkında bazı açıklamalar takdir ediyorum!

Ek bilgi:

  1. ffmpegKomut Giriş dosyası için aşağıdaki çıktıyı verir

    Input #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
    
  2. Aşağıdaki komut

    ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
    

    örneğin Ubuntu oturumumun çökmesine neden oldu.

  3. Aşağıdaki komut

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
    

    örneğin aşağıdaki hatayla sonuçlandı:

    Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374
    av_interleaved_write_frame(): Invalid argument
    
  4. Aşağıdaki komut

    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
    

    örneğin aşağıdaki hatayla sonuçlandı:

    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
    
  5. Aşağıdaki komut

    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
    

    örneğin bazı kareler için çalışıyor gibiydi. Ama çok geçmeden formun birçok hatayla karşılaştım

    [ac3 @ 0x120d480] frame sync error
    Error while decoding stream #0:1
    frame CRC mismatch
    
  6. Aşağıdaki komut

    mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
    

    bazı dönüştürme yaptım, ancak (i) kullanmak istemediğim halde altyazı kullanıyor (ii) sesi yanlış anladı (ses ve video çok yanlış yerleştirildi) ve (iii) filmin gerçekte gittiğinden daha yavaş görünüyor (alabilir) 90 dakikalık bir film için 2 saat).

  7. Burada (Xeratul üçüncü yazı) verilen komutu denedim , ancak hata ile durdu

    FATAL: Cannot initialize video driver.
    
  8. Mencoder sayfasına bakmak için aşağıda yapılan öneriyi denedim . Bu sayfa iki geçiş kullanmanızı önerir:

    birincisi film hakkındaki bilgileri okur, ikincisi bu bilgileri kodlamak için kullanır.

    ancak hangi bilginin çıkarılacağı veya ikinci geçişte nasıl kullanılacağı açıklanmamaktadır . Bu yüzden aşağıdaki komutu kullandım:

    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
    

    videoyu dönüştürdü, ancak istenmeyen bir altyazıyla. Bir altyazı kullanmaktan nasıl kaçınabileceğim net değil.


ffmpeguzun zaman önce beri itiraz edildi, sen kendi halefini kullanmak gerekiyordu: avconv.
user2485710

Peki nasıl avconvavi sonra VOB dosyalarını dönüştürmek için kullanın . Komut avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avibir hata verdi Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument...
Alex

avconv için kılavuzda bir örnek var, şifresi çözülmüş VOB dosyaları için bunu avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avideneyin
user2485710

Bu bir hata veriyorError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Alex

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/nullO zaman deneyin mencoder 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- kısmen Arch doc @ dg99'dan aldı.

Yanıtlar:


6

Altyazılardan kurtulmak için -nosubanahtarı .VOB dosyasının adından hemen sonra ekleyebileceğinizi düşünüyorum .

Misal

$ mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosub -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

ayrıntılar

Bu büyüler genellikle çok yoğundur, bu yüzden bunu biraz yıkmak için

  • giriş dosyası: Videos/Test/VIDEO_TS/VTS_01_1.VOB
  • çıktı dosyası: -o video.avi
  • altyazı yok: -nosub
  • sesi kodlamayın: -nosound
  • verilen codec ile kodlayın: -ovc x264

diğer kodeklerin listesi

$ mencoder -ovc help
MEncoder SVN-r36171-4.8.1 (C) 2000-2013 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   lavc     - libavcodec codecs - best quality!
   libdv    - DV encoding with libdv v0.9.5
   xvid     - XviD encoding
   x264     - H.264 encoding
  • x264 kodlama seçenekleri: x264encopts
  • direkt hareket vektörleri için ayar modu :direct=auto
  • geçiş sayısı :pass=2
  • hedef kodlama bit hızı: bitrate=900
  • pre. B ve P çerçevelerinde belirleyici olarak kullanılan çerçeveler (def: 3):frameref=5
  • eşzamanlı B-karesi sayısı: bframes=1
  • fullpixel hareket tahmini alg .: me=umh

    NOT: umh - düzensiz çoklu altıgen arama (yavaş)

  • tüm makro blok türlerini etkinleştir: partitions=all

  • hız-bozulma optimal nicemleme: trellis=1

    NOT: 2 - tüm mod kararları sırasında etkin (yavaş, subq> = 6 gerektirir)

  • niceleyici artış / decerement değeri: qp_step=4

    NOT: nicelleştiricinin çerçeveler arasında artırılabileceği / azaltılabileceği maksimum değer (varsayılan: 4)

  • niceleyici sıkıştırması (varsayılan: 0.6): qcomp=0.7

  • B-karelerindeki makro bloklar için hareket tahmini: direct_pred=auto
  • çerçevelerdeki ana kareler arasındaki maksimum aralık: keyint=300

  • bundan sonraki seçenekler video filtreleridir: -vf

NOT: Video filtresi anahtarları için, harddupson filtre olarak kullanmanız önemlidir : MEncoder'ı çıktıdaki her kareyi (yinelenen kareleri bile) yazmaya zorlar. Ayrıca, kullanmak gerekir scale=$WIDTH,-10ile $WIDTHolduğu gibi -1orijinal genişlik veya yeni, genellikle daha küçük, genişliği tutmak için: H.264 codec'i kare piksel ve DVD'ler yerine dikdörtgen pikseller kullanır kullanır çünkü gereklidir.

  • scale=-1
  • -10
  • harddup

Videoyu nasıl alacağınıza ilişkin bu iyi açıklanmış örnek için çok teşekkür ederim. Önerilen komutunuz videoyu çıkarmak için mükemmel çalışıyor gibi görünüyor. Ancak, şimdi ses yok. Eğer komutunuzu onsuz -noaudiove birlikte kullanırsam -oac copy, videoyla senkronize olmayan sesi alıyorum. Yer değiştirir, farklı bir hızda veya her ikisi birden. Herhangi bir öneri nasıl ses doğru alabilirim? Peki ya birden fazla VOB dosyası? İçeriği tek bir .avidosyaya (veya başka bir biçime) nasıl paketleyebilirim ?
Alex

@Alex - sadece bir düşünce, ama sadece -oac copy2 geçişli bir yapabileceğinizi düşünmüyorum , çünkü videoyu yeniden kodladığınız için sesi onunla birlikte yeniden kodlamanız gerekecek. Onları "ambalaj" gelince, VOB dosyaları bunu beğendi birleşti edilmelidir: cat *.vob all.vob. Sonra all.vobmencoder cmd'de kullanın . Bunu yapmanın başka yolları da var.
slm

3

Kullanmak mplayeristiyorsanız, denemelisiniz mencoder( http://www.mplayerhq.hu ). En iyi özelliklerinden biri, mplayerkodlama sırasında bildiğiniz oynatma seçeneklerinin hemen hemen aynı şekilde davranmasıdır. Ayrıca, tam olarak sorduğunuz şeyi kapsayan birçok doküman ve e-posta dizisi vardır:


Sağlanan bağlantılar düzinelerce farklı örnek ve yüzlerce seçenek içerir. Soruma açık ve kesin bir cevap değil.
Alex

1
Doğru, ama itibar kazanmak için cevap yazmadım, size yardımcı olmak için yazdım. Bazı mencodersayfaları okumayı düşünün . Sadece mencodertüm çalışmaları için kullanılan birkaç korsan grubu vardır ; bu kadar basit ve güçlü ve otomatik hale getirilebilir.
dg99

2

Bu eski gönderme biliyorum ama bu sorunu internette arama yukarıdaki soru açılır ve diğer bazı girişler bile daha eski.

Farklı araçlar denedim ama sonunda bu komuttan en çok memnunum:

ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

Burada bulduğumun hafif bir modifikasyonu .

Sadece ses codec bileşenini değiştirdim ( libflacsistemimde yoktu, bu yüzden onu libmp3lame( kaynak ) ve -crfkaliteyi artırmak için değer ile değiştirdim. Diğer formatlar da kullanılabilir mp4.

Testimde (oldukça vasat bir işlemciyle) 2.6 GB'lık bir vob dosyası (zaten diğer üç dosyadan birleştirilmiş), yaklaşık 50 dakika içinde karşılaştırılabilir kalitede 960 MB'lik bir avi videosuna dönüştürüldü.

20 orta derecede kabul edilebilir kalitedir (El Freni yardım makalelerinde gördüğüm). Daha büyük sayılar, kalite pahasına boyutu azaltır. 20'nin üzerinde kalite kaybı açıktır.

İlerlemeyi görmek, daha kolay öldürmek vb. İçin bu komutu bir terminalde kullanmak daha iyidir.

Ne bu komut hakkında gibi kalite, zaman ve boyut arasında iyi bir denge sağlamak ve dosya yöneticisi bağlam menüsünden kolayca kullanılabilir olmasıdır.

Bunun nasıl yapılacağı dosya yöneticisine bağlıdır. Komut, Thunar ve Nautilus'a 'özel eylem' olarak kolayca eklenebilir. Dolphin'e ~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktopböyle bir dosyayla ekledim :

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,video/mpeg
MimeType=video/mpeg
Actions=Convert2avi
X-KDE-Submenu=Convert vob (DVD video)
Encoding=UTF8

[Desktop Action Convert2avi]
Name=to avi
Icon=video
Exec=konsole -e ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.