Posts by maf

    Danke für den Hinweis. Beim Erstellen dieses Pakets wird in der Tag ein Paket nv-codec-headers benutzt, das es in Debian selbst nicht gibt. Das Paket libnvidia-encode1 wird jedoch nicht benutzt.


    Ich habe allerdings gewisse Vorbehalte, deb-multimedia in die Liste meine Quellarchive aufzunehmen. Zum einen gibt es Hakeleien mit der regulären Distribution. Zum anderen würde ich ein ffmpeg-nv vorziehen, das neben dem normalen ffmpeg installiert werden kann.

    Ich glaube, zumindest im Moment ist der Treiber nicht das Problem. Dessen Installation war problemlos. Debian trennt strickt freie und nicht-freie Software. Die in Debian Bullseye enthaltene Version von ffmpeg stammt aus der Komponente main. Sie benutzt keine Bibliotheken des NVIDIA-Treibers, denn der ist in der Komponente non-free enhalten, die nach einer Installation ergänzt werden muss. Ich will versuchen, ein eigenes Paket ffmpeg-nv zu erstellen, das auch die NVIDIA-Bibliotheken benutzt.

    Das Paket libnvidia-encode1 ist zusammen mit nvidia-driver installiert worden (und übrigens auch nvidia-vdpau-driver):

    Code
    1. $ apt search nvenc
    2. ...
    3. libnvidia-encode1/stable,now 460.91.03-1 amd64 [Installiert,automatisch]
    4. NVENC Video Encoding runtime library
    5. ...

    Aber ffmpeg scheint nicht davon zu profitieren. Im Debian Wiki gibt es eine Seite Hardware Video Acceleration, auf der erwähnt wird, dass ffmpeg zu den Programmen gehört, die NVENC nutzen.


    Ich habe den Verdacht, dass ich eine Version von ffmpeg finden oder bauen muss, die NVENC auch wirklich nutzt (und z.B. von libnvidia-encode1 abhängt). Vielleicht nach dem Vorbild von ffmpeg-nvenc-debian. Dort wird ffmpeg/nv-codec-headers aus VLC benutzt. Leider erfordert die aktuelle Version von ffmpeg/nv-codec-headers Version 470.57.02 der NVIDIA-Treiber. Die Version in Debian Bullseye ist jedoch nur 460.91.03.

    Wohl nicht. Es gibt in Bullseye ein Paket nvidia-driver (mit Version 460.91.03-1) mit folgender Beschreibung

    Code
    1. This metapackage depends on the NVIDIA binary driver and libraries that provide optimized hardware acceleration of OpenGL/GLX/EGL/GLES/Vulkan applications via a direct-rendering X Server.
    2. ...

    Laut README im Paket wird meine GT 710 mit feature set D unterstützt. Dessen Beschreibung enthält eine Vielzahl von VDP_DECODER_PROFILE_*, aus denen ich allerdings nicht schlau werde.

    Das sieht bei mir ein bisschen anders aus:

    Code
    1. $ ffmpeg -hide_banner -encoders | grep nvenc
    2. $ ffmpeg -hide_banner -hwaccels
    3. Hardware acceleration methods:
    4. vdpau
    5. vaapi
    6. qsv
    7. drm
    8. opencl

    Also brauche ich wohl ein anderes ffmpeg, wenn ich meine Karte zum Enkodieren nutzen möchte.

    Ah, dann habe ich wohl doch etwas missverstanden. Mit "entweder/oder" meintest Du, dass ich -h264enc oder -hwaccel benutzen soll.


    Diesen Abschnitt in Wikipedia interpretiere ich so, dass nouveau VDPAU für meine GT 710 unterstützt. Im Artikel zu CUDA finde ich keinen entsprechenden Hinweis. Also werde ich es mit vdpau versuchen, bevor ich einen anderen Treiber installiere.


    Wie finde ich denn heraus, ob das standardmäßig in Debian Bullseye enthaltene ffmpeg Unterstützung für NVIDIA enthält?

    Konfiguration:


    -h264enc h264_nvenc

    -hwaccel cuvid|vdpau , also entweder/oder

    Danke. Darf ich noch mal nachfragen, damit ich besser verstehe, was ich da tue?


    Die Videodaten sind im MPEG2-Format. Die Hardwarebeschleunigung sollte also helfen. Ich vermute, -h264enc h264_nvenc bedeutet, dass nach H.264 transkodiert werden soll und zwar mit einem NVIDIA-basierten Encoder? Und mit -hwaccel gebe ich an, dass bei der Hardwarebeschleunigung entweder eine Programmschnittstelle auf Grundlage von CUDA (cuvid) oder VDPAU (vdpau) benutzt werden soll? Falls ich soweit richtig liege: Nach welchen Kriterien entscheide ich, ob ich cuvid oder vdpau angebe? Vielleicht spielt es da eine Rolle, dass Debian Bullseye sich entschieden hat, nouveau als Treiber für die Karte zu benutzen.

    Zunächst einmal allen, die auf meine Fragen geantwortet haben, vielen Dank und ein gutes neues Jahr!


    Ich versuche mal zusammenzufassen. Alle Empfehlungen gehen in Richtung NVIDIA (und nicht AMD). Für DVB-C, DVB-S und DVB-S2 reicht eine ältere Karte (z.B. GT 710, aber auch GT 220, GT 520, GT 610, GT 730), die H.264 unterschützt. Für DVB-T2 und UHD ist eine neuere Karte (z.B. GT 1030) erforderlich, die H.265 unterstützt. Die hat außerdem eine niedrigere Leistungsaufnahme, kann aber nicht encodieren (und kostet mehr). Soll auch H.265 encodiert werden, wäre eine (noch teurere) GT 1050 erforderlich.


    In der Abwägung zwischen Fähigkeiten, Bauform, Leistungsaufnahme, Zukunftssicherheit und Preis geht bei mir die Tendenz Richtung GT 1030. Aber viel hängt natürlich davon ab, was so in nächster Zeit bei eBay angeboten wird. Und vielleicht gibt es ja auch noch weitere Vorschläge.

    Wenn ich Wikipedia richtig lese, dann kann DVB-T2 H.265 benutzen, DVB-S2 dagegen benutzt "höchstens" H.264? Und wenn ich dich recht vestehe, dann beherrscht eine GT 710 zwar noch H.264, aber erst die GT 1030 auch H.265?


    Was beherrscht denn eine TechnoTrend S2-6400 mit dvbhddevice? H.264? H.265?