Hardware-decodering mislukt door ongeldige parameter

Ik probeer dit aan de praat te krijgen. Ik heb een Quadro P1000-kaart, alle cuda-tests slagen, maar tijdens de uitvoering faalt het en valt terug op software. Logbestand bijgevoegd, hier is de fout die ik vind:

[mpeg2video @ 0000026adf73eb00] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed → CUDA_ERROR_INVALID_VALUE: invalid argument

Alvast bedankt.Frontline_WHRODT_2019_05_14_21_59_00.wtv-Frontline-2019-05-15T07-06-32.9029270-04-00.log.zip (106,0 KB)

Eigenlijk geeft de grafischestuurprogramma-fout een foutmelding die te maken heeft met decodering en niet met encodering. Het gebruikt nog steeds de hardware-encoder:

2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → Stream #0:0: Video: hevc (hevc_nvenc) (Main) (hev1 / 0x31766568), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1–1, 2000 kb/s, 29.97 fps, 30k tbn, 29.97 tbc
2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → Metadata:
2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → encoder : Lavc58.42.100 hevc_nvenc

Het hardware-decoderverzoek van ffmpeg wordt door de grafische kaart afgewezen, dus het mislukt. Er kunnen verschillende redenen zijn: misschien heeft het de videostream niet correct herkend om de juiste codec te gebruiken, of misschien ondersteunt het geen mpeg2-videodecodering voor die specifieke streamconfiguratie.

Mogelijk zie je weinig prestatieverbetering, aangezien je originele video mpeg2 is en mpeg2-decodering in software vrij efficiënt is. Het kost mogelijk gewoon meer tijd om alle videogegevens naar het grafische geheugen te kopiëren, het te decoderen en terug te sturen naar ffmpeg, en vervolgens terug te sturen naar de videokaart voor encodering. Meestal zien h.264 en h.265 de grootste winst bij hardware-decodering.

Als je het toch wilt proberen, kun je dit aan je profiel ffmpeg-general-regel toevoegen; het dwingt de kaart een specifieke hardware-decoder te gebruiken:

-c:v mpeg2_cuvid

Dit moet de laatste parameter op de ffmpeg-general-regel zijn

Bedankt dat je ernaar hebt gekeken, Goose. Ik laat het dan maar zo, aangezien het in werkelijkheid correct lijkt te functioneren.

Independent Lens_WHRODT_2020_03_30_21_59_00.wtv-Independent Lens-2020-03-30T23-43-56.7z.zip (142,0 KB) Goose, ik zie nog een probleem. Wanneer het programma start, gaat het als een gek met handbrake, maar het stopt met een fout en schakelt dan over naar ffmpeg, dat veel trager is.

Ik heb twee conversielogs bijgevoegd die het probleem verduidelijken. Alle hulp is welkom.eNASCAR iRacing Pro Invitational Series_FS1HD_2020_03_29_12_59_00.wtv-NASCAR-2020-03-29T16-49-48.log (2,2 MB)

Ofwel de bronvideo bevat beschadigde gegevens, of je videostuurprogramma heeft een bug en kan ermee omgaan:

2020-03-30T23:52:19 MCEBuddy.AppWrapper.Handbrake → Encoding: task 1 of 1, 16.18 % (386.94 fps, avg 353.10 fps, ETA 00h06m30s)
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [23:52:20] 1048.345459s: Film → Video
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [23:52:20] 1048.879272s: Video → Film
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [h264_nvenc @ 00000000050d4dc0] Failed unlocking input buffer!: generic error (20)
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [23:52:20] encavcodec: avcodec_send_frame failed
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [h264_nvenc @ 00000000050d4dc0] Failed unlocking input buffer!: generic error (20)
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [23:52:20] encavcodec: avcodec_send_frame failed
2020-03-30T23:52:20 MCEBuddy.AppWrapper.Handbrake → [23:52:20] encavcodec: avcodec_send_frame failed

Bedankt voor het kijken. Ik moest onlangs mijn server opnieuw opbouwen en toen ik MCE-profielen opnieuw installeerde en herbouwde, heb ik "beste audio selecteren" uitgevinkt en "multichannel audio" aangevinkt.

Ik kan het niet verklaren, maar sindsdien heb ik het probleem niet meer gehad.

Ik deel dit voor het geval iemand anders een vergelijkbaar probleem heeft.

Of ik had gewoon een corrupte driver of zoiets en toen ik de server opnieuw opbouwde, was het opgelost.

Hallo!

Ik krijg vergelijkbare foutmeldingen bij het gebruik van dit commando:

ffmpeg -re -hwaccel cuvid -hwaccel_output_format cuda -extra_hw_frames 10 -i rtmp://xxxxxxxxx -map 0 -c:v h264_nvenc -b:v 2M -maxrate 2M -qmin 34 -qmax 51 -g 60 -bf 3 -b_ref_mode middle -bufsize 1M -c:a aac -ar 44100 -ac 1 -flush_packets 0 -f mpegts “udp:xxx.xxx.xxx.xxxx:xxxx”

[h264 @ 0x5641628791c0] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed → CUDA_ERROR_INVALID_VALUE: invalid argument
[h264 @ 0x5641628791c0] Using more than 32 (37) decode surfaces might cause nvdec to fail.
[h264 @ 0x5641628791c0] Try lowering the amount of threads. Using 16 right now.
[h264 @ 0x5641628791c0] Failed setup for format cuda: hwaccel initialisation returned error.

Geef me alstublieft wat advies

Groeten!

Waarom gebruik je hwaccel voor decodering? Het zal je conversie waarschijnlijk alleen maar vertragen door bus- en geheugenoverdrachtkosten.

Hallo Goose.

Ik heb 30 livekanalen tegelijk draaien, server heeft 2 Quadro P5000 GPU’s, ik gebruik hwaccel voor decodering om de CPU’s niet te overbelasten.

Groetjes!

Je zal het waarschijnlijk vertragen en meer CPU verbruiken door decoding in te schakelen om de hierboven genoemde redenen bij het gebruik van andere softwarefuncties (zoals audio-encoderen, filters, enz.). Probeer het niet te gebruiken.