Как конвертировать VOB-файл в avi?

Я пытаюсь преобразовать файл VOB, скопированный с DVD в avi в Ubuntu 13.10. Я попробовал dvdrip , который не удалось из-за ошибки подсчета кадров или чего-то еще. Я тоже пробовал acidrip, но всегда выбирал звуковую дорожку, которую я не хотел использовать. Я бы предпочел иметь решение командной строки для создания avi со следующими функциями:

  • можно использовать с mplayer (т. е. используя функции шага)
  • с субтитрами по мере необходимости (или вообще нет)
  • с правильной звуковой дорожкой
  • с синхронизацией видео и аудио

Я пробовал некоторые команды ffmpeg и avconv и 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) кажется медленнее, чем фильм действительно идет (может потребоваться 2 часа для 90-минутного фильма).

  7. Я попытался дать команду здесь (третий пост от Xeratul), но он остановился с ошибкой

     FATAL: Cannot initialize video driver. 
  8. Я попытался сделать следующее предложение, чтобы посмотреть страницу 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 

    который конвертировал видео, но с нежелательным субтитрами. Не совсем ясно, как я могу избежать использования субтитров.

3 Solutions collect form web for “Как конвертировать VOB-файл в 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-кадрах (def: 3): frameref=5
  • одновременное число B-кадров: bframes=1
  • оценка движения на полном пикселе alg: me=umh

    ПРИМЕЧАНИЕ: 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

Если вы собираетесь использовать mplayer , вам следует попробовать mencoder ( http://www.mplayerhq.hu ). Одна из его лучших особенностей заключается в том, что параметры воспроизведения, которые вы знаете из mplayer ведут себя практически так же, как при кодировании. Кроме того, есть много документации и сообщений по электронной почте, которые касаются именно того, что вы спрашиваете:

Я знаю, что это старая публикация, но, исследуя эту проблему в Интернете, вызывается вышеупомянутый вопрос, а некоторые другие записи даже старше.

Я пробовал разные инструменты, но в конце я очень доволен этой командой:

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

Это небольшая модификация той, которую я нашел здесь .

Я только что заменил аудиокодек ( libflac отсутствовал в моей системе, поэтому я заменил его libmp3lame ( источник ) и значение -crf для повышения качества. Также можно использовать другие форматы, например mp4 .

В моем тесте (с довольно посредственным процессором) файл vob объемом 2,6 ГБ (уже конкатенированный из трех других файлов) был преобразован в AVI-видео объемом 960 МБ сопоставимого качества примерно за 50 минут.

20 – приемлемое для среды качество (в справочных статьях Handbrake, которые я видел). Большие номера уменьшают размер за счет качества. Выше 20 потери качества ясны.

Лучше использовать эту команду в терминале, чтобы увидеть прогресс, убить его легче и т. Д.

Что мне нравится в этой команде, так это то, что она обеспечивает хороший баланс между качеством, временем и размером и может легко использоваться из контекстного меню файлового менеджера.

Как это сделать, зависит от файлового менеджера. Команда может быть легко добавлена ​​к Thunar и Nautilus в качестве «пользовательского действия». Я добавил его в Dolphin с ~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop следующим образом:

 [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 

введите описание изображения здесь

  • Повторное кодирование видео с помощью ffmpeg, включая все субтитры, но не все аудио
  • Как использовать подстановочный знак в FFMPEG?
  • gnu parallel: цитируемые аргументы и пробелы в именах файлов. Как решить?
  • ffmpeg: опция nvenc mit crf - очень низкая скорость передачи
  • Воспроизведение субтитров автоматически с помощью mpv
  • возможно ли извлечение / копирование аудио из определенной части видеофайла?
  • FFMPEG - Интерполировать рамки или добавить размытие изображения
  • Удалите тишину из аудиофайлов, оставляя пробелы
  • ошибка при компиляции ffmpeg: gcc не может создать исполняемый файл
  • mplayer не отправляет правильный пользовательский агент
  • Как я могу предотвратить прерывистый ffmpeg с ошибкой AVC: nal size?
  • Linux и Unix - лучшая ОС в мире.