1

したがって、dllには、x264_param_tstructure\objectとその設定用の関数があります x264_param_apply_profile。Cでは、このようなコードを使用して設定します

x264_param_t param;
x264_param_default_preset(&param, "veryfast", "zerolatency");
param.i_threads = 1;
param.i_width = width;
param.i_height = height;
param.i_fps_num = fps;
param.i_fps_den = 1;
// Intra refres:
param.i_keyint_max = fps;
param.b_intra_refresh = 1;
//Rate control:
param.rc.i_rc_method = X264_RC_CRF;
param.rc.f_rf_constant = 25;
param.rc.f_rf_constant_max = 35;
//For streaming:
param.b_repeat_headers = 1;
param.b_annexb = 1;
x264_param_apply_profile(&param, "baseline");

そんなもののラッパーを作りたいです。だから私はlibx264.dllとビジュアルスタジオ2010プロを持っています。

どうすれば.NetC#ラッパーを作成できますか?

私はP\Invokeの初心者なので、あまり多くは得られません...

私が達成したいのは、x264でのフレームごとの作業レベルです...今ではエンコード部分だけが必要です...そしてCでそれを行うために必要なすべてのサンプルコードは、一連の画像をH264にエンコードする方法にありますx264 C APIを使用していますか?。だから私はそこで言及されているものだけのためにラッパーを書く必要があります...それで私は尋ねています-パラメータと関数でthapパラメータを設定するラッパーを作成する方法。そして、そのラッパーをc#からコールバックする方法を見てみたいと思います。ですから、サポートにコードを提供していただければ幸いです。

4

2 に答える 2

2

これ (および無数の他のコード) を自分で試す代わりに、優れた MeGUIを試すことをお勧めしますか? C# で開発されており、X264 をすべてサポートしており、C# またはその他の .NET プロジェクトですぐに使用できます。ラッパーは必要ありません。

C# を使用して C ライブラリ関数を呼び出すことはそれほど難しくありませんが、すべて自分で実行したい場合は、http://pinvoke.netを参照することをお勧めします。これを自分で行う方法の例。

于 2010-07-11T13:20:56.730 に答える
0

驚いたことに、ここ数年、libx264 用の最も単純な .NET ラッパーでさえ、誰も構築して共有していないようです。だから私は最近、「x264net」と呼ぶものを構築し、github に置きました: https://github.com/bp2008/x264net

ラッパーは現時点では非常に単純化されており、.NET 言語から C ライブラリにアクセスする方法の良い例になっています。P/Invoke は使いにくいので使用しませんでした。代わりに、「C++/CLI」という言語を使用して相互運用レイヤーを作成しました。C++/CLI は、ネイティブ C/C++ ライブラリにアクセスできる C++ ベースの言語であり、それ自体は .NET コードからアクセスできます。そのため、P/Invoke と同様に、マネージ コードとネイティブ コードの間のギャップを埋めます。

于 2016-12-06T17:51:05.277 に答える