FFmpeg kann Webm-Dateien nicht konvertieren, wenn h264_nvenc erzwungen wurde

738
oktay eşgül

Ich habe mit der Umgebung gearbeitet.

==> Ubuntu 16.04.3

==> FFmpeg: 3.4.2

- Konfiguration: --prefix = / usr / local / ffmpeg_new / --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags = -I / usr / local / cuda / include --extra-ldflags = -L / usr / local / cuda / lib64 --enable-libvpx --enable-libvorbis --enable-libfreetype

==> Cuda 9.1.85

==> GPU: GeForce GTX 1080ti

Mein Ziel ist es, Videoänderungen über die GPU-Quelle zu beschleunigen, da der Datenverkehr auf meinem Medienserver sehr hoch ist.

Hier sind die Hauptschritte meines Prozesses:

1.Split Video und Audio des Anrufers.

Zeit ffmpeg -y -i 230087_caller.webm -vn -ab 256 230087_caller.wav

2.Split Video und Audio der Aufgeräumten

Zeit ffmpeg -y -i 230087_callee.webm -vn -ab 256 230087_callee.wav

3. Original-Anrufervideo des Anrufers mit aufgeräumtem Audio zum Speichern der Konversation.

Zeit ffmpeg -y -i 230087_caller.webm -i 230087_callee.wav -filter_complex '[0: a] aformat = sample_fmts = fltp: sample_rates = 44100: channel_layouts = stereo, volume = 0,5 [a1]; [1: a] aformat = sample_fmts = fltp: sample_rates = 44100: channel_layouts = stereo, Lautstärke = 0,5 [a2]; [a1] [a2] amerge, pan = stereo | c0

4.Fügen Sie die Zeitschriftdatei der Datei caller_temp hinzu, die mit dem folgenden Fehler fehlschlägt.

time ffmpeg -y -i caller_temp.webm -vf drawtext = fontfile = / usr / share / fonts / truetype / dejavu / DejaVuSans-Bold.ttf: x = 8: y = 8: fontsize = 16: fontcolor = gelb @ 1: expansion = strftime: basetime = 1518172680000000: text = '% Y-% m-% d% H-% M-% S' -Striktion -2 -shortest -c: ein libvorbis -c: v h264_nvenc final_font_test.webm

[webm @ 0x29e8540] Für WebM werden nur VP8- oder VP9-Video- und Vorbis- oder Opus-Audio- und WebVTT-Untertitel unterstützt. av_interleaved_write_frame (): Ungültiges Argument Fehler beim Schreiben des Anhängers von output_temwp.webm: Ungültiges Argument

===================================

Hier sind die Details meiner Webm-Datei:

Stream # 0: 0 (eng): Video: vp8, yuv420p, 640x480, SAR 1: 1 DAR 4: 3, 27,58 tbr, 1k tbn, 1k tbc (Standard) Metadaten: title: Video Stream # 0: 1 (eng) : Audio: opus, 48000 Hz, stereo, fltp (Standardeinstellung)

===================================

Ich habe mir die Video-Encodierungs- / Decode-Unterstützungsmatrix von nvidia angesehen. Meine GPU scheint diese Konvertierung zu unterstützen.

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

==================================

Wenn ich jedoch das Ausgabedateiformat in mp4 / avi / mpeg geändert habe, kann die GPU problemlos verwendet werden. Dennoch ist webm für uns wichtig, da die Größe der anderen Containerdatei mit Blick auf die Speichersicht riskant wird.

Ich würde mich freuen, wenn Sie uns Ihre Kommentare und Rückmeldungen mitteilen, um mit diesem Problem fortzufahren.

Danke im Voraus. Grüße

2
Sie verwenden einen H264-Encoder, den der WebM-Container nicht unterstützt. Sie benötigen einen VP8 / 9-Encoder, der nvidia-Hardware verwendet, ich sehe jedoch keinen. Gyan vor 6 Jahren 0
Vielen Dank Mulvya für Ihre Rückmeldungen. Haben Sie eine Empfehlung, welche Hardware die vp8 / vp9-Kodierung anstelle von nvidia geforce unterstützt? Oder haben Sie eine Empfehlung, mit dieser vorhandenen GPU die beste Ausgabeleistung zu erzielen, ich meine einen anderen Ausgabecontainertyp. oktay eşgül vor 6 Jahren 0
Sie können in MKV speichern. Gyan vor 6 Jahren 0
Beliebiger Kommentar für vp8 / vp9, der GPU-Hardware unterstützt. oktay eşgül vor 6 Jahren 0
Unter Linux können Sie VAAPI verwenden, um Intel GPUs für VP8 / 9 zu verwenden. Gyan vor 6 Jahren 0
Vielen Dank für Ihre Rückmeldungen und helfen Sie Mulyya, wirklich geschätzt. . oktay eşgül vor 6 Jahren 0
Hallo Mulvya, lassen Sie mich bitte wissen, wenn Sie die Erfahrung gemacht haben, dass Sie vp8 / vp9 über eine beliebige gpu kodieren? Soweit ich sehe, scheint Intel die VP8 / VP9-Codierung über vaapi zu unterstützen, wie Sie noch sagten, noch ist mir nicht klar, welche Hardware-Version ich kaufen sollte, um mit der VP8 / VP9-Webm-Codierung fortzufahren. oktay eşgül vor 6 Jahren 0

0 Antworten auf die Frage