Beiträge von Yod@

    Hallo,

    wenn ich meine VOB-Datei von StarWars Episode 1 übersetze, dann ist zum Beispiel zu Beginn, wenn die Laufschrift zu sehen ist,
    der Text abwechselnd in deutsch und englisch zu sehen. Sieht man sich die originale VOB-Datei an, dann wird, je nachdem welche Tonspur eingestellt ist, entweder nur deutsch oder nur englisch angezeigt.

    Bei Cars 2 ist das zum Beispiel auch so...

    Mit welcher ffmpeg-Option kann ich das geziehlt auswählen?
    Beim Spur-Mapping habe ich schon "-map 0:v:0" und "-map 0:v:1" ausprobiert, geht aber nicht; "0:v:1" funktioniert natürlich nicht, weil es dort nur eine Video-Spur gibt.

    Für einen hilfreichen Ratschlag wäre ich sehr dankbar.
    Danke!

    Gruß
    Yoda

    Hallo Selur,

    das sind genau die Infos, die ich gesucht hatte... ;)
    Danke!

    Gruß
    Yoda


    EDIT:
    Jetzt muss ich mir nur noch ein AWK-Script schreiben, in das man "Bildhöhe und Aspect" oder "Auflösung" reinschmeißt und dann alle anderen Werte hinten rausfallen. ;)

    Hallo Leute,

    ich hab jetzt rausgefunden was ich an Stelle meiner "vbv_maxrate"-Manipulation machen muss um die Größe der Zieldatei zu beeinflussen.

    Ich muss einfach einen kleineren "Level" auswählen.
    Leider gibt es hier ein massives Dokumentationsloch... :(

    Denn ich habe wohl in Wikipedia gelesen, das die Auflösung 720x576 vom Level 3.0 unterstützt wird, aber ich hätte gerne den Level 2.0 verwendet...

    Ich suche jetzt eine "komplette" Liste, in der man zu jedem Level die entsprechenden unterstützen Auflösungen nachlesen kann.

    Gibt es irgendwo soetwas?
    In Wikipedia stehen nur "Beispiele" aber keine kompletten Auszüge.

    Gruß
    Yoda


    Für Linux ohne GUI wäre vielleicht/vermutlich hilfreich h264enc wenn man nicht viel Ahnung von x264&Co hat (den Autor froggy1 kriegt man bei Problemen i.d.R. im englischen Doom9 Forum schnell zu fassen) soweit mir bekannt hat h264enc auch entsprechende Profile/Presets für Blu-ray output.

    Cu Selur

    Ich werde mir den h264enc mal ansehen, das scheint ja ein Script zu sein und somit absolut unkritisch. ;)
    Danke!

    Danke "Selur", Danke "sneaker2"!

    Nein. Ich bin mit den Presets durchaus vertraut. Das x264cli nutzt folgende Priorität bei der Festlegung der Anzahl an refframes:
    1. manuelles "--ref"
    2. level
    3. tune
    4. preset
    5. standard (=preset medium=3)

    Im vom mir weiter oben genannten Beispiel überschreibt also die Begrenzung durch "--level 4.1" die "--ref 16" Vorgabe vom Preset/Tuning.


    Ja, das hab ich jetzt verstanden.


    Selbst bei HD-Filmen sollten vbv-Werte von 30000 keinerlei sichtbare Verschlechterung erwirken. In der Praxis nutzt x264 nur selten solch eine hohe Bitrate, falls man auf eine Dateigröße kleiner Blu-Ray abziehlt.
    Wie Selur bereits schrieb: maxrate wird nur dann benutzt, wenn man auch eine bufsize angibt. Und bei einer maxrate von nur 2128 wird man kein gutes Ergebnis erzielen können. Wie bereits gesagt: maxrate ist nicht dazu gedacht, die Dateigröße zu deckeln!


    Ja, soweit die Theorie...
    Genau darüber habe ich mich ja auch gewundert!

    Die alte Version vom MEncoder hat das gleiche gute Ergebnis erziehlt, wie das direkte verwenden von x264.
    Aber der neue MEncoder bringt nur noch Mist, wenn man vbv verwendet... und das schlimmste: es steht sogar in der man-page!
    Das verstehe ich nicht.
    Verwende ich beim x264 und MEncoder die selben Einstellungen, dann macht der MEncoder in der neuen Version nur noch Mist.

    Deshalb werde ich das jetzt über den Umweg "crf=0" und dann mit x264 machen, dann habe ich auch keine Probleme mit den "ref"-Werten, weil ich einfach die Parameterzeile vom x264-Team verwenden kann und die preset- und tune-Angaben nicht extra für den MEncoder "übersetzen" muss.

    Gruß
    Yod@

    Warum verwendest Du eigentlich nicht einfach ne GUI die a. deinen Input mag und b. BluRay kompatiblen Output erzeugt?

    Cu Selur



    1.
    Weil ich einen Rechenknecht in der Ecke stehen habe, ohne Tastatur und ohne Monitor... eben einen einfachen FreeBSD-Server (andere können ja kein ZFS), der seine Ressourcen sinnvoll verwenden soll und deshalb auch kein X besitzt.

    2.
    Weil ich gar nicht wüsste welche GUI, die in den FreeBSD-Ports liegt, das kann.

    Zu 1.)
    Wenn man z.B. "--preset veryslow --tune film --level 4.1" verwendet, dann werden nicht 16 Ref-frames genutzt. x264 verringert automatisch die Anzahl der ref-frames auf die im H.264-Standard für das Level und die Auflösung maximal erlaubte Anzahl. Wenn man allerdings manuell "--ref 16" vorgibt, dann benutzt x264 auch 16 Frames, selbst dann, wenn es die Grenzen des vorgegebenen Levels sprengt.

    Zu 5.)
    Maxrate: Auf keinen Fall --vbv-maxrate benutzen, um die Dateigröße zu begrenzen. Dadurch können keine Bits für komplexe Szenen genutzt werden, so daß das Ergebnis - wie Du bereits festgestellt hast - miserabel wird. Wenn Du eine bestimmte Größe erreichen mußt, dann mache eine 2-Pass-Enkodierung oder notfalls 1-Pass ABR.



    (1.)
    Doch!
    Sowohl im preset "veryslow" als auch in "placebo" wird ref auf 16 gesetzt. Hier ein Auszug aus der man-Page:
    - veryslow:
    --b-adapt 2 --bframes 8 --direct auto
    --me umh --merange 24 --partitions all
    --ref 16 --subme 10 --trellis 2
    --rc-lookahead 60
    - placebo:
    --bframes 16 --b-adapt 2 --direct auto
    --slow-firstpass --no-fast-pskip
    --me tesa --merange 24 --partitions all
    --rc-lookahead 60 --ref 16 --subme 10
    --trellis 2

    (2.)
    Ja, Dake für den Hinweis.
    Ich habe es mir auch gerade erst angelesen, diese Werte werden Vorgeschrieben.
    Eine feste Größe brauche ich nicht zu erreichen, ich möchte es einfach nur so klein wie möglich, bei so wenig Qualitätsverlust wie möglich.

    So wie ich es bis jetzt verstanden habe, kann ich das wohl am elegantesten mit dem "crf"-Wert steuern.

    Aber der MEncoder hat auch bei vbv-Werten um die 300000 keine sehenswerten Ergebnisse geliefert, deshalb mach ich nur noch das "crop" mit MEncoder und crf=0 und dann nochmal per "YUV4MPEG.y4m" direkt mit dem x264 und crf=23.

    Aber kann mir mal einer sagen, womit ich die "Group of Pictures" festlegen kann?
    In der man-Page steht bei "keyint" "GOP", was man als "Group of Pictures" interpretieren könnte.
    Aber das wirft einen Widerspruch auf, denn die Demo-Blu-Ray wurde mit "keyint=24"
    gemacht und der AVCHD-Standard (der ja komplett Blu-Ray-kompatibel ist) schreibt maximal "Group of Pictures = 15" vor.

    Oder ist mit "Group of Pictures" etwas anderes gemeint?

    Danke schon mal für die Tips! ;)



    (1.)
    Ja, stimmt.
    Ich meinte mit "preset's", die Einstellungen, die vom x264-Team für deren Demo-Blu-Ray verwendet wurden.
    Die haben "preset=veryslow" und "tune=film" verwendet.

    Du meinst, ich soll die Auflösung auch noch hochrechnen?
    Gibt es eine "576p" im Blu-Ray-Standard?
    Die Tabelle unter "http://forum.gleitz.info/showthread.php…f%FCr-H.264-AVC" ist da zweideutig.

    Bei "Erlaubte Auflösung-Frameraten-Kombinationen" gibt es "576p" und bei "Erlaubte Level, Profile, Reference Frames, VBV" gibt es dieses Format nicht. Heißt das, dass ich "576p" als "Blu-Ray-kompatibel verwenden kann?

    (3.)
    In "preset=veryslow" steht zum Beispiel "bframes=8", für Blu-Ray muss aber "bframes=3" stehen. Deshalb der zweite Eintrag, der den ersten überschreibt.

    (5.)
    Die Voreinstellung von "--psy-rd 1.0:0.0" kannte ich nicht.

    Ich verwende "--vbv-maxrate 2128", da der Film mir sonst zu groß wird. Meine Tests haben gezeigt, dass ein crf von 22 oder 23 ein guter Kompromiss zwischen Qualität und Dateigröße ist. Und dann werden die "--vbv-maxrate"-Werte aus der Auflösung errechnet. Ich rechne da 6 bis 7 Bit je Pixel (in diesem Fall "7" Bit). Bei 40000 ist mir die Datei zu groß und die Qualität auch nicht viel besser.

    Mein Server hat kein X11, X gehört nicht auf einen Server!
    Deshalb auch keine GUI.
    Selbst mit GUI muss ich die Einstellungen kennen, da wird das Problem nur von der Komandozeile in die "Maus" verlagert.

    Aber was mir bleibt, ist dann mit MEncoder (FFmpeg hat einen Memory-Leak) den Film erst mit "crf=0" zu CROP-en und zu entrauschen und die Audiospur bei Bedarf anzupassen, dann kann man mit "-mc 0" Audio- und Videospur schön syncron halten,
    und dann am Schluss die Videospur separat mit x264 ins gewünschte Format zu übersetzen.

    Bei meinem Test aus der letzten Nacht, ist ein MPEG-2-Film von c. 2,8 GB mit crf=0 auf nur ca. 20 GB angewachsen.
    Ist also für einen Zwischenschritt noch eine akzeptable Größe. ;)

    Das sollte dann so ungefähr aussehen (muss ich heute Abend mal testen):

    # mencoder -mc 0 -forceidx -aspect 16:9 -aid 128 alter_Film.avi -ovc x264 -x264encopts crf=0:threads=1:nr=1000 -vf softskip,harddup,crop=704:432:08:70 -oac faac -faacopts mpeg=4:object=2:br=192:tns -channels 2 -of lavf -lavfopts format=matroska -o Film_mencoder.mkv
    # mkfifo fifo.y4m
    # mplayer Film_mencoder.mkv -really-quiet -benchmark -vo yuv4mpeg:file=fifo.y4m -ao null &
    # nice x264 --crf 23 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 2128 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim bt709 --transfer bt709 --colormatrix bt709 --sar 1:1 --threads 1 -o Film_videospur.mkv fifo.y4m
    # mkvmerge --aspect-ratio 1:16/9 --default-language ger -o neuer_Film.mkv Film_videospur.mkv Film_tonspur.m4a
    # rm -f Film_videospur.mkv Film_tonspur.m4a Film_mencoder.mkv fifo.y4m

    Das könnte doch klappen, oder?

    EDIT:
    Kann das sein, dass der MEncoder noch den Parameter "bitrate" dazu braucht?
    Laut man-Page soll das aber eine konstante Bitrate zur folge haben und das ist ja auch nicht Blu-Ray-kompatibel.
    In dem Beispielkomando vom x264-Team war auch der Parameter "--bitrate" nicht gesetzt worden.
    Kann das vielleicht sein, dass der MEncoder intern irgendwie nicht so richtig mit variablelen Bitraten klar kommt
    und deshalb irgendwie nicht so reagiert wie der x264 mit den gleichen Parametern???

    (1.)
    Ja, bis auf die Auflösung sollte es Blu-Ray-kompatibel sein, denn alle Einstellungen habe ich aus den "preset's" und dem "tune" einzeln raus gefischt und einzeln übergeben. Denn eigentlich hatte ich vor an Stelle von "veryslow" "placebo" zu verwenden. Dann hat sich aber leider rausgestellt, das der MEncoder den Parameter "--slow-firstpass" aus "placebo" nicht mag. Und "--ref 16" ist sowohl in "veryslow" als auch in "placebo" drin.

    (3.)
    Eigentlich ist der erste Eintrag aus den preset's (und eigentlich "8" oder "16") und wird von der separaten Übergabe mit "3" überschrieben.

    (4.)
    ... weil es unter Verwendung von mehr als einem Thread eine leichte Qualitätsverschlechterung gibt und mein System sowieso nur zwei Kerne hat. So kann der andere Kern seinen normalen 24/7-Aufgaben nachgehen... ;)
    Ja, Zeit ist nicht das Problem, ich rechne mit ca. 24 Stunden je Film und verwendeten Kern.

    (5.)
    Diese Einstellungen verbergen sich hinter "--tune film", und da ist der erste Teil (also der vor dem "/") "unset".
    Aber wenn Du meinst, dann werde ich hier mal "tune=film" ausprobieren.
    ...probier...probier...
    Also, "tune=film" hat ihm nicht geschmeckt. Und ohne "tune=film" sowie ohne "deblock=-1/-1:psy_rd=/0.15" ist die Qualität wieder saumäßig.

    In der MEncoder-man-Page steht, das die Verwendung von den "vbv"-Parametern die Qualität deutlich verschlechtert...
    aber warum???


    Also gerade habe ich noch einen Test nur mit dem reinen x264 gemacht, der auch prächtig aussieht:

    X264OPTS="--crf 23 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 2128 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim bt709 --transfer bt709 --colormatrix bt709 --sar 1:1 --threads 1"
    mkfifo fifo.y4m
    mplayer In_China_essen_sie_Hunde.mpg -really-quiet -benchmark -vo yuv4mpeg:file=fifo.y4m -ao null &
    echo "nice x264 ${X264OPTS} -o In_China_essen_sie_Hunde_test_Videospur.mkv fifo.y4m"
    nice x264 ${X264OPTS} -o In_China_essen_sie_Hunde_test_Videospur.mkv fifo.y4m

    Demzurfolge muss es ein "mencoder"-Problem handeln... :(


    EDIT:
    Leider kann weder der "MPlayer" noch der "x264" die Funktion "crop", so das ich leider auf den MEncoder angewiesen bin. Und der FFmpeg hat ein Memory-Leak, so das er bei großen Filmdateien stirbt. ;(

    Hallo Leute,
    ich möchte meine MPEG-2-Filme, die ich aus dem TV aufgenommen habe, gerne Blu-Ray-kompatibel abspeichern.

    Leider ist bei mir die Qualität saumäßig schlecht, wenn ich die Option "--vbv-bufsize 30000" verwende????
    Allerdings muss sie verwendet werden...

    Hier meine komplette Komandozeile:

    # mencoder -mc 0 -forceidx -aspect 1.77777777777777777777 -aid 128 In_China_essen_sie_Hunde.mpg -ovc x264 -x264encopts crf=23:b_adapt=2:bframes=3:direct=auto:me=tesa:merange=24:partitions=all:ref=16:subme=10:trellis=2:rc_lookahead=60:no_fast_pskip:deblock=-1/-1:psy_rd=/0.15:weightp=0:bframes=3:nal_hrd=vbr:vbv_maxrate=2128:vbv_bufsize=30000:level=4.1:keyint=24:b_pyramid=strict:slices=4:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=1/1:threads=1:nr=1000 -vf softskip,harddup,crop=704:432:08:70
    -oac copy -of lavf -lavfopts format=matroska -o In_China_essen_sie_Hunde_test_mit_vbv_maxrate.mkv

    Lasse ich aber nur die Option "vbv_bufsize=30000" weg:

    # mencoder -mc 0 -forceidx -aspect 1.77777777777777777777 -aid 128 In_China_essen_sie_Hunde.mpg -ovc x264 -x264encopts crf=23:b_adapt=2:bframes=3:direct=auto:me=tesa:merange=24:partitions=all:ref=16:subme=10:trellis=2:rc_lookahead=60:no_fast_pskip:deblock=-1/-1:psy_rd=/0.15:weightp=0:bframes=3:nal_hrd=vbr:vbv_maxrate=2128:level=4.1:keyint=24:b_pyramid=strict:slices=4:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=1/1:threads=1:nr=1000 -vf softskip,harddup,crop=704:432:08:70 -oac copy -of lavf
    -lavfopts format=matroska -o In_China_essen_sie_Hunde_test_ohne_vbv_maxrate.mkv

    dann geht es wunderbar... wieso????

    Kann mir bitte einer helfen?
    Danke!