FFMpeg открывает цепочку DVD VOB?

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

Я хочу декодировать кадры из VOB-файлов DVD. Открытие первого VOB в группе работает нормально, но как мне указать ffmpeg перейти к следующему VOB и прочитать все VOB на DVD?

У меня есть файлы VOB в папке на жестком диске.


person Sugrue    schedule 23.11.2011    source источник


Ответы (4)


Формат VOB является подмножеством mpeg, поэтому вы должны иметь возможность комбинировать VOB, которые хотите читать точно так же, как и данные mpeg: путем объединения их вместе.

cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4

Поднятие комментария Мэтта Галлахера для увеличения долговечности/видимости:

Более новые версии ffmpeg поддерживают конкатенацию в качестве оператора входного файла. Так что вы могли бы использовать... ffmpeg -i concat:VTS_01_0.VOB\|VTS_01_1.VOB\|VTS_01_2.VOB outfile.mp4

person blahdiblah    schedule 01.12.2011
comment
Разве это не сначала копирует vobs в новый комбинированный файл? (что заняло бы несколько минут для DVD) - person Sugrue; 04.12.2011
comment
Нет. Объединенный вывод из cat передается напрямую в ffmpeg для чтения из стандартного ввода. На это указывает -i -. Разницы в скорости быть не должно. - person blahdiblah; 04.12.2011
comment
Более новые версии ffmpeg поддерживают конкатенацию в качестве оператора входного файла. Таким образом, вы можете использовать... ffmpeg -i concat:VTS_01_0.VOB\|VTS_01_1.VOB\|VTS_01_2.VOB outfile.mp4 - person Matt Gallagher; 07.10.2012
comment
В командной строке Windows вы также можете использовать двойные кавычки, чтобы сделать символ вертикальной черты явным. В противном случае вы получите ошибку VLC. - person Sun; 21.11.2015

На самом деле вы можете использовать встроенную функцию конкатенации ffmpegs, и я думаю, что вы ищете:

ffmpeg -i "concat:$(echo *.VOB|tr \  \|)" -f mpeg -c copy -sn -y combined.mpg

См.: http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files

person Justin Buser    schedule 15.07.2013
comment
вам следует удалить -sn, так как это просто удаляет субтитры, которые вам, вероятно, не нужны. Вы также должны иметь возможность удалить -f mpeg - person phiresky; 15.08.2020

Встроенная функция конкатенации, похоже, основана на * NIX и у меня не работает в Windows. В Windows VobMerge, похоже, работало для объединения соответствующих файлов VOB (которые для основного фильма о DVD, казалось, был набором, начиная с размера 1 ГБ).

Дополнения

Вы также можете объединять файлы VOB в Windows непосредственно из командной строки:

copy /b "vob1.vob" + "vob2.vob" + "vob3.vob" "voboutput.vob"

Кавычки можно не ставить, если в именах файлов нет пробелов, но обязательно помните знаки /b и все знаки +.

person SharpC    schedule 19.04.2015

в окнах я предпочел "рефакторить" конкатенацию, а также не полагаться на предопределенные имена файлов:

copy /b  e:\VIDEO_TS\vts*.vob  temp.vob
ffmpeg -i temp.vob .... newfile.ogg

/b означает: двоичная копия; в противном случае новые строки и тому подобное обрабатываются по-разному.

Предостережения:

  • иногда есть файлы VOB, которые не являются частью фильма, и я не смог найти автоматизированный способ определить, что есть что
  • в системах с медленным вводом-выводом это увеличивает временные затраты: требуется время для записи и чтения временного файла.
person Berry Tsakala    schedule 25.07.2017