Transkodieren mit Nvidia Kepler Graka unter Linux mit ffmpeg... Es geht

  • NVENC:

    Code
    time ~/bin/ffmpeg -i ~/Downloads/test_hd.ts -map 0:v -map 0:a:0  -c:v nvenc_h264 -b:v 4500K -c:a libfdk_aac -vbr 5 -f matroska ~/Downloads/test_hd_nvenc.mkv


    Code
    real	0m24.874s
    user	0m41.716s
    sys	0m0.664s


    X264:

    Code
    time ~/bin/ffmpeg -i ~/Downloads/test_hd.ts -map 0:v -map 0:a:0  -c:v libx264 -b:v 4500K -c:a libfdk_aac -vbr 5 -f matroska ~/Downloads/test_hd_x264.mkv


    Code
    real	1m28.146s
    user	10m12.944s
    sys	0m1.564s


    Machine:

    Code
    System:    Host: hannemann-desktop Kernel: 4.2.0-22-generic x86_64 (64 bit) Desktop: Gnome Distro: Ubuntu 14.04 trusty
    Machine:   Mobo: MSI model: Z170A GAMING PRO (MS-7984) version: 1.0 Bios: American Megatrends version: 1.40 date: 09/02/2015
    CPU:       Quad core Intel Core i7-6700K CPU (-HT-MCP-) clocked at 4000.00 MHz 
    Graphics:  Card: NVIDIA GM107 [GeForce GTX 750 Ti] 
               X.Org: 1.15.1 drivers: nvidia (unloaded: fbdev,vesa,nouveau) Resolution: 1920x1080@60.0hz, 1920x1080@60.0hz 
               GLX Renderer: GeForce GTX 750 Ti/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 361.28
    Network:   Card: Intel Ethernet Connection (2) I219-V driver: e1000e 
    Drives:    HDD Total Size: 1012.2GB (36.2% used) 1: model: Crucial_CT256MX1 
               2: model: ST9500325AS 3: model: SAMSUNG_MZHPV256 
    Info:      Processes: 300 Uptime: 2:26 Memory: 4833.6/16000.6MB Client: Shell (bash) inxi: 1.9.17

    Grüße


    Hannemann

  • Ätsch :P


    Beim Qualitätsvergleich in HD siegt ganz klar libc264... Ich such gerade eine Bitrate die annähernd gleiche Qualität liefert und kodiere den Film dann noch mal komplett. Mal sehen wie groß er dann ist.
    Die libx264 war 6.1 GB groß.

    Grüße


    Hannemann

  • Hmmm... Ich finde keine Einstellung, die die Datei kleiner als das Original macht und dennoch eine ähnlich gute Qualität liefert.
    Mal seheh was HEVC so hergibt.


    [edit]Kann meine Karte nicht :([/edit]

    Grüße


    Hannemann

  • HEVC bringt da echt was


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Das Transcodieren via nvenc lastet die GPU ganz schön aus.



    GPU bei normalem TV (HD 1080i):




    GPU während des Transcodieren via nvenc:


  • Wasn VPE? Die GPU Auslastung ist ja recht moderat und so richtig heiß wird es auch nicht.

    Grüße


    Hannemann

  • Wasn VPE?

    Video Processing Engine

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Aah Danke...


    Ich glaube jetzt habe ich eine Einstellung gefunden, die ganz OK ist.


    ~/bin/ffmpeg -i input.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -preset slow -b:v 4.5M -maxrate 5M -bufsize:v 9M -bf 2 -g 150 -i_qfactor 1.1 -b_qfactor 1.25 -qmin 1 -qmax 50 -c:a libfdk_aac -vbr 5 -f matroska output.mkv


    Die Geschwindigkeit ist fast genau so hoch wie ohne preset. Auf meinem Desktop Rechner hat er für Gladiator (2:39) 23 Minuten gebraucht. Die Datei ist im vergleich zu libx264 ca 100MB größer.


    Original: 7,2 GB
    NVenc: 5,8 GB
    x264: 5,7 GB


    In schnellen Bewegungen wie Feuer sehe ich eine Verschlechterung gegenüber dem Original, die IMO aus ein, zwei Meter Entfernung nicht mehr ins Gewicht fällt. Bei normalen Szenen kann ich eigentlich keinen Unterschied feststellen.

    Grüße


    Hannemann

  • Mich würde jetzt aber schon interessieren, weshalb bei mir "vbr" nicht geht :§$%


  • Wahrscheinlich hast du eine neuere Version und die Option ist endgültig rausgeflogen.

    Code
    [libfdk_aac @ 0x2c800a0] Note, the VBR setting is unsupported and only works with some parameter combinations

    Grüße


    Hannemann

  • Das bezieht sich auf den Videocodec. VBR in meinem Beispiel auf AAC

    Grüße


    Hannemann

  • Das Problem mit "vbr" habe ich gelöst, es hat das USEFlag "fdk" für ffmpeg gefehlt.


    Allerdings habe ich ein Problem mit dem Mapping:


  • Ich glaub nicht mit dem Mapping sondern

    Code
    [nvenc_h264 @ 0x6c8100] Preset "slow" is unknown! Supported presets: hp, hq, bd, ll, llhp, llhq, lossless, losslesshp, default

    Bei mir gibt es den Preset. Versuch mal nen anderen

    Grüße


    Hannemann

  • Daran hat es nicht gelegen:


  • Hmmm...


    Deine Kommandzeile läuft bei mir... Merkwürdig... Hast du seit vorhin neu kompiliert? Du hast doch da ein Flag geseetzt. Vielleicht war das doch nicht so richtig.

    Grüße


    Hannemann

  • Tja... keine Ahnung. Vorhin lief es ja noch. Also muss irgendwas anders sein.


    Was noch anders ist ist die Einheit der Bitrate: 4.5M
    Mach doch mal

    Code
    ffmpeg -i test_hd.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -b:v 4500K -maxrate 5000K -bufsize:v 9000K -bf 2 -g 150 -i_qfactor 1.1 -b_qfactor 1.25 -qmin 1 -qmax 50 -c:a libfdk_aac  -f matroska output.mkv


    Versuch auch mal libx264 und den audio codec weg zu lassen. Nur um das Problem einzukreisen.

    Grüße


    Hannemann

Jetzt mitmachen!

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