¿Alguien sabe acerca de cualquier (prototipo) API C# para convertir video al nuevo formato de video WebM de Google?API para la conversión de video webm
9
A
Respuesta
8
Una búsqueda rápida en Google dice: no. Pero el example encoder parece que debería traducirse fácilmente a C# utilizando P/Invoke. El Encoder Algorithm Interface parece bastante manejable. Y siempre hay C++/CLI si todo lo demás falla. ¿Quién comienza el proyecto codeplex? :-)
Actualización: A partir de ahora, hay un hackish, rudimentario prototipo de trabajo API .NET. Aquí van:
#include "vpx_codec.h"
#define VPX_CODEC_DISABLE_COMPAT 1
#include "vpx_encoder.h"
#include "vp8cx.h"
#define vp8iface (&vpx_codec_vp8_cx_algo)
using namespace System;
namespace WebM
{
namespace VP8
{
namespace Native
{
public ref class VP8Codec
{
private:
vpx_codec_ctx_t* ctx;
VP8Codec(vpx_codec_ctx_t* ctx)
{
this->ctx = ctx;
}
public:
~VP8Codec()
{
vpx_codec_destroy(ctx);
delete ctx;
}
property String^ LastError
{
String^ get()
{
return gcnew String(vpx_codec_error(ctx));
}
}
property String^ LastErrorDetail
{
String^ get()
{
return gcnew String(vpx_codec_error_detail(ctx));
}
}
int Encode()
{
// TODO: do actual encoding
return
vpx_codec_encode(ctx, NULL, 0, 1, 0, VPX_DL_REALTIME);
}
static VP8Codec^ CreateEncoder() // TODO: add 'config' argument
{
vpx_codec_ctx_t* ctx;
vpx_codec_enc_cfg_t cfg;
if(vpx_codec_enc_config_default(vp8iface, &cfg, 0))
{
return nullptr; // TODO: throw exception
}
ctx = new vpx_codec_ctx_t;
if (vpx_codec_enc_init(ctx, vp8iface, &cfg, 0))
{
delete ctx;
return nullptr; // TODO: throw exception
}
return gcnew VP8Codec(ctx);
}
static property int Version
{
int get()
{
return vpx_codec_version();
}
}
static property String^ VersionString
{
String^ get()
{
return gcnew String(vpx_codec_version_str());
}
}
static property String^ BuildConfig
{
String^ get()
{
return gcnew String(vpx_codec_build_config());
}
}
static String^ GetErrorDescription(int errorCode)
{
return gcnew String(
vpx_codec_err_to_string((vpx_codec_err_t)errorCode));
}
static property String^ IfaceName
{
String^ get()
{
return gcnew String(vpx_codec_iface_name(vp8iface));
}
}
};
}
}
}
usted debería ser capaz de vincular esto contra vpxmtd.lib del libvpx Windows build. No pude deshacerme de una advertencia, pero hasta ahora parece funcionar. Mi C++/CLI está un poco oxidado, por lo que puede haber algunas pérdidas de memoria en el código.
Programa de prueba:
namespace WebM.VP8
{
using System;
using WebM.VP8.Native;
public class Program
{
public static void Main()
{
using (var encoder = VP8Codec.CreateEncoder())
{
Console.WriteLine(encoder.Encode());
}
}
}
}
Cuestiones relacionadas
- 1. Convertir video a WebM con GStreamer
- 2. Necesita API para la conversión de moneda
- 3. WebM vs Ogg Theora
- 4. Conversión de audio y video a NSData
- 5. MediaSource API y mp4
- 6. Amazon Video on Demand API
- 7. IPhone: Video API: transmisión de video en vivo modifique
- 8. webm/vp8 player for java
- 9. C# Llamada de video de Skype API
- 10. Problema de video HTML5
- 11. Cómo codificar series de imágenes en VP8 usando WebM VP8 Encoder API? (C/C++)
- 12. webm no se reproduce en Android
- 13. Conversión de video de MOV a Mp4 iPhone Programmatically
- 14. Conversión de video a HTML5 ogg/ogv y mpg4
- 15. ¿Existen requisitos específicos para habilitar la descarga progresiva de "inicio rápido" con webm y ogg codecs?
- 16. video HTML5 con Brightcove
- 17. HTML5 video player converter
- 18. Recomendaciones para la conversión de Flash a HTML5
- 19. ¿Publicación de imagen/video a MySpace usando API?
- 20. Obtener la miniatura de Vimeo para video usando jQuery
- 21. Xml Elemento para la conversión de cadena
- 22. C++ int para la conversión de cadenas
- 23. ¿Existen herramientas programáticas para la conversión de Perl a Python?
- 24. .NET API para Google Talk?
- 25. Recomendación para la captura de video en pantalla para demostraciones
- 26. conversión de consultas MWS la memoria de apuntes del Amazonas a la API llama
- 27. kCVPixelFormatType_420YpCbCr8BiPlanarFullRange cuadro a la conversión UIImage
- 28. Necesita ayuda para entender el uso y la colocación de metadatos de audio/video HTML 5
- 29. QTKit Capture API: ¿Cómo implementar la grabación de pantalla de video (como en Quicktime X Player)?
- 30. la conversión de series
muy útil. Muchas gracias. –
hola! ¿Cómo agregaste la referencia .lib al proyecto? cuando trato de agregar una referencia en vs2010, no toma paquetes .lib: s –
¿Alguien en casa? :) –