Transkodieren mit Nvidia Kepler Graka unter Linux mit ffmpeg... Es geht
-
-
Liegt es nu daran, das die Einheit der Bitrate K ist oder das du wieder -vbr 5 verwendest?
-
Mal am Rande:
Die GTX750TI hat ein Maxwell Chip, oder?
Meine GTX780 noch einen Kepler Chip.
Meine GTX780 macht bei 3PO's Testdatei gerade einmal ~90fpsObwohl die GTX780 mehr Gaming Leistung als die GTX750 hat, hinkt sie beim nvenc hinterher...
oder es liegt am 4K Display...?! nunja
-
Geht auch mit "M":
Codefmpeg -i test_hd.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -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
Bei "vbr" nörgelt er allerdings:
Transcodiert aber trotzdem:
Code
Alles anzeigen... Input #0, mpegts, from 'test_hd.ts': Duration: 00:02:43.23, start: 25641.453933, bitrate: 8118 kb/s Program 132 Stream #0:0[0x2ff]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc Stream #0:1[0x303](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:2[0x304](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 192 kb/s [libfdk_aac @ 0x6d3c60] Note, the VBR setting is unsupported and only works with some parameter combinations Output #0, matroska, to 'output.mkv': Metadata: encoder : Lavf56.40.101 Stream #0:0: Video: h264 (nvenc_h264) (H264 / 0x34363248), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=1-50, 4500 kb/s, 25 fps, 1k tbn, 25 tbc Metadata: encoder : Lavc56.60.100 nvenc_h264 Stream #0:1(deu): Audio: aac (libfdk_aac) ([255][0][0][0] / 0x00FF), 48000 Hz, 5.1, s16, max. 5000 kb/s Metadata: encoder : Lavc56.60.100 libfdk_aac Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (nvenc_h264)) Stream #0:1 -> #0:1 (ac3 (native) -> aac (libfdk_aac)) Press [q] to stop, [?] for help [h264 @ 0xc07a00] mmco: unref short failure Last message repeated 1 times [h264 @ 0xc07a00] number of reference frames (0+4) exceeds max (3; probably corrupt input), discarding one [mpegts @ 0x655000] PES packet size mismatchime=00:02:41.70 bitrate=4920.2kbits/s [ac3 @ 0x65af20] incomplete frame [h264 @ 0xdb47a0] error while decoding MB 14 14, bytestream -6 frame= 4055 fps= 67 q=-0.0 Lsize= 98418kB time=00:02:43.20 bitrate=4940.2kbits/s video:88874kB audio:9460kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.085430% vdr01_64 tmp #
-
Mal am Rande:
Die GTX750TI hat ein Maxwell Chip, oder?
Meine GTX780 noch einen Kepler Chip.
Meine GTX780 macht bei 3PO's Testdatei gerade einmal ~90fpsObwohl die GTX780 mehr Gaming Leistung als die GTX750 hat, hinkt sie beim nvenc hinterher...
Geil... Meine Karte rockt voll!
Maxwell vor!!!
Keine Ahnung ob Maxwell die neuere Generation ist aber Kepler ist doch die erste Generation mit der NVENC überhaupt geht. Daher müsste dein Chip ja einer älteren Generation angehören, was das erklären könnte -
[...] Mal seheh was HEVC so hergibt.
[edit]Kann meine Karte nicht :([/edit]
Geht erst ab "Maxwell GPU"
--> http://www.phoronix.com/scan.php?page=news_item&px=FFmpeg-NVENC-H265-Encode
-
-
Third Generation (Maxwell GM20x)
Introduced with the second-generation Maxwell architecture, third generation NVENC implements the video compression algorithm High Efficiency Video Coding (aka. HEVC, H.265)
-
-
Das aber ne 950er
Ich sag mal: Klar... kauf! Und berichte dann bitte was die mit HEVC so kann
Ich habe das ganze gerade in meine App implementiert. Nu kann mein Serverchen mir auch HD Streamen ohne auf Anschlag abzuhecheln bzw. HD funktioniert endlich überhaupt.
Streamdev EXT mit Hardware Encoding...Das einzige was noch besser wäre wär ein richtiges Ausgabeplugin das on the Fly transkodiert und mit dem man auch via HTTP Request umschalten kann ohne das er den Transkodier Prozess neu starten muss.
Vielleicht liest ja hier einer von den Ausgabe Plugin Profis mit und baut das mal eben kurz Ich beteilige mich dann auch mit einer hübschen Mediengalerie für den Browser.
-
Das aber ne 950er ...
Ich möchte mich ja jetzt nicht allzu weit aus dem Fenster lehnen, aber ich bin mir doch schon ziemlich sicher, dass eine GTX750 für einen HTPC mehr als ausreichend ist. -
Absolut... hinter dem Link ist aber ne 950er
Ich bin mit meiner 630er im Server auch sehr zufrieden (der served nicht nur, er befeuert auch den Beamer... daher die Karte)
-
Ach so, OK, da he ich mich wohl vertippt.
Aber seit es dem Dreimaster den Schütz rausgenommen hat, kann ich es ja nicht mehr korrigieren....
-
-
Installiert nach http://developer.download.nvid…tion-on-Ubuntu_UG_v01.pdf in einer VM des in der Signatur angegebenen Servers im Aufbau.
Code
Alles anzeigen>ffmpeg -codecs | grep nvenc ffmpeg version N-76538-gb83c849 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1) configuration: --enable-nonfree --enable-nvenc --enable-nvresize --extra-cflags=-I../cudautils --extra-ldflags=-L../cudautils --enable-gpl --enable-libx264 libavutil 55. 5.100 / 55. 5.100 libavcodec 57. 15.100 / 57. 15.100 libavformat 57. 14.100 / 57. 14.100 libavdevice 57. 0.100 / 57. 0.100 libavfilter 6. 15.100 / 6. 15.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb nven nvenc_h264 ) DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: nvenc_hevc ) >inxi -v2 System: Host: vm-u14041d Kernel: 3.13.0-83-generic x86_64 (64 bit) Console: tty 0 Distro: Ubuntu 14.04 trusty Machine: No /sys/class/dmi, using dmidecode: you must be root to run dmidecode CPU(s): 2 Single core Intel Core2 Duo CPU T7700s (-HT-SMP-) clocked at 2893.584 MHz Graphics: Card: NVIDIA GM204 [GeForce GTX 970] X.org: 1.15.1 driver: nvidia tty size: 193x27 Advanced Data: N/A out of X Network: Card: Red Hat Virtio network device driver: virtio-pci Drives: HDD Total Size: 106.3GB (11.5% used) 1: model: N/A Info: Processes: 163 Uptime: 7 min Memory: 665.8/3952.8MB Runlevel: 2 Client: Shell (bash) inxi: 1.9.17
Audio ist copy!Codetime ffmpeg -i ~/Downloads/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 copy -f matroska test_hd_nvenc_x264.mkv ... frame= 4055 fps= 97 q=-0.0 Lsize= 98560kB time=00:02:43.20 bitrate=4947.3kbits/s video:90867kB audio:7615kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.079809% real 0m42.693s user 1m3.313s sys 0m2.215s
-
Das ist ja echt mal interessant, was sich da tut!
Eine Frage nur, warum arbeitet ihr alle mit Bitraten?
Ich verwende schon seit Jahren praktisch nur noch Constant QP, es sei denn das Ergebins muss exakt auf irgend ein Medium passen. Das ist deutlich effizienter, da man nur einen Durchlauf braucht.Mich würde jetzt brennend interessieren, wie sich nvenc mit "-crf 24" (so in etwa) im Gegensatz zu x264 schlägt. Bzw. ob es überhaupt mit CRF geht.
-
Als Vergleich zu der Variante in einer VM hier "nativ" auf dem in der Signatur angegebenen Server im Aufbau.
Code>inxi -v2 System: Host: u14041d-test Kernel: 3.13.0-83-generic x86_64 (64 bit) Console: tty 2 Distro: Ubuntu 14.04 trusty Machine: Mobo: ASRock model: B75M R2.0 Bios: American Megatrends version: P1.60 date: 12/20/2013 CPU: Dual core Intel Core i5-3470T CPU (-HT-MCP-) clocked at 1600.00 MHz Graphics: Card: NVIDIA GM204 [GeForce GTX 970] X.org: 1.15.1 drivers: nvidia (unloaded: fbdev,vesa,nouveau) tty size: 179x26 Advanced Data: N/A out of X Network: Card: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169 Drives: HDD Total Size: 60.0GB (17.1% used) 1: model: ADATA_SSD_S511_6 Info: Processes: 191 Uptime: 25 min Memory: 754.9/15989.2MB Runlevel: 2 Client: Shell (bash) inxi: 1.9.17
Das Ergebnis:Codetime ffmpeg -i ~/Downloads/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 copy -f matroska test_hd_nvenc_x264.mkv ... frame= 4055 fps= 97 q=-0.0 Lsize= 98560kB time=00:02:43.20 bitrate=4947.3kbits/s video:90867kB audio:7615kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.079809% real 0m42.457s user 1m15.281s sys 0m1.177s
Ggf. dann mal ein Vergleich mit HEVC.
Eine Frage nur, warum arbeitet ihr alle mit Bitraten?
Meiner Meinung nach geht es vorrangig um
a) ob es geht bzw. warum vllt nicht (hevc)
und
b) Vergleichbarkeit herzustellen.In der oben von mir genannten Installationsanleitung von NVIDIA sind auch einige Beispiele mit verschiedenen Einstellmöglichkeiten genannt.
-
Ggf. dann mal ein Vergleich mit HEVC.
Du hast doch eine Karte die das unterstützt. Mach doch bitte mal einen Test -
Das ist ja echt mal interessant, was sich da tut!
Eine Frage nur, warum arbeitet ihr alle mit Bitraten?
...
Bzw. ob es überhaupt mit CRF geht.
ffmpeg -h encoder=nvencCode
Alles anzeigenEncoder nvenc [NVIDIA NVENC h264 encoder]: General capabilities: delay Threading capabilities: none Supported pixel formats: yuv420p nv12 yuv444p nvenc AVOptions: -preset <string> E..V.... Set the encoding preset (one of slow = hq 2pass, medium = hq, fast = hp, hq, hp, bd, ll, llhq, llhp, default) (default "medium") -profile <string> E..V.... Set the encoding profile (high, main, baseline or high444p) (default "main") -level <string> E..V.... Set the encoding level restriction (auto, 1.0, 1.0b, 1.1, 1.2, ..., 4.2, 5.0, 5.1) (default "auto") -tier <string> E..V.... Set the encoding tier (main or high) (default "main") -cbr <boolean> E..V.... Use cbr encoding mode (default false) -2pass <boolean> E..V.... Use 2pass encoding mode (default auto) -gpu <int> E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from 0 to INT_MAX) (default 0) -delay <int> E..V.... Delays frame output by the given amount of frames. (from 0 to INT_MAX) (default INT_MAX)
Leider kennt nvenc crf nicht.
-
NVENC sollte je nach Chip Generation gleich schnell sein.
Also sollte eine GTX950 so schnell sein wie eine GTX 980
Und eine GT720 wie eine GTX780Der ASIC ist der gleiche.
Kepler: "8x Realtime"
Maxwell GM107/GM108: "16x Realtime"
Maxwell GM20x: "16x Realtime + HEVC + h264 bis 4K"
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!