Pergunta

assim, em dll temos x264_param_t estrutura\objeto e uma função para a sua criação, x264_param_apply_profile.no C podemos usar tal código para configurá-lo

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

Eu quero criar wrapper para tal..coisa.então, eu tenho libx264.dll e o visual studio 2010 pro.

Como posso criar .Net C# wrapper para ele?

Eu sou um novato em P\Invocar coisas assim que eu não entendo muito disso...

o que eu quero alcançar é um fotograma de cada nível de trabalho com x264...Por agora, eu preciso apenas de codificação de peças de...E todos os exemplos de código para fazê-lo em C em Como codificar uma série de imagens em H264 usando o x264 C API? .Então eu preciso escrever um wrapper somente para material mencionado lá...Então eu estou pedindo - como criar um wrapper em Parâmetro e na Função que configura thap param.E eu gostaria de saber como chamar que wrapper de volta a partir do c#.Então, se você poderia fornecer qualquer código no suporte eu ficaria feliz em vê-lo.

Foi útil?

Solução

Em vez de tentar este (e os zilhões de outros códigos) de si mesmo, sugiro que você tente o excelente MeGUI?Ele é desenvolvido em C# e suporta todos os X264, pronto para ser usado no seu C# ou outros .LÍQUIDO do projeto.Não wrappers necessário, eles fizeram isso tudo para já.

Enquanto não vai ser terrivelmente difícil para chamar uma função da biblioteca C usando C#, se você quiser fazer tudo sozinho, eu gostaria de sugerir que você dê uma olhada no http://pinvoke.net, o que lhe dá inúmeros exemplos de como fazer isso sozinho.

Outras dicas

Surpreendentemente, em todos esses anos, parece que ninguém tem construído e compartilhado, mesmo o mais simples .NET wrapper para libx264.Então, eu recentemente construído um que eu chamo de "x264net" e colocá-lo no github aqui: https://github.com/bp2008/x264net

O invólucro é muito simplista, neste momento, tornando-o um bom exemplo de como aceder a bibliotecas C do .A NET languages.Eu não uso P/Invoke, porque acho que é difícil de trabalhar.Em vez disso, eu usei uma linguagem chamada "C++/CLI" para criar uma camada de interoperabilidade.C++/CLI é uma linguagem baseada em C++ que podem acesso nativo bibliotecas C/C++, sendo ao mesmo tempo acessível .LÍQUIDO código.Então, ele preenche a lacuna entre o código gerenciado e nativo muito parecido P/Invoke faz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top