LINUX.ORG.RU

dvdrip


0

0

Кто-чем и как рипает двд диски

Поставил dvdrip замечательно, даже научился с ним работать, только он как -то странно разбивает даже один чаптер на несколько файлов? что делать,как быть, чем рипать диски

и как ...

Ответ на: комментарий от Frakhtan-teh

> точно не уверен, но прозреваю mencoder...

+1. Тоже пользуюсь менкодером.

Если интересно, могу кинуть более-менее красивую гуйковую обёртку

gaa ★★
()
Ответ на: комментарий от gaa

да, интересно

вот

а как там со звуковыми дорожками и сабами?

есть двд видео с 3 аудио дорожками и сабами встроенными...

как это все сохранить, и что бы можно было переключать

MiklerGM ★★
() автор топика
Ответ на: комментарий от MiklerGM

Вот гуй: Написано на tcl/tk. Нужно иметь tcl8.4, tk8.4, iwidgets4, blt.

Насчёт аудиодорожек: в мане к mencoder есть опция указания, какую дорожку брать, однако я сам никогда не сталкивался с необходимостью сохранять несколько дорожек.

#!/bin/sh
############################################################################
#    Copyright (C) 2007-2008 by Alexander Galanin                          #
#    gaa.nnov@mail.ru                                                      #
#                                                                          #
#    This program is free software; you can redistribute it and/or modify  #
#    it under the terms of the GNU General Public License as published by  #
#    the Free Software Foundation; either version 3 of the License, or     #
#    (at your option) any later version.                                   #
#                                                                          #
#    This program is distributed in the hope that it will be useful,       #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#    GNU General Public License for more details.                          #
#                                                                          #
#    You should have received a copy of the GNU General Public License     #
#    along with this program; if not, write to the                         #
#    Free Software Foundation, Inc.,                                       #
#    51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA               #
############################################################################

# restart using wish \
exec wish "$0" "$@"

package require BLT
package require Iwidgets 4.0

proc addFrame {var title {rootWindow ""}} {
	label $rootWindow.[join [ list $var "Label" ] ] -text "$title: " -anchor w
	label $rootWindow.[join [ list $var "Value" ] ] -textvariable $var -anchor w
	grid $rootWindow.[join [ list $var "Label" ] ] .sub.[join [ list $var "Value" ] ] - -sticky nswe
}

proc outHandler {args} {
	global pos percent fps trem size oldPercent

	if [regexp {Pos: *([0-9]+\.[0-9]+s) *[0-9]+f \( *([0-9]+)%\) *([0-9]+\.[0-9]+)fps Trem: *([0-9]+min) *([0-9]+mb)} [ join $args ] str pos percent fps trem size] {
		catch {
			.sub.progress step [ expr $percent - $oldPercent ]
		}
		set oldPercent $percent
	}
}

proc openSubWindow {} {
	global pos percent fps trem size oldPercent twoPass

	catch {destroy .sub}
	toplevel .sub
	grab .sub
	
	wm title .sub "Encoding progress"
	
	if { $twoPass == 1 } {
		set steps 200
	} else {
		set steps 100
	}
	
	iwidgets::feedback .sub.progress -steps $steps
	grid .sub.progress - -sticky nswe
	
	set pos 0
	set fps 0
	set trem 0
	set size 0
	
	addFrame pos "Position" .sub
	addFrame fps "FPS" .sub
	addFrame trem "Trem" .sub
	addFrame size "Size" .sub
	
	button .sub.cancel -text "Cancel" -command cancelEncoding -width 50
	grid .sub.cancel -
	
	focus .sub.cancel
}

proc cancelEncoding {} {
	global statusVar
	set statusVar 0
	
	destroy .sub
}

proc encode {} {
	global statusVar encodeCommand vbitrate inFile outFile twoPass percent oldPercent
	openSubWindow
	
	if { $twoPass == 1 } {
		set passList [ list 1 2 ]
	} else {
		set passList [ list 1 ]
	}
	
	if [ catch {
		foreach pass $passList {
			set percent 0
			set oldPercent 0
			.sub.progress configure -labeltext "Pass $pass of [lindex $passList end ]"
			blt::bgexec statusVar -onoutput outHandler -linebuffered true /bin/sh -c [ subst $encodeCommand ] | tr {\r} {\n}
		}
	} err ] {
		tk_messageBox -type ok -icon error -title "Encoding failed" -message $err -parent .
	}
	catch {
		exec rm "$outFile.divx2pass.log"
	}
	destroy .sub
}

proc browse {action var} {
	global $var

	set f [ [ join [ list "tk_get" $action "File" ] "" ] -filetypes { { "AVI file" {.avi} } } -parent . -initialfile movie.avi -defaultextension .avi ]
	if {[string compare $f ""]} {
		set $var $f
	}
}

############################################################################
#                                 MAIN                                     #
############################################################################

wm title . "Video encoder"

set vcodec "mpeg4"
set vbitrate 2048
set inFile "dvd://1"
set outFile "movie.avi"
set twoPass 1

set statusVar 0
set encodeCommand {mencoder "$inFile" -ni -of avi -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$vbitrate:vpass=$pass:autoaspect=1 -passlogfile "$outFile.divx2pass.log" -oac copy -o "$outFile"}

label .inFileLabel -text "Input file: " -anchor w
entry .inFileEntry -textvariable inFile
button .inFileBrowse -text "Browse..." -command {browse Open inFile}
grid .inFileLabel .inFileEntry .inFileBrowse -sticky nswe

label .vbitrateLabel -text "Bitrate: " -anchor w
entry .vbitrateEntry -textvariable vbitrate
grid .vbitrateLabel .vbitrateEntry - -sticky nswe

label .outFileLabel -text "Output file: " -anchor w
entry .outFileEntry -textvariable outFile
button .outFileBrowse -text "Browse..." -command {browse Save outFile}
grid .outFileLabel .outFileEntry .outFileBrowse -sticky nswe

checkbutton .twoPass -text "Two pass encoding" -variable twoPass -anchor w
grid x .twoPass - -sticky nswe

button .start -text "Encode" -command encode
grid x .start -sticky nswe
focus .start

gaa ★★
()
Ответ на: комментарий от anonymous

и вообще, лучше mencoder'a я еще ничего не встречал. Работает в командной строке, поэтому можно ему написать кучу ГУЕв, можно ставить пакетную обработку, да и что угодно. Если лень читать man mencoder - гуглим :-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.