Wie benutzt man den HC-Encoder?

  • LigH
    Tja, was soll ich dazu sagen?
    Du hast recht, danke für die Belehrung.

    Zitat

    Er erwartet sein Quellmaterial nur in einer speziellen Form. Und ein geeignetes AviSynth-Skript kann ihm diese Form liefern.

    Und da liegt mein Problem. Ich steht ja erst am anfang und die Scripte die ich mir bisher so zusammengebastelt habe sind eben genau das, bastelei bzw. flickwerk. Ich weis nicht was ich genau falsch mache, aber der HC Encoder gibt mir ja unten im Programmfenster an wenn was nicht stimmt. Und wenn ich LanczosResize und ConvertFPS ins Script bringe um die avi eben in PAL-Norm umzuwandeln, sagt er mir das er das ein Fehler beim laden des AviSynth Scriptes aufgetreten ist und das für ConvertFPS "YUY2 input" benötigt, füge ich ConvertToYUY2 ein, sagt er mir das kein "YV12 colour space" vorhanden sei und ich doch bitte ConvertToYV12() einfügen solle; mache ich das bin ich wieder am anfang Ladefehler und "requires YUY2 input".
    Wie mir scheint liegt meinerseits wirlich ein grundlegendes Verständnisproblem vor. Aber VHS-Kurse zu dem Thema gibts wohl keine, oder?

    katjarella

    Zitat

    MP3 Audio Format: Auf einer DVD gehören nur PCM, MP2 (MPA), AC3 und DTS als Audio Format. Selbst wenn das MP3 in 48kHz vorliegt, mußt Du es wandeln. Und das ich hier in meinen Beispiel Scripten es nach 16Bit wandle, hat mehr oder weniger damit zu tun, das ich nicht noch mehr Verwirrung stiften wollte. Es ist auch mit 20, 24Bit möglich, wenns denn der Encoder versteht.

    Das hab ich schon verstanden, das ich eine MP3 nicht für das DVD-Authoring benutzen kann und sie erst umwandeln muß. Nur bisher haben das eben diese 1-2-3-Programme das für mich erledigt, Video-codierung incl..

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Zum Farbraumproblem:

    Manche Filter brauchen YUY2, manche RGB, manche YV12, manche fressen alle.
    Wenn du wirklich einen Filter benutzen musst, der nur YUY2 kann (was ich mir nicht vorstellen kann), geht das so:

    Code
    AviSource()
    Filter1zumBeispielCrop()
    Filter2()
    ConvertToYUY2()
    FilterDerWoYUY2braucht()
    ConvertToYV12()
    resizeFilter()

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Hi,

    nexustheoriginal

    Jo danke, diesmal hat endlich (nach einmal System einfrieren und über 3h warten) geklappt. Ich glaube jetzt ist mir auch der nötige Aufbau eines Scripts etwas klarer. Erst die voraussetzung schaffen z.B. erst ConvertToYUY2 für ConvertFPS und dann selbiges nachstellen oder auch. ConvertToYV12()
    für LanczosResize() und dann dieses. Ganz wie du es im Beispiel angegeben hast. Würd mich an sich nur noch interessieren obs auch umgekehrt geht, erst Größenänderung und dann Framerate, aber das sollte wohl auf die eine oder andere weise in der Doku von Avisynth oder anderswo im Forum stehen. Ich hoffe ich lieg jetzt nicht wieder irgendwie allzu falsch.

    Ich muß allerdings sagen das TmpGenc das Ergebnis des encodens schöner hinbekommen kannt als mein einfaches Avisynth-Script und der HC. Übrigens....

    katjarella
    beim TmpGenc scheints wirklich am DirectShow Multimedia File Reader in der Einstellung gelegen zu haben. Mit häckchen raus gings filmchen durch. :)
    Danke dir.

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Ich weis, ihr werdet mich jetzt bestimmt wieder schelten, aber ich muß diese Fragen stellen.

    Ich habe da 2 avis, rein Pixeltechnisch/rechnerisch stimmen die mit den Formaten 16:9 und 4:3 überein. Ich versteh aber nicht ganz (oder auch mal wieder garnicht ;) ) wieso dann beim errechnen mit ARTC immer Ränder raus rauskommen (oben/unten bei 16:9, links/rechts bei 4:3)?
    Wenn ich mir sicher wäre würde ich mir ja selbst antworten, "weil die Bildpunte beim TV recheckig sind und die beim Computer quadratisch." Nur wie ich mich kenne lieg ich da nicht ganz richtig wenn nicht sogar vollkommen falsch.

    Auf jeden Fall hab ich in beiden Fällen irrsinnige Qualitätsverluste nach dem Kodieren, besonders in den Konturen und der Schärfe bei schnellen Bewegungen. Könnt ihr mir da vielleicht zur hand gegen und sagen wie ich meine einfachen Avisynth-Scripte dahingehend verfeinern kann?

    Script für die 16:9 (orginal 512:288 pixel)

    Zitat

    AviSource("G:\Bastel\Bild 1609.avi")
    LanczosResize(720,404).Addborders(0,38,0,38)


    Script für die 4:3 (orginal 512:384 pixel)

    Zitat

    AviSource("G:\Bastel\Bild 43.avi")
    LanczosResize(640,480).Addborders(40,0,40,0)

    katjarella
    Ja, auch die sind NTSC und ich hab mich entschlossen sie auch dabei zu belassen. Der normale Qualitätsverlust reicht mir vollkommen. ;) Ach ja, könntest du mir evtl. noch kurz erklären, was die weiteren Parameter beim LanczosResize in deinen vorherigen Scriptbeispielen zu bedeuten haben? Danke.

    PS: Allgemeine Hilfen reichen mir schon, so daß wir ohne Screenshots oder dergleichen auskommen sollten. Möchte ja noch ein wenig probieren und euch somit nicht noch mehr umstände machen.

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Der große Vorteil am HcEnc ist ja, dass er NICHTs weiter tut, als ein (strikt) vorgegebenenes Format nach m2v zu wandeln.

    Denn da ist man sich sicher, dass keine schweinereien passieren, wie Farbraumkonvertierungen, resizing oder ähnliches.

  • Deinen Aspect-Ratio-Rechner hast du mit Sicherheit falsch bedient, der berechnet Ränder anscheinend unter falschen Annahmen.

    Source: 1:1 square pixel
    Target: 4:3 NTSC, oder 16:9 NTSC

    In beiden Fällen kannst du direkt auf 720:480 resizen, denn die Bildflächen haben ja exakt das erwartete Seitenverhältnis bei quadratischen Pixeln, und bei MPEG2-Video wird ja angegeben, welches Seitenverhältnis das ganze Bild bei der Wiedergabe haben soll.

  • LigH
    Habs ausprobiert und es klappt tatsächlich. Und wieder mal was gelernt (hoffe ich). Danke.

    Nur wie kann ich die Scripte verändern um bei den vorgaben das beste an Qualität herauszuholen?
    Andere Resize-funktion, weitere Filter, etc.?

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Im Allgemeinen: Filterung nicht übertreiben!

    Überschärfte Bilder sehen auch nicht wesentlich besser aus als eher weichere, sie bereiten jedoch dem Encoder eher Probleme (provozieren Artefakte).

    Das Rauschen rigoros herausfiltern ist ebenfalls unsinnig, weil dadurch die Bilder teils "sterben", teils ein Eigenleben entwickeln (Gries wird als Bewegung missverstanden).

    Wenn genug Rechenleistung und Zeit vorhanden ist: "Intelligente" Filter verwenden (die ihre Stärke dem Bildinhalt anpassen).

  • Und was wäre z.B. ein intelligenter Filter?
    Der z.B. zwei den Konstrast zwischen zwei sich schnell gegeneinander bewegenden, ähnlich farbigen Objekten verbessert und dabei gröbere Pixelbildung vermeidet? Oder ist das als Umsetzung einer AVI zur DVD-MPEG2 (nenns einfach mal so) garnicht möglicht, gibts da zwangsläufig einen großen Qualitätsverlust?
    Oder bringts was, wenn ich beim meinem beispiel anstatt der 720x480 besser die niedrigere mögiche auflösung von 352x480 verwende?

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Neues Problem.
    Hab beide Filme inzwischen mit mit dem HC-encoder kodiert, mit einer abwandlung des oben angebenen Scripts (resizen ohne Rand ging ja, habs ja gelernt :) ). Jetzt hab ich nur das Problem das die Filme um ein paar sekunden kürzer sind. (Da glaube ich einfach mal der angabe von DVDLab) Komischerweise, gibt mir der HC-Encoder aber bei "movie info" die korrekte länge an.
    Jetzt ist mir der gedanke gekommen das es evtl. an der Bildwiederholfrequenz gelegen haben könnte...

    b1.jpg b2.jpg

    ...aber die 29,97 fps sind doch NTSC und ich hab doch nur direkt nach NTSC codiert. Also woran liegts, was hab ich diesmal nicht verstanden? :grübeln:

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • was ist los leute?
    keiner ne ahnung woran es liegt und wie ich es beheben kann?

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Jetzt hab ich nur das Problem das die Filme um ein paar sekunden kürzer sind. (Da glaube ich einfach mal der angabe von DVDLab)


    Hi,

    DVDLab kann man zwar in vielerlei Hinsicht trauen, aber gerade der Angabe der Filmlänge nicht. Der von DVDLab dargestellte Wert zeigt Dir normalerweise nur den Zeitpunkt der letzten GOP eines Films, nicht aber die tatsächliche Länge. Die Abweichung sollte in der Regel aber nicht allzu groß sein, es sei denn, die GOPs haben "Überlänge", also wesentlich mehr als 15 Frames.

    Grüße

    darkframe

  • Sevus

    darkframe
    Danke Mann, es hat funktioniert. DVD fertig compiliert, Ton synchron, 1A.
    Dann ist eigentlich auch egal zu wissen, warum beim TMPGEnc Versuch (nur Bild-Stream) beide Files gleich lang waren.
    Nochmal danke.

    :esel: Verlang ich zu viel, oder bin ich einfach nur zu blöd? :ichdoof:

  • Kann mir bitte mal jemand den Batchmode von HCenc erklären?

    Ich habe unter Windows XP mit Start/Ausführen/cmd ein DOS-Fenster geöffnet und folgende Zeilen mit rechter Maustaste reinkopiert:

    HCenc_021 -i d:\AA1.avs -o d:\AA1.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA2.avs -o d:\AA2.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA3.avs -o d:\AA3.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA4.avs -o d:\AA4.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA5.avs -o d:\AA5.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA6.avs -o d:\AA6.m2v -b 3000 -maxbitrate 3500
    HCenc_021 -i d:\AA7.avs -o d:\AA7.m2v -b 3000 -maxbitrate 3500

    Daraufhin haben sich 6 statt 7 HCenc-Fenster geöffnet und sind fröhlich am kodieren (ich hoffe, das 7. Fenster öffnet sich, wenn der erste Job beendet ist...?).

    Ich bin sicher, meine Vorgehensweise ist nicht die optimale und dass HCenc normalerweise eine Kodierung nach der anderen abarbeiten sollte und nicht alle gleichzeitig - frisst ja auch ein Stück weit Ressourcen, denke ich.

    Wie gehts richtig?

  • Ich habe unter Windows XP mit Start/Ausführen/cmd ein DOS-Fenster geöffnet und folgende Zeilen mit rechter Maustaste reinkopiert:

    Man sollte diese Zeilen nicht an die Eingabeaufforderung kopieren, sondern in eine "Textdatei" mit der Endung "*.bat" oder "*.cmd" (wie man das macht, weißt du ja schon von AviSynth-Skripten mit der Endung "*.avs", oder?).

    Außerdem ist es nützlich, zur Sicherheit auf jedes Kommando zu warten, denn zwischen Windows 2000 und Windows XP hat Microsoft dämlicherweise asynchrone Verarbeitung zum Standard erhoben (so ein Schwachsinn!)...

    AA.bat

    Code
    start /wait HCenc_021 -i d:\AA1.avs -o d:\AA1.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA2.avs -o d:\AA2.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA3.avs -o d:\AA3.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA4.avs -o d:\AA4.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA5.avs -o d:\AA5.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA6.avs -o d:\AA6.m2v -b 3000 -maxbitrate 3500start /wait HCenc_021 -i d:\AA7.avs -o d:\AA7.m2v -b 3000 -maxbitrate 3500

    oder noch intelligenter, direkt an der Eingabeaufforderung (wenn du das in eine Batchdatei schreibst, musst du die Prozentzeichen verdoppeln):

    Code
    FOR /L %n IN (1,1,7) DO start /wait HCenc_021 -i d:\AA%n.avs -o d:\AA%n.m2v -b 3000 -maxbitrate 3500
  • Danke für die ausführliche Antwort! Das mit der *.bat-Datei ist mir in der Zwischenzeit wieder eingefallen. Aber die Wait-Option klingt gut. Alles an einem Stück an der Eingabeaufforderung werde ich heute abend mal probieren.

    Neues Problem:

    Ich habe in meine Kommandozeilen noch ein "-aspect 4:3" eingefügt, nachdem HC alles automatisch in 16:9 kodiert hat - aber ohne Erfolg. HC scheint "-aspect 4:3" (natürlich ohne Anführungszeichen eingegeben) schlichtweg zu ignorieren...?


  • oder noch intelligenter, direkt an der Eingabeaufforderung (wenn du das in eine Batchdatei schreibst, musst du die Prozentzeichen verdoppeln):

    Code
    FOR /L %n IN (1,1,7) DO start /wait HCenc_021 -i d:\AA%n.avs -o d:\AA%n.m2v -b 3000 -maxbitrate 3500

    Also dieser Einzeiler ist echt 'ne Wucht - vielen Dank!

    Übrigens: In der PDF-Anleitung zum HC Encoder 21 heißt der Kommandozeilenparameter noch *ASPECT, nicht *ASPECTRATIO. Müßte vielleicht mal jemand dem hank315 Bescheid sagen.

    Und ich müßte jetzt bloss noch wissen, wie ich die MP3s aus den AVIs mit den M2Vs gemuxt kriege bzw. womit ich die MP3s in MPAs umwandle...? Ich glaube, die MPEG-Tools von TMPGEnc können das, aber Freeware wäre mir lieber (gibts BeSweet noch...?).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!