Beiträge von Nel-son

    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
    1. v = FFVideoSource("input.mkv", threads=1)
    2. a = FFAudioSource("input.mkv")
    3. audiodub(a,v)


    wenn die Datei einen Audiostream enthält und


    Code
    1. 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
    1. v1 = FFVideoSource("input1.mkv", threads=1)
    2. a1 = FFAudioSource("input1.mkv")
    3. hd1 = AudioDub(v1,a1)
    4. v2 = FFVideoSource("input1.mkv", threads=1).BicubicResize(1920,1080)
    5. a2 = FFAudioSource("input1.mkv")
    6. sd1 = AudioDub(v2,a2).changefps(23.976)
    7. StackHorizontal(hd1,sd1)
    8. #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
    1. 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
    1. 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
    1. 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.

    Hm, es lag nicht an der Version die ich aus dem Wine-Ordner verschoben habe, auch der DL hier startet unter Windows 10 nicht. Das Fenster geht kurz auf und ist dann wieder weg. Hat das jemand unter Windows 10 am laufen?