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

  • Ich hätte eigentlich gedacht, dass Du in der Lage bist, die Ausgabe von eix zu lesen und zu verstehen:


    Also wenn Du mir so kommst, dann kann ich's Dir ja sagen: das war mein Gedanke, daß Du es nicht in der Lage warst, auch noch durch Posten der Ausgabe von eix auf Deinem Rechner das belegst. Deswegen habe ich Dir helfen wollen, mit der noch expliziteren Information die beim Suchen in den ebuilds herauskommt, die klar zeigt daß das Original-Ebuild der Version 2.6.8 "nvenc" noch gar nicht kennt.


    Ich kann ja wohl nichts dafür, wenn Du die insgesamt über alle Versionen hinweg verfügbaren USE flags aus der Ausgebe von eix mit denen der konkret installierten Version durcheinander bringst. Schau einfach in Deinem eigenen Posting, wo nvenc vorkommt, in welcher Zeile:

    Code
    vdr01_64 ~ # eix media-video/ffmpeg
    [I] media-video/ffmpeg
         Available versions:  2.6.3(0/54.56.56)^d (~)2.6.4(0/54.56.56)^d 2.8.5(0/54.56.56)^d 2.8.6(0/54.56.56)^d [M](~)3.0(0/55.57.57)^d [M]**9999(0/55.57.57)^d {X aac aacplus alsa altivec amr amrenc armv5te armv6 armv6t2 armvfp bluray bs2b +bzip2 cdio celt chromaprint cpudetection dcadec debug doc +encode examples faac fdk flite fontconfig frei0r fribidi gcrypt gme gmp gnutls +gpl gsm +hardcoded-tables +iconv iec61883 ieee1394 jack jpeg2k kvazaar ladspa libass libcaca libilbc libressl librtmp libsoxr libv4l lzma mipsdspr1 mipsdspr2 mipsfpu mmal modplug mp3 neon +network nvenc openal opengl openh264 openssl opus oss pic +postproc pulseaudio quvi rubberband samba schroedinger sdl snappy speex ssh static-libs test theora +threads truetype twolame v4l vaapi vdpau vorbis vpx wavpack webp x264 x265 xcb xvid zimg +zlib zvbi ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32" CPU_FLAGS_X86="3dnow 3dnowext aes avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 xop" FFTOOLS="+aviocat +cws2fws +ffescape +ffeval +ffhash +fourcc2pixfmt +graph2dot +ismindex +pktdumper +qt-faststart +sidxindex +trasher"}
         Installed versions:  2.8.6^d(18:57:30 16.02.2016)(X aac alsa amr bluray bzip2 cpudetection encode faac fontconfig gnutls gpl hardcoded-tables iconv ieee1394 jack libcaca modplug mp3 network opengl oss pic postproc samba schroedinger sdl theora threads truetype v4l vaapi vdpau vorbis x264 xvid zlib -aacplus -altivec -amrenc -armv5te -armv6 -armv6t2 -armvfp -bs2b -cdio -celt -debug -doc -examples -fdk -flite -frei0r -fribidi -gme -gsm -iec61883 -jpeg2k -ladspa -libass -libressl -librtmp -libsoxr -libv4l -lzma -mipsdspr1 -mipsdspr2 -mipsfpu -neon -openal -openssl -opus -pulseaudio -quvi -snappy -speex -ssh -static-libs -test -twolame -vpx -wavpack -webp -x265 -xcb -zvbi ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" CPU_FLAGS_X86="avx avx2 fma3 mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 -3dnow -3dnowext -fma4 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher")
         Homepage:            http://ffmpeg.org/
         Description:         Complete solution to record, convert and stream audio and video. Includes libavcodec
  • Schade, läuft auf meiner Graka nicht:

    Zitat

    [nvenc_hevc @ 0x1999260] 1 CUDA capable devices found
    [nvenc_hevc @ 0x1999260] [ GPU #0 - < GeForce GT 610 > has Compute SM 2.1, NVENC Not Available ]
    [nvenc_hevc @ 0x1999260] No NVENC capable devices found


    Für alle die's auf Debian mit Debian-Multimedia-Repository bauen hier der Weg den ich genommen habe:


    Damit ist das Paket im Package-Manager integriert.


    Mit freundlichen Grüßen,
    z421 :)

  • Es war nicht nur softhddevice, was nicht mit ffmpeg 3.0 lief, auch z.B. mpv lief nicht.


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

  • (Ich habe es gerade mal mit einer HD Aufnahme (Der_Hobbit_-_Eine_unerwartete_Reise) und meimer GT740 (GK107) getestet.


    Das Transkcodiren mit dem Codec "nvenc_h264" (ts --> mkv), geht bei mir mit ~90 FPS.

  • Hi,


    Zitat

    aber die Qualität ist nicht so gut wie mit x264.

    Hmm, das klingt ja dann nicht so optimal.



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • ~/bin/ffmpeg -i input.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -b:v 1500K -c:a libfdk_aac -vbr 5 -f output.mkv


    Habs gerade noch mal getestet... 1,5 Minuten kommt hin

    Grüße


    Hannemann

  • nach -f fehlt aber was


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

  • stimmt.... ist aber egal

    Grüße


    Hannemann

  • Hab ich aus versehen weggemacht... eigentlich steht da matroska. man kann -f aber auch weglassen

    Grüße


    Hannemann

  • Und ich lass mal libx264 gegen nvenc im Qualitätstest antreten.


    Bei der Big Bang Folge sehe ich zumindest keinen Unterschied in der Qualität und die nvenc Datei ist gerade mal 2 MB größer. Jetzt muss noch ein HD vergleich her.

    Grüße


    Hannemann

  • Bei mir sind die libx264 Dateien größer (-crf 21), sag doch mal, welche Parameter Du dort verwendest.


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

  • nvenc: ~/bin/ffmpeg -i input.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -b:v 1500K -c:a libfdk_aac -vbr 5 -f matroska output.mkv
    libx264: ~/bin/ffmpeg -i input.ts -map 0:v -map 0:a:0 -c:v libx264 -b:v 1500K -c:a libfdk_aac -vbr 5 -f output.mkv


    Die Bitrate von 1500K bei SD. Für meinen anstehenden Vergleich in HD verwende ich 4500K. Ansonsten alles wie oben.


    Jetzt hab ich es auch gesehen. Da hab ich die Dateien verwechselt. Die nvenc Datei ist um 2 MB kleiner.

    Grüße


    Hannemann

  • Das entspräche -crf 23, muss ich mal Testen


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

  • Du kannst auch eine Konstante Bitrate einstellen. Je nach anzahl der Audio Kanäle:


    As a rule of thumb, for audible transparency, use 64kb/s for each channel (so 128kb/s for stereo, 384 kb/s for 5.1 surround sound). Set the bit rate with the -b:a option.


    https://trac.ffmpeg.org/wiki/Encode/AAC

    Grüße


    Hannemann

  • Ich habe mal ein kleines Testfile hochgeladen (~165MB)
    Es ist ein bisschen Werbung von Sky History HD.



    Getestet habe ich es mit:


    Code
    time ffmpeg -i test_hd.ts -vcodec nvenc_h264 -b:v 4500k test.mkv


    Ergebnis:


    Code
    frame= 4055 fps= 80 q=-0.0 Lsize=   90567kB time=00:02:43.24 bitrate=4545.0kbits/s
    video:85854kB audio:4571kB subtitle:0kB other streams:0kB global headers:7kB muxing overhead: 0.158050%
    
    
    real    0m54.950s
    user    0m51.800s
    sys     0m0.888s


    Wenn ich mit der CPU Transcodiere, sieht das ganze so :


    Code
    time ffmpeg -i test_hd.ts -vcodec libx264 -b:v 4500k test.mkv


    Ergebnis:


    Code
    frame= 4055 fps= 36 q=-1.0 Lsize=   96879kB time=00:02:43.08 bitrate=4866.5kbits/s
    video:92176kB audio:4571kB subtitle:0kB other streams:0kB global headers:7kB muxing overhead: 0.136811%
    
    
    real    1m51.890s
    user    13m35.524s
    sys     0m3.160s


    Die CPU braucht da schon erheblich länger, obwohl ich schon ein recht flottes System habe:


Jetzt mitmachen!

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