Hybrid: Input -> x264/x265/Xvid/VP8/VP9/AV1

  • Hab hier ne Testversion an der ich einiges gefixed habe, nächste Version werde ich wohl die Tage rausbringen,..
    Wollte eigentlich:
    1. m2ts Overheadberechnung noch etwas verbessern
    2. eine mplayer&mencoder Version mit libbluray support haben
    3. ein Problem mit einem vfr Stream noch sicher gefixed habe
    bevor ich die nächste Version herausgebe, werde aber wohl ohne die Punkte trotzdem die Tage ne neue Version veröffentlichen. (vor allem weil das Changelog so lang ist)

    Cu Selur

  • Hab grad noch nen Bug gefunden: 2-pass crf produziert im zweiten Durchlauf einen Parameter "--bitrate XY" (also wirklich XY, KEINE Zahl)...
    Zum anderen wüsste ich gerne was ich mit der Fehlermeldung anfangen soll die kommt wenn ich bei baseline als preset veryslow auswähle, ich kann damit nicht wirklich was anfangen. Heißt das dass das Resultat nicht baseline kompatibel ist!?
    Und falls noch nicht geschehen bitte ich darum bei PAR 1:1 bei MP4Box dies nicht explizit anzugeben oder eine Option zu haben dies zu tun.

    Vielen Dank für die Mühe mit diesem Tool!

  • 1. der 2pass crf Mode ist bei meiner aktuellen Testversion rausgefolgen, weil aktuelle x264 Versionen diesen nicht mehr unterstützen (im crf 1st pass wird kein .stats File mehr erstellt, weshalb die Datenrate im 2nd pass dann auch nicht angepasst werden kann)
    2. Gerade mal getestet: die Fehlermeldung die da kommt lautet:

    Zitat

    subPixelPrecision: value 10: trellis based rate refinement on all frames is not present in current list

    -> werde ich fixen. Das Problem ist dass veryslow subMe 10 verwendet, dieses aber im Baseline nicht zur Verfügung steht, da kein CABAC zur Verfügung steht, was eine Voraussetzung für subMe 10 ist. (werde es so einstellen, dass automatisch ohne Meldung auf subMe 9 gewechselt wird)
    Keine Angst die Resultate sind immer noch Baseline kompatibel, wenn da noch ein --profile baseline in der Command line steht,...

    Zitat

    Und falls noch nicht geschehen bitte ich darum bei PAR 1:1 bei MP4Box dies nicht explizit anzugeben oder eine Option zu haben dies zu tun.


    Warum? Sehe momentan keinen Grund dies nicht zu tun.
    - Wenn der Input nur durchgereicht wird, kann man unter Muxing das PAR überschreiben.
    - Wenn man reencoded, kann man sowohl den Input- als auch den Output PAR bei Crop/Resize festlegen.
    => wüsste nicht wo das Problem ist. Wenn Du ein Szenario nennen kannst bei dem es Sinn macht PAR 1:1 nicht zu Signalisieren obwohl das Material 1:1 ist werde ich eine entsprechende Option einbauen.

    Cu Selur

    Ps.: Wenn Du postest was für eine Version 32/64bit Linux/Windows Du verwendest kann ich Dir per PM meine aktuelle Testversion schicken.

  • Zitat


    => wüsste nicht wo das Problem ist. Wenn Du ein Szenario nennen kannst bei dem es Sinn macht PAR 1:1 nicht zu Signalisieren obwohl das Material 1:1 ist werde ich eine entsprechende Option einbauen.


    Mein Szenario das ich hier vor einer Weile schon mal gepostet hatte ist dass mein Mp3-Player (Samsung YP-P3) mp4 abspielt, aber nur wenn der PAR nicht explizit drinsteht... Dass das nicht toll ist weiß ich auch, aber am MP3-Player kann mans nun mal nicht ändern.

    Über ein win64 Testbuild würde ich mich freuen :)

    Bulsa

    2 Mal editiert, zuletzt von bulsa (23. März 2011 um 10:27)

  • Die Fehlermeldung bei veryslow hab ich jetzt bei dem Testbuild immer noch, PAR funzt so wies soll (muss).

    Dafür ist mir eine weitere Eigenart meines Players begegnet... (Wer auch immer diese Spezifikationen produziert hat hatte ziemlich wenig Ahnung scheint mir :()
    Er unterstützt Baseline H.264 bis zu 640x480/30fps, hat allerdings nur einen Speicher für 2376 Macroblocks (Level 1.3 laut Handbuch, was natürlich in der Auflösung/Framerate Blödsinn ist -> 1200Mb/Frame 36000Mb/s)
    Edit: Die vbv Limits für 1.3 gelten natürlich auch aber die kann man ja bereits einstellen und speichern.
    Ich bin für Vorschläge offen wie man solches Verhalten berücksichtigen kann. Meine Spontanidee (weiß nicht wie einfach das umzusetzen ist) wäre benutzerdefinierte Level zu ermöglichen.

    Bulsa

    2 Mal editiert, zuletzt von bulsa (23. März 2011 um 14:31)

  • Zitat

    Die Fehlermeldung bei veryslow hab ich jetzt bei dem Testbuild immer noch


    Ja, da hatte ich testweise einen schnellen Fix gemacht, den ich aber noch ordentlich machen wollte, weshalb er aktuell draußen ist. :)

    Zitat

    Die Fehlermeldung bei veryslow hab ich jetzt bei dem Testbuild immer noch


    2376 Macroblocks -> jeder Makroblock umfasst 16 Pixel ->2376*16 = 38016 Pixel, was kleiner ist als 640*480 = 307200 -> die Angabe macht so keinen Sinn. :)

    Zitat

    Ich bin für Vorschläge offen wie man solches Verhalten berücksichtigen kann.


    Unabhängig davon, wie das Verhalten den nun aussieht, spricht doch eigentlich nichts dagegen sich ein entsprechendes x264-Profil zu erstellen,...

    Zitat

    benutzerdefinierte Level zu ermöglichen.


    Die Definition der Level ist im Standard festgelegt, da werde ich sicher nichts ändern. :)

    Cu Selur

  • Mit Speicher meinte ich wieviele stored Frames möglich sind, wobei die Zahl auch nur eine Vermutung ist, die darauf beruht dass ich mit höheren Profiles als 1.3 mit gleichen vbv Limits wie 1.3 und mehr ref Frames Bildfehler bekomme auf dem MP3-Player.
    Nachdem ich mich anscheinend recht missverständlich ausgedrückt habe hier noch mal in übersichtlich:

    Im Handbuch steht:
    Baseline Level 1.3 640x480 -> Was natürlich Käse ist, da bei Level 1.3 die Macroblocks/Frame Beschränkung bei 396 liegt: 640*480/16/16=1200>396
    Nun habe ich per Versuch festgestellt dass Videos trotzdem funktionieren wenn:
    In den Metadaten Level 2.1 steht.
    Die Auflösung der nativen Auflösung von 480x272 entspricht, was 510 Mb/Frame>396 entspricht
    Die Anzahl der Referenz-Frames nicht zu groß ist (sonst Bildfehler) was mich zu der Vermutung führt dass das Limit für stored Macroblocks entsprechend Level 1.3 bei 2376 liegt, sonst würde die Level Angabe im Handbuch ja absolut keinen Sinn machen.

    Was ich jetzt also brauche ist eine Referenz-Frames Begrenzung in Abhängigkeit von der Auflösung, was eben nicht durch ein gespeichertes Profil möglich ist (zumindest meines Wissens bisher), die Level Beschränkungen müssten aber einen analog funktionierenden Mechanismus bereits implementiert haben, deshalb mein Vorschlag von benutzerdefinierten Levels.
    Wie ich schon sagte - alles bisschen komisch an dem Gerät, dafür ist Bildqualität erstklassig :P

  • Sorry, aber ein automatische Einschränkung der Referenzen an künstliche Beschränkungen werde ich nicht schreiben, u.a. weil ja noch nicht mal wirklich klar ist wie die Beschränkungen denn wirklich aussehen.
    Ein generisches Model schreiben, bei dem die ganzen Parameter modular wären, würde ich zwar durchaus können, aber das dauert mir einfach zu lange.

    Zitat

    Die Auflösung der nativen Auflösung von 480x272 entspricht


    Wenn das Display eh nur 480x272 nativ hat, würde ich einfach immer auf 480x272 resizen und notfalls ne Letterbox machen, einmal die Referenzanzahl austesten und ein entsprechendes Globales Profil erstellen, welches man lädt wenn man für das Gerät encoded. ;) (automatisches, croppen, resizen und letterboxen kann Hybrid ja)

    Cu Selur

  • Hybrid rev.110331

    *fixed*
    - bug in mplayer call,.. that caused a crash for dvd input

    Hybrid rev.110330

    *added*
    - autoLoading first audio file,.. if the videoInput is i.e. test.avi and has no audio stream in it Hybrid will now search the input folder for audio files named test*.EXT, where EXT is any audio extension Hybrid knows and automatically load the first found as audio source.
    - MPLS-Selector so one can select which Titles should be analysed on blu-ray input
    - .mpls selector option to ignore .mpls files with a duration below X minutes
    - support x264 option '--frame-packing' for stereoscopic encoding
    - subtitle extraction from DVD Source will honor chapter selection and only extract the selected parts
    - Default Hybrid Default Video Profiles (requires Model reset!)
    - (windows) dependency to 'NamedPipe' from roozhou (needed for mplayer raw decoding)
    - option to force cfr output when decoding with mencoder/ffmpeg
    - option to select if ffmpeg or mencoder is used as raw decoder
    - option to let mp4box/mkvmerge skip the explicit naming of PAR 1:1 in the muxing call (needed for some mp3/mp4 players)

    *fixed*
    - mp4/mov id grabbing
    - removed unneeded 'splitx 0:0' from mp4box call
    - audio only preview
    - subtitle extraction problem
    - bug with he-aac signaling
    - chapterTab adjust chapters to chapter selection
    - one of the problems with cut support (still experimental)
    - naming problem when extracing multiple audio to raw from BluRay
    - bug in '3.1 to dl2' sox call
    - crash when a needed tool was missing
    - Hybrid closing when POPUP occured while Hybrid was minimized by preventing PopUps while minimized.
    - x264: force cfr output was accidently disabled (should be enabled when 'Use internal decoder if possible' is activated.
    - x264: bug in cl when feeding timecodes to x264
    - x264: baseline + veryslow/placebo -> using subMe 9 instead of subMe 10, since 10 is not allowed (needs CABAC)
    - avs analyser crash

    *changed*
    - x264: check that 'force cfr' isn't enabled if the decoder used isn't x264
    - x264: wrong named x264 .stats file if output contained two consecutive white spaces
    - x264: qMax = 69 ('The QPs above 51 are "fake QPs" for VBV emergency. You can disable VBV emergency entirely by pushing the max down to 51.' by Dark Shikari)
    - better m2ts Overhead with ac3 audio
    - limit bitrate<>size flipping
    - automatically enabling 'generate output name' when Queue Titles/Chapters is pressed
    - (windows) using vstrip instead of vstrip_ifo&vstrip.dll (-> added a vstrip version - vstripFree - that can't remove microvision or css to the windows package to avoid legal problems)
    - added some warnings for DVDs created with old/broken TmpgEnc Version
    - overwrite mplayer channel count with info detected by mediainfo
    - bunch of small cosmetics
    - use MPlayer as decoder for raw audio to counter problems with to short dts stream when decoding with ffmpeg (mplayer also looks for DS filters if it can't decode

    material, i.e. raw thd)
    - ffmpeg: use libmp3lame for mp3 encoding (-> with this ffmpeg fpr Hybrid needs to be compiled with --enable-libmp3lame support)
    - mplayer/mencoder: -noautosub -> -nosub

    *removed*
    - (windows) dependency to pssuspend
    - (windows) dependency to vstrip_ifo and vstrip.dll

    *updated*
    - Windows package (added separate 64bit and Win2k addition downloads)

    -> updated links in 1st post

  • Hallo,

    erst einmal großes Dankeschön für diese tolle Tool!
    Ich nutze Hybrid unter Linux und habe nur ein Problem damit: Bei mir wird der Befehl zum extrahieren der Audiostreams falsch generiert. Korrekt wäre doch

    Code
    mkvextract tracks quelle id:ziel

    Bei mir fehlt aber die id, heißt Hybrid führt den Befehl "mkvextract tracks quelle :ziel" aus, und versucht das für jede Audiospur, die ich angegeben hab...
    Hat noch jemand so ein Problem, oder kann ich das irgendwie debuggen, um rauszukriegen, wo der Fehler liegt?

  • Vermute Hybrid findet aus irgendeinem Grund beim Input nicht die mkvID, wenn Du angeben würdest, was für eine Version 32/64bit Du unter Linux verwendest kann ich Dir mal eine Testversion zu schicken,... (eben festgestellt, dass die aktuelle Version keinen DebugOutput ausgeben kann)

  • Hybrid hat jetzt eine eigene Homepage und ein kleines Forum: http://www.selur.de :)

    Hybrid rev 2011.04.17.1

    *added*
    - "Use '--fullraw' when extracting with mkvextract" option, which allows to use '--fullraw' instead of '--raw' when using mkvextract
    - first Mac OS X release (experimental -> need feedback)

    *cosmetics*
    - windows: added version info to .exe description

    *adjusted*
    - to alternative mplayer identify infos
    - x264: add '--bluray-compat' when blu-ray compliance is activated
    - x264: removed '--open gop' sub options

    *fixed*
    - accidentally permanently deactivated DebugOutput ;)
    - handling mp4 files: not using MP4Box but ffmpeg for stream extractions
    - crash when using 'Postpone' was called on a job which hadn't been assigned to a client yet.

    *requirements*
    - x264: needs to be rev1936 or newer now

    *updated*
    - windows packages: updated tools, added Windows installer, switched to 7z archives

    -> downloads: http://www.selur.de/downloads
    (please report if you get slow downloads, I'll then additionally upload the files to MultiUpload)

    Cu Selur

  • Hybrid rev 2011.05.03.1:
    *cosmetics*

    • added Hybrid type (windows32/windows64/linux32/linux64/macosx64) to debug output
    • tweaked autocrop to only scan the first frame rate of I-frames
    • moved 'Configuration' selection below tabs in video configuration tabs
    • image- instead of text-buttons in Jobs-register and small redesign, thanks to Faust
    • some small rearrangements here and there


    *changed*

    • x264: on separate '2pass - 1st pass', call x264 with '--output NUL'
    • jobs get now saved on Hybrid close and automatically loaded on Hybrid start


    *added*

    • option to let Hybrid auto select a audio/subtitle stream with a specific language


    *fixed*

    • a crash with autoloading audio for raw video
    • initialization of tools for loaded jobs
    • 'set absolute path' (only replace first occurrence of toReplace term)
    • a bunch of problems related to separate 2pass 1st and 2pass 2nd pass encoding


    *updated*

    • windows packages/installer

    -> downloads: http://www.selur.de/downloads

    Cu Selur

  • Moin Moin,
    ist es so gewollt, dass man bei der aktuellen Version bei den 1-pass Methoden keine Bitraten, crf oder Zielgröße mehr einstellen kann? Ist alles ausgegraut.

Jetzt mitmachen!

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