Я пытаюсь преобразовать VOB-файл, скопированный с DVD, в avi в Ubuntu 13.10. Я пытался dvdrip
, который не удалось из-за ошибки подсчета кадров или что-то. Я также попробовал acidrip, но он всегда выбирал аудиодорожку, которую не хотел использовать. Я бы предпочел иметь решение командной строки для создания AVI со следующими функциями:
- можно использовать с mplayer (т.е. используя пошаговые функции)
- с субтитрами, как требуется (или никто вообще)
- с правильной звуковой дорожкой
- с синхронизацией видео и аудио
Я попробовал некоторые ffmpeg
и avconv
команды и удалось создать AVI, но видео и аудио были укомплектовать синхронизированы. Итак, какие варианты я должен использовать, чтобы преобразовать VOB-файл в AVI-файл?
Буду признателен за пояснения по предложенным вариантам!
Дополнительная информация:
Команда
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
Следующая команда
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
например привел к сбою моего сеанса Ubuntu.
Следующая команда
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
Следующая команда
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
Следующая команда
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
Следующая команда
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
сделал некоторые преобразования, но (i) использует субтитры, хотя я не хотел их использовать (ii) неправильно понял звук (аудио и видео ужасно неуместны) и (iii) кажется медленнее, чем на самом деле идет фильм (может потребоваться 2 часа для 90-минутного фильма).
Я попытался дать команду здесь (третий пост от Xeratul), но остановился с ошибкой
FATAL: Cannot initialize video driver.
Я попробовал сделанное ниже предложение, чтобы посмотреть на страницу 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
который конвертировал видео, но с нежелательными субтитрами. Не совсем понятно, как я могу избежать использования субтитров.
источник
ffmpeg
является устаревшим , так давно, вы должны использовать свой собственный преемник:avconv
.avconv
затем для преобразования файлов VOB в AVI. Командаavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
выдала ошибкуApplication 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
попробуйте этоError 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
тогда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
- взял это частично из Arch doc @ dg99 по ссылке.Ответы:
Я полагаю, что чтобы избавиться от субтитров, вы можете добавить
-nosub
переключатель сразу после имени файла .VOB.пример
подробности
Эти заклинания часто бывают очень плотными, поэтому немного сломать их
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
список других кодеков
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
оценка движения fullpixel alg .:
me=umh
ПРИМЕЧАНИЕ: эм - неравномерный поиск по шестиугольникам (медленно)
включить все типы макроблоков:
partitions=all
оптимальное квантование с искажением скорости:
trellis=1
ПРИМЕЧАНИЕ: 2 - включено во всех режимных решениях (медленно, требует subq> = 6)
значение приращения / замедления квантователя:
qp_step=4
ПРИМЕЧАНИЕ: максимальное значение, на которое квантователь может увеличиваться / уменьшаться между кадрами (по умолчанию: 4)
Сжатие квантователя (по умолчанию: 0,6):
qcomp=0.7
direct_pred=auto
максимальный интервал между ключевыми кадрами в кадрах:
keyint=300
опции после этого - видео фильтры:
-vf
ПРИМЕЧАНИЕ. Для переключателей видеофильтра важно использовать его
harddup
в качестве последнего фильтра: он заставит MEncoder записывать каждый кадр (даже дубликаты) в вывод. Кроме того , необходимо использоватьscale=$WIDTH,-10
с ,$WIDTH
как-1
сохранить первоначальную ширину или новую, как правило , меньше, ширину: это необходимо , так как кодек H.264 использует квадратные пиксели и DVD - диски вместо того, чтобы использовать прямоугольные пиксели.scale=-1
-10
harddup
источник
-noaudio
и с,-oac copy
я получаю аудио, которое не синхронизировано с видео. Это или смещено, с другой скоростью или обоими. Любое предложение, как я могу получить также правильный звук? А как насчет нескольких файлов VOB? Как упаковать контент в один.avi
файл (или другой формат)?-oac copy
2 прохода, так как вы перекодируете видео, вам придется перекодировать аудио вместе с ним. Что касается «упаковки» их, файлы VOB должны быть объединены это понравилось:cat *.vob all.vob
. Тогда используйтеall.vob
в mencoder cmd. Есть и другие способы сделать это тоже.Если вы намереваетесь использовать
mplayer
, то вам следует попробоватьmencoder
( http://www.mplayerhq.hu ). Одна из его лучших особенностей - то, что параметры воспроизведения, которые вы знаете поmplayer
поведению, ведут себя почти так же, как при кодировании. Кроме того, есть много документации и электронных писем, охватывающих именно то, что вы спрашиваете:источник
mencoder
страницы. Есть несколько пиратских групп, которые используют толькоmencoder
для всей своей работы; вот как это просто, мощно и автоматизировано.Я знаю, что это старая публикация, но при поиске этой проблемы в Интернете всплывает вышеуказанный вопрос, а некоторые другие записи еще старше.
Я пробовал разные инструменты, но в итоге я больше всего доволен этой командой:
Это небольшая модификация того, что я нашел здесь .
Я только что заменил аудиокодек (
libflac
отсутствовал в моей системе, поэтому я заменил его наlibmp3lame
( источник ) и-crf
значение для повышения качества. Можно использовать и другие форматы, напримерmp4
.В моем тесте (с довольно посредственным процессором) файл VOB объемом 2,6 ГБ (уже объединенный из трех других файлов) был преобразован в 960 МБ видео AVI сопоставимого качества примерно за 50 минут.
20 - среднее приемлемое качество (в справочных статьях о ручном тормозе, которые я видел). Большие числа уменьшают размер за счет качества. Выше 20 потеря качества очевидна.
Эту команду лучше использовать в терминале, чтобы увидеть прогресс, убить его и т. Д.
Что мне нравится в этой команде, так это то, что она обеспечивает хороший баланс между качеством, временем и размером и что ее легко использовать из контекстного меню файлового менеджера.
Как это сделать, зависит от файлового менеджера. Команду можно легко добавить к Тунару и Наутилусу как «настраиваемое действие». Я добавил его в Dolphin с таким
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
файлом:источник