web-dev-qa-db-ja.com

VOBファイルをaviに変換する方法は?

私はVOBファイルをUbuntu 13.10でaviに変換しようとしています。フレームカウントエラーまたは何かが原因で失敗したdvdripを試しました。 acidripも同じですが、使用したくないオーディオトラックが常に選択されます。コマンドラインソリューションを使用して、次の機能を持つaviファイルを作成したいと思います。

  • mplayerで使用可能(すなわち、step関数を使用)
  • 必要に応じて字幕付き(または誰もいない)
  • 正しいオーディオトラックで
  • ビデオとオーディオの同期

ffmpegコマンドとavconvコマンドをいくつか試し、なんとかaviを作成できましたが、ビデオとオーディオは完全に同期していませんでした。 VOBファイルをaviファイルに変換するには、どのオプションを使用する必要がありますか?

提案されたオプションの説明をお願いします!

追加情報:

  1. ffmpegコマンドは、入力ファイルに対して次の出力を提供します

    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. 次のコマンド

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

    たとえば、Ubuntuセッションがクラッシュしました。

  3. 次のコマンド

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

    たとえば、次のエラーが発生しました:

    Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374
    av_interleaved_write_frame(): Invalid argument
    
  4. 次のコマンド

    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
    

    たとえば、次のエラーが発生しました:

    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
    
  5. 次のコマンド

    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
    

    たとえば、一部のフレームでは機能するようです。しかし、すぐに私はフォームの多くのエラーに遭遇しました

    [ac3 @ 0x120d480] frame sync error
    Error while decoding stream #0:1
    frame CRC mismatch
    
  6. 次のコマンド

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

    いくつかの変換を行いましたが、(i)使用したくないのに字幕を使用している(ii)音声が間違っている(音声とビデオがひどく間違っている)と(iii)映画が実際に行くよりも遅いようです(かかるかもしれません) 90分の映画の場合は2時間)。

  7. here (Xeratulからの3番目の投稿)を指定してコマンドを実行しようとしましたが、エラーで停止しました

    FATAL: Cannot initialize video driver.
    
  8. mencoderページ を確認するために、以下の提案を試しました。このページでは、2つのパスの使用を提案しています。

    1つ目は映画に関する情報を読み取り、2つ目はその情報を使用してエンコードします。

    しかし、それは説明されていないwhich抽出する情報もhow 2番目のパスでそれらを使用することもできません。そこで、次のコマンドを使用しました。

    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
    

    これはビデオを変換しましたが、不要な字幕が付いています。字幕の使用をどのようにして回避できるかは、まったく明確ではありません。

10
Alex

字幕を取り除くには、.VOBファイルの名前の直後に-nosubスイッチを追加できると思います。

$ 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

細部

これらの呪文はしばしば非常に濃密なので、これを少し分解するために

  • 入力ファイル:Videos/Test/VIDEO_TS/VTS_01_1.VOB
  • 出力ファイル:-o video.avi
  • 字幕なし:-nosub
  • サウンドをエンコードしない:-nosound
  • 指定されたコーデックでエンコード:-ovc x264

他のコーデックのリスト

$ 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エンコードオプション:x264encopts
  • 直接モーションベクトルのモードを設定direct=auto
  • パスの数pass=2
  • ターゲットエンコーディングビットレート:bitrate=900
  • プレ。 BおよびPフレームでフレームを予測子として使用(def:3):frameref=5
  • bフレームの同時数:bframes=1
  • フルピクセルモーション推定アルゴリズム:me=umh

    注:ええと-不均一な複数六角形検索(遅い)

  • すべてのマクロブロックタイプを有効にします:partitions=all

  • レート歪み最適量子化:trellis=1

    注:2-すべてのモードの決定中に有効(遅い、subq> = 6が必要)

  • 量子化器インクリメント/デクリメント値:qp_step=4

    注:フレーム間で量子化器をインクリメント/デクリメントできる最大値(デフォルト:4)

  • 量子化器圧縮(デフォルト:0.6):qcomp=0.7

  • bフレームのマクロブロックの動き予測:direct_pred=auto
  • フレーム内のキーフレーム間の最大間隔:keyint=300

  • この後のオプションはビデオフィルターです:-vf

注:ビデオフィルタースイッチの場合、最後のフィルターとしてharddupを使用することが重要です。これにより、MEncoderはすべてのフレームを強制的に書き込みます。 (重複したものも)出力で。また、scale=$WIDTH,-10$WIDTHとして-1と一緒に使用して、元の幅または新しい通常は小さい幅を維持する必要があります。H.264コーデックは正方形のピクセルを使用するため、これが必要です。代わりに、DVDは長方形のピクセルを使用します。

  • scale=-1
  • -10
  • harddup
6
slm

mplayerを使用する場合は、mencoderhttp://www.mplayerhq.h )を試してください。最高の機能の1つは、mplayerからわかる再生オプションが、エンコード時にほぼ同じように動作することです。また、あなたが求めていることを正確にカバーする多くのドキュメントとメールスレッドがあります:

3
dg99

私はこれが古い投稿であることを知っていますが、この問題をインターネットで検索すると上記の質問がポップアップし、他のいくつかのエントリはさらに古いものです。

私はさまざまなツールを試しましたが、最終的にはこのコマンドに最も満足しています。

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

私が見つけたものを少し変更したものです here

オーディオコーデックを置き換えたところ(libflacがシステムになかったため、libmp3lamesource )と-crfの値に置き換えて品質を向上させました。mp4などの他の形式も使用できます。

私のテスト(かなり平凡なプロセッサを使用)では、2.6 GBのvobファイル(既に他の3つのファイルから連結されている)は、約50分で同等の品質の960 MBのaviビデオに変換されました。

20は中程度の許容できる品質です(私が見たHandbrakeヘルプ記事で)。数値が大きくなると、品質を犠牲にしてサイズが小さくなります。 20以上の品質低下は明らかです。

進行状況を確認したり、より簡単に終了したりするために、ターミナルでそのコマンドを使用することをお勧めします。

このコマンドで気に入っているのは、品質、時間、サイズのバランスがよく、ファイルマネージャーのコンテキストメニューから簡単に使用できることです。

その方法は、ファイルマネージャによって異なります。コマンドは「カスタムアクション」としてThunarとNautilusに簡単に追加できます。次のような~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktopファイルを使用してDolphinに追加しました。

[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

enter image description here

2
user32012