C 라이브러리 매개 변수를 포장하는 방법 (x264 .NET 랩퍼 생성)
문제
그래서 DLL에서 우리는 x264_param_t
구조 \ 오브젝트와 x264_param_apply_profile
설정을위한 기능을 갖습니다. C에서 우리는 을 사용합니다 이러한 코드
x264_param_t param;
x264_param_default_preset(¶m, "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(¶m, "baseline");
.
나는 그런 래퍼를 만들고 싶다. 그래서 나는 libx264.dll과 Visual Studio 2010 Pro를 가지고 있습니다.
어떻게 넷 C # 래퍼를 만들 수 있습니까?
나는 p \ invoke 물건의 초보자이므로 많은 것을 얻지 못한다 ...
어떻게 성취하고 싶은 것은 X264로 작업하는 프레임 수준의 프레임입니다 ... 이제는 부품을 인코딩 할 필요가 있습니다 ... 그리고 필요한 모든 샘플 코드는 . 그래서 저는 거기에 언급 된 것에 대해서만 래퍼를 쓸 필요가 있습니다 ... 그래서 TAP Param을 설정하는 매개 변수 및 함수에서 래퍼를 만드는 방법을 묻는 방법입니다. 그리고 나는 그 래퍼를 C #에서 다시 부르는 방법을보고 싶습니다. 따라서 지원 중에 모든 코드를 제공 할 수 있다면 기꺼이 볼 수 있습니다.
해결책
이 (및 zillions 다른 코드)를 직접 시도하는 대신, 우수한 Megui ?C #에서 개발되며 C # 또는 다른 .NET 프로젝트에서 사용할 준비가 된 모든 x264를 지원합니다.래퍼가 필요 없었습니다. 그들은 이미 당신을 위해 모든 것을했습니다.
C #을 사용하여 C 라이브러리 함수를 호출하는 것은 대단히 어려워지지 않는 동안, 당신이 모든 것을 당신이 그것을 원한다면 http://pinvoke.net , 사용자에게 수많은 예제를 제공하는 방법
다른 팁
놀랍게도,이 모든 년 동안, LIBX264의 가장 단순한 .NET 래퍼조차도 구축하고 공유하지 않은 것으로 보입니다.그래서 나는 최근에 내가 "x264net"이라고 부르는 것을 지어 냈고 gitHub에 넣으십시오. https://github.com/ BP2008 / x264net