Wie läßt sich Video + Audio in ffmpeg mittels DXVA2 verlusftfrei zusammenfügen

  • Hallo liebe Community,

    ich hoffe, dass ich hier bei euch mit meiner Frage richtig bin, da für mich ffmpeg noch rechtes Neuland darstellt, obwohl ich

    mittlerweile schon Bescheid weiß, wie man mittels entsprechender Codezeilen in diesem Programm Videos bearbeten kann.

    Es ginge mir nun um folgende Sache.

    Ich würde sehr gerne eine Video und Audiospur verlustfrei zusammenfügen, was ich auch mittels ffmpeg hinbekam.

    Ich würde dies allerdings nun gerne mittels DXVA2 erledigen und fand hierzu folgende englische Beschreibung (siehe unten).

    Obwohl ich jedoch der englischen Sprache mächtig bin, fehlt mir noch schlichtweg das nötige Verständnis, diese Beschreibung auch umzusetzen.

    Ich verstehe weder was ein dxva2ap.h header ist, noch ein MinGW.

    Ich wäre jedem dafür dankbar, der es mir auf etwas einfacherer Weise erklären könnte, wie ich DXVA2 per FFmpeg zum Laufen bekommen könnte.

    Einen herzlichen Dank im Voraus dafür.

    ------------------------------------------------------------

    DXVA2

    Direct-X Video Acceleration API, developed by Microsoft (supports Windows and XBox360).

    Several decoders are currently supported, in particular H.264, MPEG-2, VC-1 and WMV 3.

    DXVA2 hardware acceleration only works on Windows. In order to build FFmpeg with DXVA2 support, you need to install the dxva2api.h header. For MinGW this can be done by downloading the header maintained by VLC and installing it in the include path (for example in /usr/include/).

    For MinGW64, dxva2api.h is provided by default. One way to install mingw-w64 is through a pacman repository, and can be installed using one of the two following commands, depending on the architecture:

    Code
    pacman -S mingw-w64-i686-gcc
    pacman -S mingw-w64-x86_64-gcc

    To enable DXVA2, use the --enable-dxva2 ffmpeg configure switch.

    To test decoding, use the following command:

    Code
    ffmpeg -hwaccel dxva2 -threads 1 -i INPUT -f null - -benchmark

    Einmal editiert, zuletzt von dioyns (18. Dezember 2021 um 18:14)

  • bist du sicher, DXVA2 dafür geeignet ist?

    nach meinem Verständnis sollte so was nur

    eine Hardwarebeschleunigung zur Wiedergabe / Decodieren sein.

    aber "Video und Audiospur verlustfrei zusammenfügen"

    ist doch nur Daten geschupse...,

    da hilft doch am ehesten nur eine schnelle SSD.

    vielleicht solltest du versuchen den RAM mehr zu nutzen,

    ggf. mit Caches arbeiten oder so.

  • und warum kompliziert , wenn es mit Programmen wie z.B. Avidemux so einfach geht.

    Das ist klassisches Muxen.

    Einfach Audio und Video einlesen/auswählen, Verarbeitung auf Copy, Zielformat auswählen und ab dafür.

    Gruss BergH

  • Vielen Dank für eure Antwort.

    Avidemux war auch meine erste Wahl gewesen, da eben jenes auch mittels DXVA2 funktioniert, wenn man Dateien verlustfrei zusammenfügen möchte.

    Nur Problem ist hierbei, dass Avidemux nicht sämtliche meiner 4K-Filme akzeptiert, weshalb ich aus diesem Umstand heraus es mit FFmpeg versuchen

    wollte.

    Das würde vielleicht auch die erste Frage beantworten, ob dies überhaupt auch mit DXVA2 möglich wäre.

  • Ich konnte es glücklicherweise nun für mich selbst herausfinden.

    Mittels dieser Codezeile, läßt sich DXVA2 aktivieren.

    ffmpeg -hwaccel dxva2 -i 5.m2ts -c copy 5.mkv

  • "ob dies überhaupt auch mit DXVA2 möglich wäre"

    eigendlich ist DXVA2 nicht einmal nötig.

    wie wir versucht haben es dir zu vermitteln.

    hast du einen geschwindigkeitsvorteil messen können?

    bist du dir sicher das es nicht transcodiert wurde.

    (nochmal demuxxen und ein bitstream vergleich machen...)

    oder ob wirklich DXVA2 verwendet wird,

    meine version (20211025_4.4.1_gyan.dev) findet dann den decoder "copy" nicht.

Jetzt mitmachen!

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