Beiträge von Nel-son

    ich hab mir mal ein testvideo geladen (

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    ) und die ergebnisse snd am tv und am computer eher mäßig. Ich hate aber mit bluras schon bessere ergebnisse, leider finde ich die stellen in den filmen nicht mehr. Kann es sein, dass auch das videoformat eine rolle spielt?

    Hallo,

    ich nutze in Hybrid ein recht simples Profil für das x264-Encoding:

    Code
    x264 --crf 20.00 --profile high --level 4.1 --ref 4 --keyint 24 --min-keyint 1 --b-pyramid strict --lookahead-threads 1 --sync-lookahead 9 --rc-lookahead 12 --slices 4 --qpmin 10 --qpmax 51 --trellis 0 --psy-rd 1.00:0.0 --vbv-maxrate 40000 --vbv-bufsize 30000 --threads 6 --sar 1:1 --qpfile GENERATED_QP_FILE --non-deterministic --range tv --demuxer raw --input-res 48x48 --input-csp i420 --input-depth 8 --fps 25/1 --output-depth 8 --output OUTPUTFILE -

    Das hab ich seit Jahren so, habe ich bei meinem Umstieg von Windows zu Linux aus einer MeGUI-Profil übernommen.

    Problem ist oft, dass speziell in Szenen in denen eine Lichtquelle in einer an sich dunklen Szene auftauscht. Die Helligkeit sollte ohne "Absätze" gleichmäßig weniger werden je weiter man sich der Lichtquelle entfernt. Bei mir treten aber Abstufungen auf. Wie eine Art Ring um die Lichtquelle mit einer ca. gleiche Helligkeit, der Ring weiter außen ist dunkler, der Übergang dazwischen aber sehr plötzlich.

    Erinnert an die Höhenlinien für Berge auf einer Karte. Ich hoffe ich konnte erklären was ich meine. Leider hab ich beim letzten Film den ich gesehen habe die Szene nicht mehr gefunden.

    Ich suche Einstellungen um das bei x264-Encodings zu verhindern.

    edit

    Hab doch noch 2 Bsp. gefunden, die aber leider nicht ganz perfekt sind. Das erste ist keine Lichtquelle sondern ein einfach heller werdendes Bild. Beim zweiten bewegt sich die Lichtquelle und nimmt viel des Bildes ein.

    Ich muss das Thema nach fast 3 Jahren nochmal aufgreifen. Ich weiß nicht mehr wie ich das damals gelöst habe.

    Kurze Erklärung was ich genau mache:

    1.) Ich lade ein HD- und ein SD-Video in Avisynth

    2.) falls nötig suche ich einen gemeinsamen Startpunkt mit trim(), z. B. wenn beim SD-Video der Vorspann fehlt (das fehlt im Script oben, war da scheinbar unnötig)

    3.) ich passe die Framerate des SD-Videos an die Framerate des HD-Videos an und lasse beide mit stackhorizontal() nebeneinander stellen; dann springe ich zu einem x-beliebigen Punkt und prüfe ob die beiden Bilder gleich sind

    4.) wenn alles i.O. ist zeigt jede Bildnummer im HD-Video das exakt gleiche Bild im SD-Video an - beide sind "synchron". Da die Audiospur des SD-Videos mit synchron mit dem SD-Video ist und das SD-Video "synchron" mit dem HD-Videos ist, ist auch "SD-Audio" mit "HD-Videos" synchron: Ziel erreicht

    Das ganze geht auch anders, wenn man aber schneiden muss (z . B. Punkt 2 oder es gibt ganze Szenen die sich unterscheiden oder auch nur geringe Unterschiede bei der Länge dunkler Zwischenszenen) ist Avisynth recht einfach.

    Problem: Wenn ich AssumeFPS auf das SD-Video anwenden kann, kann ich "sync_audio=true" setzen. Framerateänderungen des SD-Videos führen nicht zu einem asynchronen Ton des SD-Videos. Da SD-Video und HD-Video "synchron" sind, ist auch HD-Video und SD-Audio weiterhin synchron. Muss ich aber ChangeFPS auf das SD-Video anwenden gibt es kein "sync_audio". Das heißt der Ton des SD-Videos wird asynchron sowohl zum SD-Video als auch zum HD-Video.

    Hallo,

    ich habe vor einer Weile mal recht umständlich Screencast hergestellt, die Videos sind durchaus sehr gut geworden. Beim ansehen ist mir an einigen Stellen mit viel und vor allem schnellen Bewegungen aufgefallen, dass die irgendwie komisch aussehen. Hab die mir mal bildweise in Avisynth angesehen. Normal besteht ein Großteil des Videos aus doppelten Vollbildern, an diesem "komischen" Stellen geht das aber zu Einzelbilder über, teilweise kurz danach wieder zu Doppelbildern. Eine Logik erkenne ich nicht.

    Eine beispielhafte Nutation sieht so aus:

    Code
    a b c d e f g h i j k l m n o p p q q r r s s t t u u v v w w x x y y z z a a b b c c d d e e f	f g g h h i i j j

    Ich habe bisher nicht oft Normwandlungen durchgeführt, bisher gab es immer ein klares Schema, so dass sowas wie

    Code
    Tdecimate(mode=2,rate=23.976)

    ausreichend waren. Gibt es eine Möglichkeit das hier auszubügeln, z. B. indem man aus allen Einzelbildern Doppelbilder macht?

    Hallo,

    ich hab festgestellt, dass in einigen meiner Hörbücher (scheinbar bei irgendeinem Transfer in den letzten Jahren) etwas beschädigt wurde. Die Audioausgabe ist nur ein "Quietschen", nichts zu verstehen. Die Datei wird von ffprobe nicht als defekt erkennt. In Audacity "sieht" man den Fehler in dem Sinn, dass ab der defekten Stelle die Frequenzen stärker "ausschlagen" als vorher. Gibt es irgendeine Möglichkeit solche fehlerhaften Dateien auszufiltern? Gibt es ein Command Line-Tool das diese "Ausschläge" erkennen kann?

    Hi,

    das Phänomen hatte ich vor vielen Jahren schon einmal, damals gab es glaube in einem Programm namens ProjectX eine Funktion um das zu beheben. Ich glaube da wurde aus dem 2.0 einfach 5.1 gemacht und die fehlenden Kanäle mit Stille aufgefüllt - eine Art Möchtegern-5.1. Mir ist das jetzt wieder untergekommen als FFMS2 bei AviSynth meinte das nicht zu unterstützten. LSmash kann das aber scheinbar. Da ich Avisynth unter Linux mit Wine nutze und da LSmash semi-gut läuft würde ich gern bei FFMS2 bleiben, wenn möglich.

    Ich habe mir eine Custom Action im FileManager gebastelt mit der ich mit einem Klick eine einfache AVS mit der Video-Datei als Input erstelle. Sieht einfach so aus:

    Code
    v = FFVideoSource("input.mkv", threads=1)
    a = FFAudioSource("input.mkv")
    audiodub(a,v)

    wenn die Datei einen Audiostream enthält und

    Code
    FFVideoSource("input.mkv", threads=1)

    wenn keiner dabei ist. Ich würde das Script noch etwas erweitern und vorher checken ob es diesen 2.0-5.1-Wechsel gibt. Geht das irgendwie? Die Ausgabe vom AvsPmod-Editor kann ich ja schlecht in einem Shell-Scrpt verwerten. Müsste vielleicht irgendwie mit ffprobe oder so gecheckt werden

    Hi,

    ich nutze unter Linux ffmpeg für die Konvertierung in AAC. Ich hab mir da ein kleines Script geschrieben mit dem ich über den Dateimanager Audiodateien konvertieren kann. Alles über 6 Kanäle sind Unsinn, Dateien unter 6 würde ich so lassen wie sie sind. Gibt es in ffmpeg eine Funktion mit der man 6+ Kanäle automatisch in 5.1 umwandelt, alles unter 6 aber so lässt wie es ist?

    Nel-son

    Mir ist etwas komisches aufgefallen. Wenn ich Videos durch Hybrid schicke, zeigen manche Player unnötige schwarze Ränder an.

    Ein Bsp. ist eine Serie in SD (720x576) in 4:3. Das Original wird in Kodi, VLC und mpv normal angezeigt, d.h. oben wird kein schwarzer Rand angezeigt. Das per Hybrid kodierte File zeigt oben Ränder an. Die sind aber nicht Teil des Videos, die werden bei der Wiedergabe hinzugefügt.

    Das gleiche habe ich nun wieder bei einem HD-Video mit 1920x800. Da hier die Untertitel aufgrund des fehlenden schwarzen Randes quasi mittig angezeigt werden, wollte ich per Letterbox daraus wieder schönes 1920x1080 machen - das habe ich im Reiter "Resize" bei Letterbox eingetragen. Kommt auch raus, aber die Player zeigen nun rechts und links schwarze Ränder an.

    Log-Files habe ich erstmal keine, könnte ich nachliefern wenn nötig. Ich hab aber die Mediainfoangaben zu den beiden HD-Videos (leider hätte ich die bei dem SD-Bsp. nur noch für die Ausgabedateien):

    Original:

    Encoding

    Hi,

    ich nutze dieses einfache Skript um 2 Videos synchron zu halten und dann die deutsche Tonspur unter dem SD-Video unter das HD-Video zu legen.

    Code
    v1 = FFVideoSource("input1.mkv", threads=1)
    a1 = FFAudioSource("input1.mkv")
    hd1 = AudioDub(v1,a1)
    v2 = FFVideoSource("input1.mkv", threads=1).BicubicResize(1920,1080)
    a2 = FFAudioSource("input1.mkv")
    sd1 = AudioDub(v2,a2).changefps(23.976)
    StackHorizontal(hd1,sd1)
    #audiodub(hd1,sd1)

    StackHorizontal nutze ich um beide Videos auf synchronität zu püfen, das Encoding mache ich dann indem ich auduidub() auskommentiere. Normal habe ich 25fps-SD-Quellen und 23.976-fps-HD-Quellen und das geht mit AssumeFPS(). Der Filter hat eine Audio-Sync-Funktion und ich muss mich um nichts weiter kümmern. Beim aktuellen Video muss ich aber ChangeFPS() verwenden. Keine Ahnung wieso. Die Videos sind absolut sync, aber Audio nicht.

    Wie kann ich trotz Einsatz von ChangeFPS dafür sorgen, dass Audio synchron zum Video bleibt?

    Na ja, einen Screencast halt. Die Aufnahme des Inhaltes des Desktops. Wenn dort ein Video abgespielt wird, wird das Video aufgenommen. An Software verwende ich nur FFmpeg und halt die Wiedergabequelle. Das kann z. B. iTunes oder der Webbrowser sein bei Streams.

    Ich hab mal fix einen Test (unter Linux) mit einer lokal gespeicherten Datei gemacht mit dieser Kommandozeile

    Code
    ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -crf 0 -preset ultrafast output.mkv

    Hab es auch mit einer Framerate von 23.976 versucht wie es die Quelle hat, beide ruckelten zunächst einmal nicht. Ich will morgen nochmal einen Versuch mit einer Doku machen, ich hoffe ich finde noch die eine Szene, von der ich glaube sie eignet sich gut dafür. Dürfte gleich zu Beginn von Planet Erde, Folge Bergwelten sein. Da gibt es einen Landschaftsschwenk über besagte Bergwelt.

    Ich könnte mir vorstellen, dass Streams mitzuschneiden schon problematischer wird. Wird da VFR verwendet? Vorstellbar wäre es, wenn es Bandbreite spart. Einstellungen hat man da leider wenig. Der Monitor läuft hier mit 60Hz. Hat das irgendeinen Einfluss auf den Screencast? Passen sich die Player daran an? Keine Serie udn kein Film hat 30fps oder ein Vielfaches davon.

    Damit wir uns nicht falsch verstehen. Die Ruckler entstehen nicht durch die Wiedergabe, sondern treten erst auf wenn ich den aufgenommenen Screencast ansehe. Es geht mir auch nicht darum das im Encoding rauszubekommen, sondern schon beim Screencast zu verhindern.

    Was muss denn genau synchron laufen, damit das eben nicht passiert?

    Ich plane ohnehin einen neuen Monitor zu kaufen, auf was müsste man achten? Ich habe auch meinen Fernseher per HDMI angeschlossen. Machen die das besser? Wäre es praktikabler den Screencast durchzuführen wenn er am TV angeschlossen ist?

    Muss ich irgendwas in den FFmpeg-Einstellungen beachten, z. B. mit -r die Input-Framerate festlegen?

    Hallo,

    ich habe vor einigen Jahren mal Screencasts von lokal gespeicherten Inhalten hergestellt, die Ergebnissen waren brauchbar, aber nicht überragend. Welche genauen Settings ich da bei FFmpeg verwendet habe, weiß ich nicht mehr. Ich möchte nun versuchen von Webinhalten einen Screencast zu erstellen. Zunächst in SD, später auch in HD. Ich setze voraus, dass der Stream/Download ruckelfrei läuft. Es geht mir mehr darum wie ich mit ffmpeg einen ruckelfreien Screencast hinbekomme, denn bei o.g. Versuchen waren die Dateien lokal gespeichert und dennoch hatte ich manchmal ruckelnde Bilder, wenn sich die Kamera langsam durch das Bild bewegte.

    Ich vermute nicht, dass das Schwächen der Hardware waren, ich denke ich hätte müssen die Framerate des Screencasts anpassen müssen. Woran? An die Framerate des Monitors, der Graka oder des Streams? Wie bekommt man die Framerate des Streams heraus?

    Hat jemand eine schöne kleine Command Line für FFmpeg die schon erfolgreich getestet wurde? Oder gibt es bessere Möglichkeiten?

    Hallo,

    ich habe schon öfter deutschen Ton unter englische Videos gelegt. Ich hab immer beide Videos in AviSynth geladen, hab einen gemeinsamen Startpunkt gesucht und dann die deutsche Version mit

    Code
    assumefps(2400, 1001, sync_audio=true)

    angepasst. Dann mit stackhorizontal() geprüft ob etwas weggeschnitten werden muss und dann mit audiodub() englisches Video und (angepassten) deutschen Ton zusammengebracht. Jetzt hatte ich ein Video wo das nicht klappte, ich musste alle 2000 bis 3000 Frames beim englischen Video 2 bis 3 Frames löschen, keine Ahnung wieso. Nachdem ich das englische Video mit

    Code
    changefps(2400, 1001)

    angepasst habe, was alles perfekt synchron. Nun stimmt ja aber die englische Tonspur nicht mehr. changefps bietet aber keine Möglichkeit den Ton entsprechend der FPS-Änderung synchron zu halten. Wie müsste ich hier vorgehen?

    hallo,

    will hier ein Video mit einer anderer Tonspur syncen. Hab das eine Szene wo ich weder den ton schneiden kann weil dann ein Bruch drin ist und auch das Video nicht, weil es dann asynchron ist. Ich will eine der Szenen um 14 frames verlängern, also etwas langsamer abspielen. Bietet avisynth so eine Funktion? Ich sollte einstellen können um wieviel frames es länger sein soll.