PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : x264: DVD -> MP4



navimarin
19.02.07, 21:34
So, jetzt wollte ich mir hier vielleicht noch ein paar Anregungen holen.
Ich versuche grad ein Skript zu schreiben dass mir eine DVD in eine MP4 umwandelt.
Leider unterstützen alle mir bekannten Tools nur ein Encodieren mit einem Core.
MEncoder kann ja zum Beispiel mit einem Dual Core nix anfangen.
Das fand ich doof und deshalb hab ein bissel rumgespielt.
Ausserdem bin ich eher ein Freund der Console.
Zumal die ganzen grafischen Programme kaum das machen was sie sollen.
Ich bin mit dvd::rip und acid-rip nicht wirklich zu Rande gekommen.
OGMRip war ganz cool, unterstütz leider auch nur einen Core und ich bin sehr eingeschränkt in den Encodieroptionen.

Somit spiele ich jetzt schon eine ganze Weile rum.
Mit mencoder bin ich schon so weit gewesen dass ich eine DVD bei voller Auflösung (!) mit x264 auf 780MB gepresst bekam (der Codec ist der Hammer!!!).
Jetzt wollte ich das so umbasteln dass ich x264 direkt benutze und nicht über mencoder.
Allerdings gestaltet sich das schon schwieriger.
x264 akzeptiert nur yuv yuv4mpeg und avis als input.
Avis scheint nur unter win32 zu gehen, somit bleibt yuv4mpeg.
Ich hab es bis jetzt so gemacht dass ich per MPlayer mit -dumpstream die DVD auf die Platte geschoben habe, dann per mplayer den audiostream extrahiert.

Wenn ich nun den Videostream als yuv4mpeg auf die Platte schreiben lasse werde ich ja nicht mehr froh (70GB nach 15min).
Das wird also nix.
Somit füttere ich x264 gerade über ein FIFO (mkfifo) mit den Daten von mplayer.
Aber wenn ich das richtig sehe dann spielt mplayer die DVD dann in Echtzeit ab und schiebt das in den FIFO.


mplayer -vo yuv4mpeg:file=XXX"

Damit verliere ich aber wieder total viel Zeit (vor allem im ersten Pass). Jetzt wollte ich per mencoder und -ovc raw den ganzen Spass über den FIFO an x264 weiterreichen, das geht aber nicht weil x264 den FIFO dann seltsamer weise nicht öffnen kann.
Hat jemand eine Idee dazu? Oder einen anderen Weg den x264 mit Daten zu füttern?

mfg
navimarin

edit von psy:
beitrag für die leserlichkeit ein wenig bearbeitet ;)

navimarin
20.02.07, 16:31
So, es sieht so als dass, egal wie rum ich es wende und drehe, ich nicht scheller bin wenn ich x264 'standalone' als mit mencoder. Und das obwohl x264 2 CPUs verwendet. Schade eigentlich. Die Zeit die ich damit verbringe, den Stream so aufzubereiten dass ich ihn in den x264 geben kann mache ich mit der 2.ten CPU wieder gut. Nur dass ich über mencoder nicht 80GB auf der Platte liegen habe und nebenher noch prima weiterarbeiten kann. Liegt wohl auch mit daran dass x264 avi-input nur unter Windows unterstützt (wer hat sich so einen Müll ausgedacht?). Freue mich allerdings trotzdem über jede Anregung. :)

tazdevil77
21.02.07, 07:51
morgen.

laut den man-pages von menc, kann der multithreading:

"threads: This option allows to spawn threads to encode in parallel on multiple CPUs..."

http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html

navimarin
21.02.07, 14:34
Wenn ich ehrlich bin hab ich da nicht weiter nachgeforscht. :) Hab in irgendeinem Forum gelesen dass der nur Single-Threaded ist und mich damit zufrieden gegeben. Aber wenn das geht dann ist mencoder/mplayer DAS TOOL NO.1 für mich ^^
Danke dafür

navimarin
21.02.07, 19:38
Also die Aussage dass mencoder Singlethreaded ist stimmt weiterhin, mencoder ist jedoch in der Lage das Multithreading von x264 anzusteuern. :) aber trotzdem genau die Lösung die ich wollte....