Извлечь.VOB для Заголовка 2, Главы 3
Обратите внимание, что '-глава 3' и '-глава 3-' скопируют с главы 3 в конец, и если номер главы, который Вы указываете, является неверным, опция проигнорирована и поэтому скопирует полный заголовок.
# physical DVD
mplayer dvd://2 -chapter 3-3 -dumpstream -dumpfile ~/3.VOB
# DVD .iso image
mplayer dvd://2 -dvd-device "$dvd_iso" -chapter 3-3 -dumpstream -dumpfile ~/3.VOB
Можно использовать lsdvd
перечислять заголовок, главу, ячейку, аудио, видео, и т.д. для физического DVD. Однако это, кажется (?), не имеет способ обработать a .iso
. Вы могли смонтировать .iso в случае необходимости.
# count Titles, and count Cells per title.
# eg. ${cell[1]} is the Count of Cells for the first title
# ${cell[titles]} is the Count of Cells for the last title
eval $(lsdvd | sed -n 's/Title: \([0-9]\+\), .* Chapters: \([0-9]\+\), Cells: .*/cells[$((10#\1))]=$((10#\2));/p')
titles=${#cells[@]}
title_num=2
from_cell=1
to_cell=${cell[title_num]}
dvdxchap
, с другой стороны, может обработать a .iso
, но это не перечисляет информацию о заголовке. Можно, однако, указать заголовок, от которого Вы хотите информацию о главе.
title_num=2
from_cell=1
# physical DVD
to_cell="$(dvdxchap -t $title_num /dev/dvd | sed -n 's/^CHAPTER\([0-9]\+\).*/\1/p' | sed -n '$p')"
# DVD .iso image
to_cell="$(dvdxchap -t $title_num "$dvd_iso"| sed -n 's/^CHAPTER\([0-9]\+\).*/\1/p' | sed -n '$p')"
Когда Вы знаете число заголовка, Вы хотите и знаете количество ячеек, можно вывести их в цикле:
# physical DVD
for ((c=$from_cell; c<$to_cell; c++)) ;do
mplayer dvd://$title_num -chapter $c-$c -dumpstream -dumpfile ~/$c.VOB
done
# DVD .iso image
for ((c=$from_cell; c<$to_cell; c++)) ;do
mplayer dvd://$title_num -dvd-device "$dvd_iso" -chapter $c-$c -dumpstream -dumpfile ~/$c.VOB
done