Videokonverter x264 zu XVID gesucht, der auch funktoniert

fufu5000

Enthusiast
Thread Starter
Mitglied seit
01.07.2005
Beiträge
1.717
Ort
Köln
Nachdem Mediacoder mal funktioniert und mal nicht, habe ich den Dreck restlos von meiner Festplatte gelöscht.

Keine Lust mehr mich rumzuärgern. Bei mir kommt immer Fehler 08 und das obwohl ich die Audiospur einfach nur kopieren will und nicht umwandeln möchte. Es wird als keinerlei Audioencoder benutzt

Ich suche also ein Tool, was mir die 720p x264 AC3 MKVs in XVids umwandelt. Und zwar so, dass mir der AC3 5.1 Ton erhalten bleibt.
Hintergrund: Auf meiner alten XBOX laufen die x264 mkvs nur ruckelig.

Ich brauch keines mit den letzten Feineinstellungen, sondern was simples. Habe keine Lust ewig was einzustellen. Dazu fehlt mir die Zeit und Lust.

Und kommt mir bitte nicht mit dem Dreck von SUPER. Ein Blick auf die Seite von denen und man weiss was los ist.

Sorry, bin stinkig :)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
mit convertx2dvd geht das , qualie ist aber bescheiden.
(meine version ist aber auch bisse älter)
 
So, Stax mach ja einen guten Eindruck. Das Einzige was mich total nervt ist, dass es sich die Codec einstellungen nicht merken will. Jedes Mal stellt es sich auf die niedrigste Grösse ein und macht mir ein 550MB File mit ner Kack Bitrate. Ich stell die immer auf 2500 und nachher kommt 1300 oder so raus. Langsam bekomm ich die Krise... Ich bin bestimmt kein Computeranfänger, aber so langsam komm ich mir wie der letzte Depp vor...
Jemand ne Idee?

Hier das LOG:
------------------------------------------------------------
First Pass Codec Parameters
------------------------------------------------------------

ar_mode: 0
ar_x: 4
ar_y: 3
aspect_ratio: 0
audio_mode: 0
audio_rate: 128
audio_size: 0
audio_type: 0
bitrate: 2504
bquant_offset: 100
bquant_ratio: 150
Brightness: 0
chromame: 1
container_type: 1
curve_compression_high: 0
curve_compression_low: 0
Deblock_UV: 0
Deblock_Y: 0
debug: 0
Dering_UV: 0
Dering_Y: 0
desired_quant: 200
desired_size: 793413
discard1pass: 1
display_status: 0
FilmEffect: 0
fourcc_used: 0
fps: 2
frame_drop_ratio: 0
full1pass: 0
gmc: 0
hours: 1
interlacing: 0
keyframe_boost: 10
kfreduction: 20
kfthreshold: 1
lum_masking: 0
max_bframes: 2
max_bquant: 31
max_iquant: 31
max_key_interval: 300
max_pquant: 31
min_bquant: 1
min_iquant: 1
min_pquant: 1
minutes: 30
mode: 1
motion_search: 6
num_zones: 1
overflow_control_strength: 5
packed: 1
par_x: 1
par_y: 1
profile: (unrestricted)
qpel: 0
quality: General purpose
quant_type: 0
rc_averaging_period: 100
rc_buffer: 100
rc_reaction_delay_factor: 16
seconds: 0
stats: Z:\RS\Serien\xyz.pass
subtitle_size: 0
target_size: 665600 <------------ Das macht das Teil, ohne dass ich das so will!Ich kann einstellen, was ich will. Immer kommt da diese Grösse
tff: 0
trellis_quant: 1
turbo: 0
twopass_max_overflow_degradation: 5
twopass_max_overflow_improvement: 5
use_2pass_bitrate: 0
use_bvop: 1
vhq_bframe: 0
vhq_mode: 1
vop_debug: 0
zone0_bvop_threshold: 0
zone0_cartoon_mode: 0
zone0_chroma_opt: 0
zone0_frame: 0
zone0_greyscale: 0
zone0_mode: 0
zone0_quant: 500
zone0_type: 0
zone0_weight: 100
 
Zuletzt bearbeitet:
Hi, ich weiß jetzt nicht, wieviel Aufwand du spendieren willst um im Endeffekt den Aufwand zu minimieren.. ;)

Folgendes habe ich gemacht, um auf einfache Weise die Videos aus meiner Digicam in ein vernünftiges Format zu encodieren:
1.) MeGUI installiert (http://sourceforge.net/projects/megui)
2.) Per Trial & Error die meiner Meinung nach bestmöglichen Formate & Einstellungen zum Komprimieren meiner Quell-Files (MotionJPEG) ins Zielformat (x264) herausgefunden
3.) Den jeweiligen Kommandozeilenaufruf jedes Teilschrittes aus dem Log geholt
4.) Ein kleines VBS-Script gebastelt, das nacheinander diese Teilschritte autark ausführt
5.) Fertig!

Jetzt kann ich die Videos aus meiner Digicam einfach per Drag'n'Drop auf dieses Script schmeissen und er produziert mir mein x264-File daraus.

Staxrip hatte ich parallel zu meGUI auch installiert, aber aus irgendeinem Grund hatte ich mich dann für Letzteres entschieden. Weiß jetzt aber nicht mehr wieso. Vielleicht sieht man in Staxrip den jeweilige Kommandozeilenaufruf nicht..

Das Ganze so zu bauen ist natürlich etwas Aufwand und lohnt sich in dem Fall nur bzw. funktioniert nur, weil die Quelldateien immer exakt das gleiche Format haben!

Vielleicht ist dir das zu aufwändig, aber ich poste das Script trotzdem mal als Beispiel:
Code:
''''''''''''''''''''
' nskMovToMkv v0.4 '
''''''''''''''''''''

' Notes
'(ASCII 34 = Double Quotation Marks)

' Konfiguration
sMencoder = "r:\_run\_Progs\mencoder.exe"
sX264 = "r:\_run\_Progs\x264.exe"
sFfmpeg = "r:\_run\_Progs\ffmpeg.exe"
sMkvmerge = "r:\_run\_Progs\mkvmerge.exe"
'bOverwriteExisting = true ' to be implemented
bDeleteIntermediateFiles = true
bEndMessage = false
bPopunder = true
iLogMode = 1		' 0 = off / 1 = log with script's name / 2 = log with input file name


' ------------------------- INIT --

' Create File System Object
Set objFso = CreateObject("Scripting.FileSystemObject")

' Argument (Quicktime .mov-File)
sInputMov = WScript.Arguments(0)
If WScript.Arguments.Count > 1 Then
	iJumpTo = WScript.Arguments(1)
Else
	iJumpTo = 2
End If

' Input without extension as basis for output files
' (should work if input is single file name and also if input is complete path)
sMainName = Left(sInputMov, InStrRev(SInputMov, ".") - 1)
sMainName = Right(sMainName, Len(sMainName) - InStrRev(sMainName, "\"))

' Input parent directory as basis for output files
Set objFsoMov = objFso.GetFile(sInputMov)
sMainFolder = objFsoMov.ParentFolder & "\"
sMainPrefix = sMainFolder & sMainName

sClTmpAvi = Chr(34) & sMencoder & Chr(34) & " " & Chr(34) & sMainPrefix & ".avs" & Chr(34) & _
	" -o " & Chr(34) & sMainPrefix & "_hfyu.avi" & Chr(34) & _
	" -of avi -forceidx -ovc lavc -nosound -lavcopts vcodec=ffvhuff:vstrict=-2:pred=2:context=1"

sClVideoPass1 = Chr(34) & sX264 & Chr(34) & " --pass 1 --bitrate 3500" & _
	" --stats " & Chr(34) & sMainPrefix & "_hfyu.stats" & Chr(34) & _
	" --ref 5 --mixed-refs --no-fast-pskip --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto" & _
	" --deblock -1:-1 --subme 8 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --ratetol 4.0" & _
	" --me umh --merange 32 --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim" & _
	" --output NUL " & Chr(34) & sMainPrefix & "_hfyu.avs" & Chr(34)

sClVideoPass2 = Chr(34) & sX264 & Chr(34) & "--pass 2 --bitrate 3500" & _
	" --stats " & Chr(34) & sMainPrefix & "_hfyu.stats" & Chr(34) & _
	" --ref 5 --mixed-refs --no-fast-pskip --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto" & _
	" --deblock -1:-1 --subme 8 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --ratetol 4.0" & _
	" --me umh --merange 32 --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim" & _
	" --output " & Chr(34) & sMainPrefix & "_onlyvideo.mkv" & Chr(34) & " " & Chr(34) & sMainPrefix & "_hfyu.avs" & Chr(34)

sClAudioEnc = Chr(34) & sFfmpeg & Chr(34) & _
	" -i " & Chr(34) & sMainPrefix & ".mov" & Chr(34) & _
	" -vn -ac 2 " & Chr(34) & sMainPrefix & ".aac"

sClMux = Chr(34) & sMkvmerge & Chr(34) & " -o " & Chr(34) & sMainPrefix & ".mkv" & Chr(34) & _
	" --language 1:ger --track-name 1:Video --default-track 1:yes --noaudio " & Chr(34) & sMainPrefix & "_onlyvideo.mkv" & Chr(34) & _
	" --engage keep_bitstream_ar_info" & _
	" --language 0:ger --track-name 0:Audio --aac-is-sbr 0:1 --novideo " & Chr(34) & sMainPrefix & ".aac" & Chr(34) & _
	" --track-order 0:1,1:0"


' ------------------------- PREPARE --

' Select logging mode
Select Case iLogMode
	Case 0
		sLogfileName = ""
	Case 1
		sLogfileName = WScript.ScriptFullName
	Case 2
		sLogfileName = sMainPrefix
	Case Else
		sLogfileName = ""
End Select

' Create log file
If sLogfileName <> "" Then
	Set objFsoLog = objFso.CreateTextFile(sLogfileName & ".log", true)
End If

' Logging function
Public Sub subLog(sLogstring)
	If iLogMode > 0 Then
		objFsoLog.WriteLine(sLogstring)
	End If
End Sub

subLog("nskMovToMkv v0.3 - (c) Nicolas Krzywinski, www.nskcomputing.de")
subLog(Date() & " " & Time() & " Log file opened for processing: " & Chr(34) & sInputMov & Chr(34))
subLog(" ")

' Create & Write avs files
subLog(Date() & " " & Time() & " *** Step 1 ***: Creating .avs files..")
Set objFsoAvs = objFso.CreateTextFile(sMainPrefix & ".avs", true)
objFsoAvs.WriteLine("DirectShowSource(" & Chr(34) & sMainPrefix & ".mov" & Chr(34) & ")")
objFsoAvs.Close

Set objFsoAvs = objFso.CreateTextFile(sMainPrefix & "_hfyu.avs", true)
objFsoAvs.WriteLine("AviSource(" & Chr(34) & sMainPrefix & "_hfyu.avi" & Chr(34) & ")")
objFsoAvs.Close

Set objFsoAvs = Nothing
subLog(Date() & " " & Time() & " ==> Step 1 completed: written " & Chr(34) & sMainPrefix & ".avs" & Chr(34) & " and " & Chr(34) & sMainPrefix & "_hfyu.avi" & Chr(34))
subLog(" ")


' ------------------------- RUN --

Dim objWshShell, objProcess

' Create Shell
Set objWshShell = WScript.CreateObject("wscript.shell")

' Coding Loop
For iStep = iJumpTo To 6

	' What we have to do in this loop..
	Select Case iStep
		Case 2
			sCommand = sClTmpAvi
			sDesc = "Extracting .avi stream.."
			sDelete1 = ".avs"
			sDelete2 = ""
			sSuffix = "_hfyu.avi"
		Case 3
			sCommand = sClVideoPass1
			sDesc = "Encoding first pass.."
			sDelete1 = ""
			sDelete2 = ""
			sSuffix = "_hfyu.stats"
		Case 4
			sCommand = sClVideoPass2
			sDesc = "Encoding second pass.."
			sDelete1 = "_hfyu.avi"
			sDelete2 = "_hfyu.avs"
			sSuffix = "_onlyvideo.mkv"
		Case 5
			sCommand = sClAudioEnc
			sDesc = "Encoding audio.."
			sDelete1 = "_hfyu.stats"
			sDelete2 = ""
			sSuffix = ".aac"
		Case 6
			sCommand = sClMux
			sDesc = "Muxing video and audio stream.."
			sDelete1 = "_onlyvideo.mkv"
			sDelete2 = ".aac"
			sSuffix = ".mkv"
		Case Else
			sCommand = ""
			sDelete1 = ""
			sDelete2 = ""
			sSuffix = ""
	End Select

	' Talk about what we wanna do
    subLog(Date() & " " & Time() & " *** Step " & iStep & " ***: " & sDesc)
    subLog("   Command Line: " & sCommand)

	' Select new window mode
	If bPopunder Then
		iWindowMode = 7
	Else
		iWindowMode = 1
	End If

    ' Execute
    'Set objProcess = objWshShell.Exec(sClTmpAvi)
    if sCommand <> "" Then
    	iReturn = objWshShell.Run(sCommand, iWindowMode, true)
    Else
    	iReturn = "Illegal loop"
    End If

    ' Talk a bit what happened
    'subLog("Created process " & objProcess.ProcessID & " and it tells me: " & objProcess.Status & " (Status), " & objProcess.ExitCode & " (ExitCode)")
    if iReturn = 0 Then
        subLog(Date() & " " & Time() & " ==> Step " & iStep & " completed: written " & Chr(34) & sMainPrefix & sSuffix & Chr(34))
    Else
        subLog(Date() & " " & Time() & " ==> Step " & iStep & " FAILURE (Return Code: " & iReturn & ") <==")
    End If

	' Delete intermediate files
    If sDelete1 <> "" And bDeleteIntermediateFiles Then
    	If objFso.FileExists(sMainPrefix & sDelete1) Then
    		objFso.DeleteFile(sMainPrefix & sDelete1)
    		subLog(Date() & " " & Time() & " Deleted intermediate file: " & Chr(34) & sMainPrefix & sDelete1 & Chr(34))
    	Else
    		subLog(Date() & " " & Time() & " Could not delete intermediate file: " & Chr(34) & sMainPrefix & sDelete1 & Chr(34))
    	End If
    End If
    If sDelete2 <> "" And bDeleteIntermediateFiles Then
    	If objFso.FileExists(sMainPrefix & sDelete2) Then
    		objFso.DeleteFile(sMainPrefix & sDelete2)
    		subLog(Date() & " " & Time() & " Deleted intermediate file: " & Chr(34) & sMainPrefix & sDelete2 & Chr(34))
    	Else
    		subLog(Date() & " " & Time() & " Could not delete intermediate file: " & Chr(34) & sMainPrefix & sDelete2 & Chr(34))
    	End If
    End If
    subLog(" ")

Next

'while objProcess.Status = 0
'	WScript.Sleep(500)
'wend

'while(!Pipe.StdOut.AtEndOfStream)
'WScript.StdOut.WriteLine(Pipe.StdOut.ReadLine())


' ------------------------- CLEAN --

subLog("I'm done .. bye!")

' Objekte freigeben
Set objProcess = Nothing
Set objWshShell = Nothing
Set objFsoMov = Nothing
If isObject(objFsoLog) Then
	objFsoLog.Close
End If
Set objFsoLog = Nothing
Set objFso = Nothing

If bEndMessage Then
	WScript.Echo "nskMovToMkv: Finished encoding " & Chr(34) & sMainName & ".mkv" & Chr(34)
End If
 
Zuletzt bearbeitet:
Ok, Danke! Hab es irgendwie hinbekommen. Nur versteh ich nicht, warum er sich bei SinglePass die Einstellungen nicht merkt? Aber egal. Hauptsache die Dinger laufen auf meiner XBOX und AC3 geht und die Bitrate liegt so bei 2000.

Aber das Programm ist ein echter Tipp! Geil dass es von selber die benötigten Programme/Codecs etc ermittelt und runterläd! Finde ich wirklich geil!

@ ******* Riesen Dank!
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh