Videoyu google'ın yeni WebM video formatına dönüştürmek için herhangi bir (prototip) C# API'sı olan var mı?Webm video dönüşümü için API
9
A
cevap
8
Hızlı bir google araması diyor ki: hayır. Ancak example encoder, P/Invoke kullanarak C# 'ya kolayca dönüştürülebilir olması gerektiği gibi görünüyor. Encoder Algorithm Interface oldukça yönetilebilir görünüyor. Ve her şey başarısız olursa her zaman C++/CLI var. Codeplex projesini kim başlatıyor? :-)
Güncelleme: Şu andan itibaren, hackish, ilkel bir çalışma prototipini olan .NET API var. Al bakalım:
#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));
}
}
};
}
}
}
Sen libvpx Windows build den vpxmtd.lib karşı bu bağlantı gerekir. Tek bir uyarıdan kurtulmadım, ama şimdiye kadar işe yarayacak gibi görünüyor. C++/CLI'm biraz paslı olsa da, kodda bazı bellek sızıntıları olabilir.
Testi programı: Çok yararlı
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());
}
}
}
}
İlgili konular
- 1. Kuvvet video/webm mime türü
- 2. webm?
- 3. facebook api #el = _ geri dönüşümü için uri
- 4. HTML'ye kapsamlı api işaretleme dönüşümü
- 5. Renk Düzeltme MP4/Webm videoları
- 6. Google Mirror API Video
- 7. Facebook API Video İzleme
- 8. WebM vs Ogg Theora
- 9. webm Android'de oynatılmıyor
- 10. REST api üzerinden özel video
- 11. Rastgele youtube video ve API
- 12. LPCTSTR dönüşümü için CString
- 13. youtube api 3.0 tek bir video için bilgi alma
- 14. Birden çok video için YouTube Android Player API INTERNAL_ERROR
- 15. Çerçeve hızı ve ffmpeg ile Framerate canlı akış webm
- 16. (Meteor + YT API v3) alınıyor video verilerinin
- 17. Instagram iOS API to Video Gönder
- 18. Video bilgilerini veritabanına API aracılığıyla ekleyin
- 19. Android youtube API kullanarak nasıl video yükleyebilirim?
- 20. API kullanarak MySpace'e görüntü/video gönderiliyor mu?
- 21. Html Video oynatıcısı ses oynatır, ancak video oynatmaz
- 22. kCVPixelFormatType_420YpCbCr8BiPlanarFullRisge frame to UIImage dönüşümü
- 23. FFMPEG neden her zaman büyük WebM dosyaları oluşturur?
- 24. -ms-dönüşümü
- 25. HTML5 Video Chrome/PC'de
- 26. Doğru Web Sitesi Video Bütün tarayıcılar için gömmek için
- 27. Video İçinde Video Konumlandırma
- 28. Curl terminalinden javascript'e nasıl dönüşümü
- 29. Tüm tarayıcılarda video destekleniyor mu?
- 30. Android Studio 1.3 png dönüşümü için SVG
. Çok teşekkürler. –
Merhaba! .lib referansını projeye nasıl eklediniz? vs2010'da bir referans eklemeyi denediğimde .lib paketleri almaz: s –
kimse evde mi? :) –