Beiträge von qupfer


    • [...]
    • -acodec pcm_s16le
      legt fest, dass der Outputstream als PCM signed 16bit little endian codiert werden solll
    • -f s16le
      legt fest, dass die Header/der Container signed 16bit little endian codiert ist


    [...]
    siehe auch: http://ffmpeg.org/ffmpeg.html

    Hi, der Thread ist zwar etwas älter, aber immernoch hilfreich ;)

    Aber eine Frage hätte ich da noch. In einem ähnlichen Fall (da gings um die Pipe ffmpeg | qaac) wurde im doom9 Forum empfohlen, anstelle von 16bit für die Pipe 32bit (im speziellen pcm_f32le) zu nutzen, um Rundungsfehler zu vermeiden/verringern.
    Wäre dies in diesem Fall nicht auch (zumind. theoretisch) sinnvoll?
    Und eine weitere theoretische Frage: Spielt es Qualitätsmäßig eine Rolle, ob man signed, unsigned oder float verwendet? Also ob man pcm_s32le, pcm_u32le oder pcm_f32le? Sind ja schließlich 32bit Zahlen. (natürlich vorausgesetzt, das der Empfänger damit korrekt umgehen kann)

    Edit: und gleich noch eine Frage hinterher: Spricht irgendwas dagegen, für ffmpeg und sox als Format ebenfalls wav zu nehmen? Also wär prinzipiell folgende Kommandozeile ansich ebenfalls in Ordnung oder würde die Mist produzieren? Immerhin, es fällt Mehrkanal-ac3 hinten raus^^

    Code
    ffmpeg -loglevel panic  -i "audio_input.dts" -c:a pcm_f32le -f wav - | sox  --ignore-length -t wav - -t wav - speed 1.04271 | aften -v 2 -readtoeof 1 -b 576 - "audio_output.ac3"


    Edit 2: und weiter gehts^^
    mache ich den PAL-Speedup mittels eac3to, sagt mir dieses in meinem Fall:
    "Clipping detected, a 2nd pass will be necessary."
    Spielt das bei ffmepg | sox | aften keine Rolle oder wird das Clipping da irgendwie "on the fly" korrigiert?

    Ich wollte mal eine 7.1 Audiodatei (E-AC3) in eine AAC umwandeln. Leider nicht bedacht, dass es mit 8 Kanal-EAC3-Decodern noch recht mau aussieht :D

    Wie auch immer, mit eac3to bekomme ich ja im Zweifel auch meine 6 bzw. mit geeigneten Decoder auch 8 Kanäle als WAV-Datei raus. Was mir jetzt (theoretische) Sorgen macht, ist das Channelmapping.
    Denn das scheint ja je nach Format ein anderes zu sein.
    Müsste ich dass dann dem AAC-Encoder "von Hand" angeben oder steht die Position im WAV-Header und der Encoder ordnet selber passend?
    Und wenn ich die 7.1 Datei in ffmpeg lade und einfach "codiere", dann dürfte die Anordnung auch passen, nur das mangels 7.1 Fähigkeit dann nur 6 Kanäle übrig bleiben? Und was passiert, wenn ich ffmpeg an qaac pipe? Können da die Kanäle durcheinander geraten? Weil das habe ich schon des öfteren gemacht, aber mangels 5.1 Anlage nie auf Korrektheit geprüft *schauder*

    Also wenn mir da jemand hinweise/Tipps/Erklärungen geben könnte bzw. auf solche Verlinken könnte, wär nett. Wie gesagt, Problem aktuell eher theoretischer Natur, weil ich die 7.1 einfach 7.1 lasse und nicht anfasse^^

    Grüße
    qupfer

    Ich habe ein Quellvideo von ZDF-HD mit 50 Bildern pro Sekunde, wo jedoch jedes Frame wiederholt wird.
    Aus diesem Mateiral habe ich zwei Videos erstellt, mit den gleichen x264 Parametern
    (-tune film -preset slow -crf 21).
    Einziger unterschied, einmal habe ich mit selecteven() + assumeFPS(25,1) die doppelten Bilder rausgeschmissen.

    Was mich nun verwundert. Das 50 FPS Video ist kleiner :D
    Kann das mir jemand erklären? Dass das Entfernen der doppelten Bilder keine große Auswirkung hat, war mir schon klar, aber ich hätte trotzdem erwartet, dass das 50FPS Video ein klein wenig größer ist.

    Eigentlich kein Problem, wusste aber nicht wo es hin soll.
    Wer die aktuellen Konsolen verfolgt, wird auch auf das 50/60Hz Problem der XBox One gestoßen sein. Da diese generell 60Hz ausgibt, erfolgt eine Wandlung des 50 Hz Materials am HDMI-Eingang. Daraus folgen unschöne Ruckler, weil (soviel mir bekannt) einfach jedes fünfte Bild doppelt angezeigt wird. Soweit verständlich.

    Nur müsste da nicht auf gängigen PCs das gleiche Problem existieren, also bei 25/50 Hz Material? Zumind. ich habe meinen Bildschirm eigentlich immer auf 60 Hz gestellt bzw. neuerdings 120Hz. Konnte aber keine Ruckler feststellen. Eventuell bin ich auch nur unempfindlich, aber dann müsste ja doch der eine oder andere Hinweis zu diesem Problem zu finden sein. Also warum klappt es da scheinbar Problemlos.

    Edit: ich hatte dieses Problem wohl schonmal in meinen Kopf *

    Der Thread ist ja schon etwas älter, aber will nicht extra einen neuen aufmachen.

    Wenn ich 25p Material habe, jedes Bild verdopple und das an x264 mit -tff übergeben, müsste doch der MBAFF/PicAff Algorithmus erkennen, das die Bilder identisch sind und somit von sich aus das ganze entsprechend als "progressiv" kennzeichnen womit unter Idealbedingungen das gleiche wie bei "Fake-Interlaced" rauskommen würde oder verstehe ich das verkehrt? (Ziel soll 50i sein, wobei ich das ganze nur theoretisch meine. "Vorhaben" habe ich so eine Konvertierung nicht.)

    wenns ÖR ist, reicht vielleicht der gaaanz grober Schnitt mit mkvmerge? Also von TS zu zu MKV und dabei mit der Timecode-Split-Funktion die Werbung wegschneiden bzw. Splitten. Und dann damit weitermachen. Also je nach endgültiges Ziel das entstandene MKV-File ausprobieren oder mit TsMuxeR wieder zurück zu TS (kann der mit MKvs umgehen, ansonsten mit mkvextract vorher die einzelnen Streams rausziehen).
    Ansonsten auch mal die reine Reperatur-Funktion des TS-Doctors nutzen, falls noch nicht geschehen. Oder die Testversion vom DVR-Studio. Das Programm hat imho auch eine Analye/Repair Funktion

    Edit: und es war nicht dein erstes Verwenden des TsDoctors? Weil das Programm eine Positiv-Schnittliste nutzt (wenn man es nicht manuell geändert hat) und damit zu beginn etwas ungewohnt ist. Und wo du Sagst, der Teile den du haben willst fehlt, dann klingt das irgendwie schon ein wenig danach

    wenn Du im Jobs-Tab, 'Minimize job command lines' deaktivierst siehst Du die verwendeten Aufrufe.

    Delay: sollte Hybrid automatisch machen, kann man im Audio-Tab aber auch ändern
    Croppen: Crop/Resize-Tab die entsprechenden Einstellungen machen, falls der MPlayer-Cop View zu ungewohnt ist, kann man unter Misc die Crop-Ansicht auf Avisynth umstellen
    Resize: Crop/Resize Tab -> Resizing aktivieren und die gewünschte Einstellung machen


    Wie gesagt, unter Hybrid kein Problem. Meine neugierde war wie/welches Programm das tatsächlich ausführt. Aber der Tip mit den ausführlichen Jobs brachte mir die Antwort: Mencoder


    Zu aac: entweder der aac encoder kommt durch 1. NeroAacEnc gibt es auch für Linux oder durch faac oder durch ffmpeg/avconv. In ffmpeg/avconv wird das Vorhandensein des aac encoders aber nur unterstützt, wenn im einfachen Aufruf des Programmes eine entsprechende Konfiguraitonsinformation existiert, z.B. --lib-fdkaac. Falls die Erkennung bei dir fehlschlägt, wäre es hilfreich, wenn Du mal posten könntest was avconv bei Dir ausgibt, wenn man es einfach ohne Parameter aufruft.


    Gemäß deiner Erklärung ist klar, warum es bei mir nicht erkannt wird:

    Zitat von avconv


    henning@thinkx201 ~ $ avconv
    avconv version v9-2031-g187105f, Copyright (c) 2000-2013 the Libav developers
    built on Sep 16 2013 14:33:18 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
    Hyper fast Audio and Video encoder
    usage: avconv [options] [[infile options] -i infile]... {[outfile options] outfile}...

    Use -h to get full help or, even better, run 'man avconv'


    Kennst du spontan die ./configure Option damit das korrekt ausgegeben wird bzw. wo/wie man diese Ausgabe erreicht?
    Und jetzt bloß nicht extra wegen mir einbauen, aber wär es prinzipiell nicht eine Idee den Check mit etwas ähnlichem wie "avconv -codecs | grep libfdk_aac" durchzuführen?

    Das mit Interlaced klappt jetzt auch, qtgmc verschieb ich erstmal auf unbestimmte Zeit auch wenn das Debian-Basieren mit Linux Mint gegeben ist ;)

    Vielen herzlichen Dank für dein ausführliches Posting.

    Edit: Huuups, Sorry. Es gibt ja einen Linux-Bereich. Habe ich übersehen. Denke da werde ich erstmal fündig.

    Heho,
    bin jetzt auf mein Notebook von Windows zu Linux gewechselt und würde mir zumind. die theoretische Möglichkeit offen halten, auch dort meine Aufnahmen konvertieren zu können.
    Aktuell fühle ich mich ein bisschen wie vor einer hübschen Ziegelwand. Nett anzusehen, komme aber nicht weiter. :D

    Selbstverständlich bin ich schon über Hybrid gestolpert und ein simples "klick,klick,klick" startete auch prompt einen Job, aber ich würde schon gerne Wissen, was da im groben eigentlich geschieht^^

    Kann da jemand einen mehr oder weniger standartmäßigen Program-Workflow beschreiben, um Beispielsweise ein TS-File (mpeg2-Video mit AC3) in eine mkv-Datei mit (h.264 und aac) zu konvertieren?
    Besonders der "Beginn", wie ich das ts-file gecropt, resized und an x264 übergeben bekomme (quasi der AviSynth-Part) aber auch wie ich Audio und Video synchron halte, würde mich interessieren. Unter Windows macht mir das ja eac3to bzw. dgindex in Form einer Delay-Angabe.
    Das sind eher Fragen, die mich auch Interesse interessieren und weniger aus praktischer Notwendigkeit, denn Nutzen werden ich sehr wahrscheinlich direkt Hybrid^^

    Aber auch da haben sich mir gleich Fragen gestellt, die ich hier loswerden möchte :D
    Zum einen fehlt mir noch der AAC-Part (No aac-encoder present...). Gut. Ich hätte da ein avconv mit libfdk-aac...wie kann ich das einbinden? Oder kann man mit etwas Mühe und Wein äh wine qaac nutzen? FAAC will ich nicht :rolleyes_:

    Und da sind da noch meine Interlaced-Animes^^ für welche ich mir unter Windows zwei "praktikable" Lösungen zusammen geschustert habe. Interlaced encoden oder qtgmc. Für ersteres fehlt mir die Möglichkeit des Aktivierens der "Interlaced-Checkbox". Die ist immer ausgegraut. Ein manuelles editieren der x264-Line habe ich (bisher) auch nicht gefunden um --tff zu setzen. Und ob bzw. wie man qtgmc nutzen könnte fehlt mir auch jegliche Idee.

    Freue mich schon auf eure Antworten. Danke vielmals.

    Wer sich erinnert hantiere ich gerade mit etwas interlaced Quellmaterial herum.

    Während die "schnellen" Deinterlacer mir das Bild zu sehr versauen, kostet der zugegeben hübsche qtgmc unheimlich viel Resourcen die ich eigentlich nicht aufbringen will. Da mir der Deinterlacer beim stink normalen abspielen eigentlich auch reichte, kam mir der Gedankengang, das ganze deinterlacing zu lassen und interlaced zu encoden und das deinterlacing weiterhin dem jeweilen Abspieler zu überlassen. Frei nach dem Motto: Nicht mein Problem

    Genügt es da prinzipiell einfach ein "-tff" in die x264-CLine einzubauen oder muss ich das schon explizit "aufbereiten"? Würde das gleich auch nutzen wollen, um LWLibavVideoSource auszuprobieren.
    Also würde da ein "LWLibavVideoSource("meinVideo",repeat=true)" reichen oder fehlt da noch was?

    Und hat das mit h265 den geklappt am schluss?


    Meinst du mich? Wie eigentlich geschrieben, habe es nur im mitgelieferten DivX-Player abgespielt bekommen. Das verwenden des DivX-Decoders in einer externen Anwendung wollte bei mir nicht. Kann aber nicht ausschließen, das ich eventuell auch dazu zu blöd bin. ffdshow/LAV klappte natürlich auch nicht, wobei mir auch nicht bekannt wär, dass die x265 können. Daher wenig verwunderlich. Im besagten DivX-Player aber problemlos und auch flüssig (~60% CPU von meinen Core2Duo E-irgendwas. Der, der gefühlt damals jeder hattte^^).
    Und auch die auf divx.com bereitgestellten Testfiles können sich meiner laienhaften Einschätzung sehen lassen. Spannender weise klappte bei mir auch der Webplayer anstandslos im Firefox. Kurz: Auf meinen (Alt)-Rechner macht DivX10 genau das, was es soll.

    Also so schlimm war das bei mir nicht ;)
    Aber ich hatte noch die Vorabversion von labs.divx.com. Eventuell kamen div. Installationsprobleme auch davon, dass das Programm beim installieren nachgeladen wird und das plötzlich etwas mehr leute wollten?
    Installer lief normal und auch Virenscanner hat nicht gemeckert (Security Essential). Werbezeug halt deaktivert, hab ich aber auch schon "schlimmere" Software erlebt. Man musste imho nur ein Haken entfernen.
    Mein aktuell beim Wickel habendes Avisynth-Skript geladen und halt HEVC als "Ziel" eingestellt und auf Start geklickt. (ohne deinterlacer)
    Dafür, dass ein aktueller i5 angeblich 1080p in Echtzeit schaffen soll, kam mir es arsch lahm vor. Mit Trimm mal auf 500 Frames begrenzt und codiert. Wird zwar ausschließlich vom DivX-Player abgespielt, aber im Beezug zur Größe. Respekt, aber das gilt natürlich genrell für H.265

    Kleiner Nachtrag: Also MeGui lässt sich nicht überzeugen, ABER:
    im Moment bekomme ich das AVS-File in vdub geladen. er rödelt zwar ordentlich, ehe er was anzeigt, aber es kommt. Inkl. qtgmc.
    Keine Ahnung obs am (re)installierten VC-Runtime, dem wechsel auf FFMS, dem Neustart oder anderen Taten liegt, aber es scheint erstmal zu gehen. Nun muss ich noch schauen, wie ich as AVS in x264 bekomme, wo MeGui wegfällt und ob es dann immernoch klappt und auch schneller ist. Aber es sieht schonmal recht optimistisch aus.

    Also vielen Dank an alle!

    Kleiner Nachtrag: Also MeGui lässt sich nicht überzeugen, ABER:
    im Moment bekomme ich das AVS-File in vdub geladen. er rödelt zwar ordentlich, ehe er was anzeigt, aber es kommt. Inkl. qtgmc.
    Keine Ahnung obs am (re)installierten VC-Runtime, dem wechsel auf FFMS, dem Neustart oder anderen Taten liegt, aber es scheint erstmal zu gehen. Nun muss ich noch schauen, wie ich as AVS in x264 bekomme, wo MeGui wegfällt und ob es dann immernoch klappt und auch schneller ist. Aber es sieht schonmal recht optimistisch aus.

    Also vielen Dank an alle!

    Die drei Daten habe ich kopiert. Und selbst wenn nicht, dürfte doch "nur" QTGMC nicht funktionieren, Avisynth MT bzw. die Funktion SetMTMode jedoch? Aber sobald ich die mit reinnehme, kommt oben genannter Fehler. Auch in anderen Programmen bekomme ich das SKript nicht angezeigt, daher denke ich, dass es nicht an MeGui liegt.

    Wie im anderen Thread angedeutet, bin ich jetzt bei der Verwendung von QTGMC angekommen. Da irgendwie mein PC nur bei 50% rumdümpelte, wollte ich Avisynth mit MT Probieren, aber leider bekomme ich es nicht zum laufen.

    Prinzipielles vorgehen:
    Avisynth komplett deinstalliert und Ordner gelöscht
    Avisynth 2.6 Alpha 4 geladen und installiert
    Avisynth 2.6 MT dll von hier geladen: http://forum.doom9.org/showthread.php?t=148782 und im SysWoW64 Ordner ersetzt
    QTGMC Plugin Package for multithreading geladen und entsprechende Daten kopiert (von hier: http://avisynth.org/mediawiki/QTGMC )

    Minimal-Skript erstellt:

    Code
    # Set DAR in encoder to 93 : 68. The following line is for automatic signalling
    global MeGUI_darx = 93
    global MeGUI_dary = 68
    SetMTMode(5,4)
    LoadPlugin("C:\Users\Henning\Dropbox\MeGui\tools\dgindex\DGDecode.dll")
    DGDecode_mpeg2source("X:\One Piece\Season 1\S01E02 One Piece (Piratenjäger Lorenor Zorro).d2v", info=3)
    SetMTMode(2)
    LoadPlugin("C:\Users\Henning\Dropbox\MeGui\tools\avisynth_plugin\ColorMatrix.dll")
    ColorMatrix(hints=true, threads=0)
    qtgmc(preset="slow",EdiThreads=2)

    Aber versuche ich es in MeGui zu laden, bekomme ich folgende Meldung:
    http://s7.directupload.net/images/130907/b2z7pgjk.png
    vdub sagt mir nur, dass kein Clip geliefert wurde.

    Kommt auch, wenn ich QTGMC weglasse und nur generell SetMTMode probiere.

    Habe Win7 64bit mit einen einen Mobile i5 mit 2 Kernen und 4 Threads.

    Was habe ich vergessen, mache ich falsch, habe ich übersehen/überlesen?

    Danke und hoffentlich ebenso kompetente Antworten wie bisher auch immer. Ich komme gerade überhapt nicht weiter :D