Unterstützung für NVIDIA HEVC 4k 5.0

624
Facundo

Ich versuche, einen 4K-Stream (3840x2160) mit einem Pegel von weniger oder gleich 5,0 zu codieren, jedoch ohne Erfolg.

Ich verwende die neueste Version von ffmpeg, nvidia-Treiber 410.66. Alle auf nvidia / cuda angedockt: 8.0-devel-ubuntu16.04 image.

Mein Testbefehl:

ffmpeg -nostdin -loglevel trace -hwaccel cuvid -c:v hevc_cuvid -analyzeduration 10000000 -probesize 10000000 -y -i "udp://239.1.2.3:1234?pkt_size=1316\&timeout=2500000\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal=1" -map i:0x100 -filter:v:0 "scale_cuda=w=3840:h=2160" -c:v:0 hevc_nvenc -profile main -level 150 -preset llhp -zerolatency 1 -cbr 1 -rc cbr_ld_hq -b:v:0 2000k -minrate:0 1500k -maxrate:0 2400k -bufsize:0 1000k -map i:0x101 -c:a copy -f ismv /tmp/test.ismv 

Es muss weniger oder gleich sein, da die Apple-Spezifikation Folgendes besagt:

1.6. Profil, Stufe und Stufe für HEVC MÜSSEN mindestens oder gleich Main10-Profil, Stufe 5.0, High Tier sein.

Merkwürdig ist, dass, wenn ich mit geringerer Auflösung (HD) codiere, dies funktioniert, aber bei einer Auflösung von 4K erhalte ich diesen Fehler:

InitializeEncoder fehlgeschlagen: ungültiger Parameter (8) Fehler beim Initialisieren des Ausgabestroms 0: 0 - Fehler beim Öffnen des Encoders für den Ausgabestrom # 0: 0 - möglicherweise falsche Parameter wie Bitrate, Rate, Breite oder Höhe

Mein ffmpeg-Konfigurationsbefehl:

PKG_CONFIG_PATH="/usr/local/nv-codec-headers" ./configure --prefix=/usr/local/ffmpeg_build --extra-cflags='-I/usr/local/ffmpeg_build/include -I/usr/local/cuda/include/' --extra-ldflags='-L/usr/local/ffmpeg_build/lib -L/usr/local/cuda/lib64/' --bindir=/usr/local/bin --extra-libs=-ldl --enable-cuvid --enable-cuda --enable-cuda-sdk --enable-nvenc --enable-filter=scale_cuda --enable-filter=thumbnail_cuda --enable-libnpp --enable-gpl --enable-libx264 --enable-libfdk-aac --enable-nonfree --enable-version3 
1
Wie hoch ist die Bildrate des Quellvideos? szatmary vor 5 Jahren 0
Video eingeben: Video: hevc (Main 10), 1 Referenzbild ([36] [0] [0] [0] / 0x0024), yuv420p10le (tv, bt709), 3840x2160 [SAR 1: 1 DAR 16: 9], 50 fps, 50 tbr, 90 ktbn, 50 tbc Facundo vor 5 Jahren 0

1 Antwort auf die Frage

1
szatmary

HEVC Level 5.0 unterstützt ein Maximum von 267.386.880 Luma-Samples pro Sekunde. 3840 x 2160 sind 8.294.400 Samples pro Frame 8.294.400 / 267.386.880 = maximal 32 Frames pro Sekunde. (siehe hier https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding_tiers_and_levels )

Ihr Video Video: hevc (Main 10), 1 reference frame ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbcumfasst 50 Bilder pro Sekunde.

Wenn Sie die Framerate auf 25 reduzieren, funktioniert dies. Ansonsten musst du Level 5.1 erreichen