この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 17009|答える: 4

Windows上でGPUアクセラレーションされたffmpegを使ってタスクを処理する

[リンクをコピー]
2019年11月7日 21:08:29に投稿 | | | |
ffmpegダウンロード

公式ウェブサイトダウンロードページ:
ハイパーリンクのログインが見えます。
コンパイル版をダウンロードし、ページをダウンロードすることをお勧めします。
ハイパーリンクのログインが見えます。
私は一般的に最新バージョン(日付にちなんで名付けられたもの)をダウンロードすることを好みますし、もちろん安定版(バージョン番号にちなんだもの)もあります。



CUDAダウンロード

CUDAはGPUが関連する操作を行うためのドライバであり、私たちはGPUを直接制御せず、ドライバを通じて動作するアプリケーションを開発しています。
ハイパーリンクのログインが見えます。
ここでは以下の通りのバージョンを選びます。
もちろん、ダウンロードした際の設定に直接下のリンクをクリックしてもお願いします。
ハイパーリンクのログインが見えます。


ダウンロード後は必ずインストールしてください。紹介はしません。結局のところ、みんなソフトウェアを開発しているからです。

命令

クエリコマンド
ダウンロードしたffmpegがCUDAに対応しているか確認し、もし対応していなければ(私はダウンロードしました)、再度ダウンロードするか自分でコンパイルしてください。




テストコマンド

現在のディレクトリの0.mp4を00.mp4に変換してください
現在のディレクトリの0.mp4を00.mp4に変換し、出力フレームレートを15(-r 15)とビットレート500k(-b 500k)指定します。
-hwaccel cuvid:cuvidハードウェアアクセラレーションの使用を指定します
-c:v h264_cuvid: h264_cuvidを使ったビデオデコード
-c:v h264_nvenc: h264_nvenc でのビデオエンコーディング
-vf scale_npp=1280:-1:出力ビデオの幅と高さを指定します。これはソフトデコードで使われる-vfスケール=x:xとは異なります

複数のグラフィックカードコマンド

GPUトランスコーディング効率テスト
2つのIntel-E5-2630v3 CPUと2枚のNvidia Tesla M4グラフィックスカードを搭載したサーバー上で、h264ビデオトランスコーディングテストは以下のように実施されました。

平均GPUトランスコーディング時間:8秒
平均CPUトランスコーディング時間:25秒

並列トランスコーディングを行うとCPUソフト変換の効率が向上し、3つのトランスコーディングタスクが並列で32コアすべてを占有します

平均GPUトランスコーディング時間:8秒
平均CPUトランスコーディング時間:18秒

並列接続時にはGPUのトランスコーディング速度が上がらないことが明らかであり、これはGPUが同時に1つのトランスコーディング作業しか実行できないことを示しています。 では、複数のグラフィックカードをサーバーに接続した場合、ffmpegは並列トランスコーディングに複数のGPUを使うのでしょうか?
残念ながら、答えはノーです。
ffmpegはトランスコーディングタスクを異なるGPUに自動割り当てする機能はありませんが、調査の結果、トランスコーディングタスクに使われるGPUは-hwaccel_deviceパラメータで指定できることが判明しました!
トランスコーディングタスクを異なるGPUに送信します

グラフィックス0


グラフィックカード1

説明:

-hwaccel_device N:トランスコーディングタスクを実行するGPUを指定する。Nは数値です





先の:[実戦戦闘] Nginxを基にドッカーイメージを作成
次に:2000年のロゴ試作機
 地主| 2019年11月7日 21:18:35に投稿 |
//参数说明
/*
    * -i ファイル名(入力) ソースファイルディレクトリ
    * -y 新しいファイルを出力し、既存ファイルの強制上書きをするかどうか
    * -c エンコーダを指定します
    * -fs limit_size(アウトインプット)はファイルサイズの制限をバイト単位で表します。 制限を超えると、それ以上のバイトブロックは書き込まれません。 出力ファイルのサイズは要求されたファイルサイズよりやや大きいです。
    * -s ビデオ比率 4:3 320x240/640x480/800x600 16:9 1280x720、デフォルト値は 'wxh'、元のビデオサイズと同じ
    * -vframes number(output)は出力に割り当てられるビデオフレーム数を設定します。 エイリアス:-frames:v
    * -dframes 番号(出力)は出力にデータフレーム数を示します。 エイリアス:-frames:d
    * -frames[:stream_specifier] framecount(output, per-stream)はフレーム数に応じてストリームへの書き込みを停止します。
    * -bsf[:stream_specifier] bitstream_filters(出力、ストリームごと)は出力ファイルストリームの形式を指定します。
例えば、h264でエンコードされたMP4ファイルを出力します:ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29.97 Zhen レート(変更可能で、非標準の Zhen レートは音声と映像の同期をずらすため、15 または 29.97 にしか設定できません)
    *
    */
 地主| 2019年11月8日 15:07:05に投稿 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -y C:\Users\DELL\DESKTOP\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --バージョン

CUVIDはCUDAベースのビデオデコーディングライブラリで、CUVIDを用いてデコードを行います


Direct3Dデバイスの作成に失敗しました
デバイス作成に失敗:-1313558101。

ffmpegバージョンは、ハードウェアアクセラレーションを正しく実現するために同期グラフィックスカードのドライバーに対応しなければなりません。


NVIDIAのハードウェアアクセラレーションコーデックをチェックしてみてください:

.\ffmpeg.exe -コーデックス | SLS NVEC
.\ffmpeg.exe -コーデックス | SLSキュビッド

この接頭辞は以下の意味を持ちます:

接頭辞の意味
D….. = サポートされた復号
. E.... = 符号化対応
.. V... = ビデオコーデック
.. A... = オーディオコーデック
.. S... = 字幕コーデック
… 私。。 = フレーム内のみコーデック
...L. = ロス圧縮
….. S = ロスレス圧縮



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ ビデオデモ\ビン\デバッグ\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
2023年2月26日 12:11:24に投稿 |
プロンプト:著者はBANされたり削除されたりすると、コンテンツは自動的にブロックされます
2023年2月26日 12:13:35に投稿 |
プロンプト:著者はBANされたり削除されたりすると、コンテンツは自動的にブロックされます
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com