Video

如何將 VOB 文件轉換為 avi?

  • November 1, 2019

我正在嘗試將從 DVD 複製的 VOB 文件轉換為 Ubuntu 13.10 中的 avi。我試過dvdrip了,由於幀數錯誤或其他原因而失敗。我也嘗試過 acidrip,但它總是選擇我不想使用的音軌。我希望有一個命令行解決方案來創建具有以下功能的 avi:

  • 可與 mplayer 一起使用(即使用步進函式)
  • 根據需要帶有字幕(或根本沒有字幕)
  • 使用正確的音軌
  • 影片和音頻同步

我嘗試了一些命令ffmpegavconv設法創建了一個 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
  1. 以下命令
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
  1. 以下命令
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
  1. 以下命令
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
  1. 以下命令
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. 我試圖在這裡給出命令(來自 Xeratul 的第三篇文章),但它因錯誤而停止

FATAL: Cannot initialize video driver.
  1. 我嘗試了下面的建議來查看mencoder 頁面。此頁面建議使用兩個通行證:

第一個讀取有關電影的資訊,第二個使用該資訊進行編碼。

但在第二遍中既沒有解釋要提取*哪些資訊,也沒有解釋**如何使用它們。*所以我使用了以下命令:

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

它確實轉換了影片,但帶有不需要的字幕。目前還不清楚如何避免使用字幕。

為了擺脫字幕,我相信您可以-nosub在 .VOB 文件名之後添加開關。

例子

$ 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 幀中用作預測器的幀(定義: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,-10with $WIDTHas-1來保持原始寬度或新的(通常更小)寬度:這是必要的,因為 H.264 編解碼器使用方形像素,而 DVD 使用矩形像素。

  • scale=-1
  • -10
  • harddup

引用自:https://unix.stackexchange.com/questions/106374