問題タブ [nvenc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - レイテンシを最小限に抑えるための H264_Nvenc の最適な設定は? (FFMPEG)
現在、Libavcodec を使用して、H.264 を使用してビデオ フレームをエンコードしています。このビデオ フレームはエンコード後にストリーミングしているため、レイテンシを最小限に抑えることは非常に重要です。私の現在の設定は次のとおりです。
これらの設定はうまく機能しますが、ハードウェア ベースのエンコーディングに切り替えて、CPU の負荷を軽減しようとしています。私は現在NVIDIA GPUを持っているので、次の設定を使用してみましたh264_nvenc
:
問題は、 のレイテンシが(ソフトウェアベースのバージョン)h264_nvenc
のレイテンシよりも大幅に大きいことに気付きました。GPUベースのエンコーディングはソフトウェアベースのエンコーディングよりも高速である必要がAV_CODEC_ID_H264
あるため、私の設定またはセットアップが間違っているに違いないと思います。h264_nvenc
誰かが私を正しい方向に向けることができますか? 本当にありがとう!
ffmpeg - ソフトウェアでピクセル形式 AV_PIX_FMT_CUDA を使用して AVFrame をデコードする方法は?
最近、この例 ( https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/vaapi_encode.c ) に従って、NVENC を使用して AVFrame をエンコードしました (AV_PIX_FMT_VAAPI を AV_PIX_FMT_CUDA に、h264_vaapi を h264_nvence に交換するなど)。もの)。私は今、エンコードしたパケットをデコードして AV_PIX_FMT_YUV420P に変換しようとしています:
AV_PIX_FMT_CUDAsws_ctx
はサポートされていないため、渡すことができません。私がオンラインで見つけたほとんどの例は、この libav の例に従うように言っています ( https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/hw_decode.c )。ここでの問題は、デコード コンピューターに NVIDIA GPU がないため、この例のようにハードウェア デバイスを作成できないことです。「h264_nvenc」を使用してパケットにエンコードされた AVFrame をフォーマット YUV420P の AVFrame に変換する方法について何か提案はありますか? ありがとう!
nvidia - NVENC ME のみのモード OpenEncodeSessionEx() が「無効な構造体バージョン」エラーで失敗する
ME のみのモードで NVENC を初期化しようとして、奇妙な動作に行き詰まりました。OpenEncodeSessionEx()
常に #15 で失敗する -"This indicates that an invalid struct version was used by the client."
パラメータ構造体は次のとおりです。
さまざまな C および Golang 環境から呼び出そうとしましたが、何をしてもそのエラーが発生します。NVENC サンプルのエンコーダーがクラッシュしました (segfault)。デコーダーは問題なく動作しますが、エンコーダーは問題ありません。
エラー#15 - を引き起こす正確な条件は何NV_ENC_ERR_INVALID_VERSION
ですか?
440.82 ドライバーで Cuda を 10.2 にアップグレードしましたが、うまくいきませんでした。Cuda 10.0 にダウングレードしようとしましたが、同じです。1060ti
GPUを使用しています。
誰でも私を助けてください))