Domanda

Allora in DLL abbiamo la struttura x264_param_t \ Object e una funzione per la sua impostazione x264_param_apply_profile. in c usiamo Tale codice per impostarlo

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");
.

Voglio creare wrapper per tale .. cosa. Quindi ho libx264.dll e Visual Studio 2010 Pro.

Come posso creare .NET c # wrapper per questo?

Sono un principiante in P \ Invike roba quindi non ne ho un sacco ...

Quello che voglio raggiungere è il frame del livello del fotogramma del lavoro con x264 ... Ormai ho bisogno solo di codificare le parti ... e tutto il codice di esempio necessario per farlo in c è in Come si codifica una serie di immagini in H264 utilizzando L'API X264 C? . Quindi ho bisogno di scrivere un wrapper solo per cose menzionate lì ... quindi sto chiedendo - Come creare un wrapper sul parametro e sulla funzione che imposta Thap Param. E mi piacerebbe vedere come chiamare quel wrapper indietro da c #. Quindi, se potessi fornire qualsiasi codice a supporto, sarei felice di vederlo.

È stato utile?

Soluzione

Invece di provare questo (e gli zillions altri codici) da solo, posso suggerirti di provare il eccellente megui ?È sviluppato in c # e supporta tutto x264, pronto per essere utilizzato nel tuo progetto C # o altro .NET.Nessun involucro necessario, hanno già fatto tutto per te.

Mentre non sarà terribilmente difficile chiamare una funzione di libreria C usando C #, se desideri fare tutto te stesso, vorrei suggerire di dare un'occhiata a http://pinvoke.net , che ti dà numerosi esempi come farlo da solo.

Altri suggerimenti

Sorprendentemente, in tutti questi anni, sembra che nessuno abbia costruito e condiviso anche il wrapper .NET più semplice per libx264.Così di recente ho costruito uno che chiamo "x264net" e mettolo su github, qui: https://github.com/ BP2008 / X264Net

L'involucro è molto semplicistico in questo momento, rendendolo un buon esempio di come accedere alle librerie C di lingue .NET.Non ho usato P / invoco, perché trovo difficile lavorare.Invece, ho usato una lingua chiamata "C ++ / CLI" per creare uno strato di interoperabilità.C ++ / CLI è una lingua basata su C ++ che può accedere alle librerie native C / C ++, mentre è accessibile da un codice .NET.Quindi colpisce il divario tra il codice gestito e nativo molto simile a P / invOke fa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top