2010-03-03 25 views
5

Quali codec audio devo scegliere per il mio progetto di sviluppo software C# in cui l'audio grezzo da transcodifica/trasportato/utilizzato si basa sui seguenti punti:Quale codec audio dovrei usare?

  1. Per la codifica vocale solo
  2. audio può essere stereo o mono
  3. in grado di supportare lo streaming live
  4. buon compromesso tra dimensioni del file e la qualità
  5. per essere trasportati su TCP/IP nella sua forma codificata
  6. può essere p rilassato da un lettore gratuito prontamente disponibile senza ulteriori elaborazioni

Si noti che non è necessario prendere in considerazione l'esistenza di una libreria di codec libero disponibile per eseguire la transcodifica.

risposta

5

Speex è un codec open source gratuito, progettato per la codifica vocale in soluzioni in tempo reale che richiedono una bassa latenza. È probabile che gli schemi di compressione generici come WMA o MP3 causino più ritardi e potrebbero anche non essere in grado di funzionare bene a bitrate molto bassi. http://www.speex.org/

0

È possibile utilizzare LAME per la codifica MP3 con le preimpostazioni "vocali". Consiglierei di provare quelli diversi, because of issues like this.

MP3 è ciò che KPFA.org (e ora KQED, penso) utilizzano entrambi per lo streaming live. Funziona alla grande. Non so cosa sia usato sw server.

0

Data la scelta della lingua, se si può affermare che si sta utilizzando Windows, si consiglia in realtà WMA, il formato di Windows. Le librerie saranno tutte incorporate e, tutto sommato, è un codec molto solido. Supporta tutte le tue esigenze e altro ancora.

Tuttavia, se si sta spingendo a un endpoint flash, utilizzare .fla, Flash Audio. Flash ottimizza decisamente il consumo e, sebbene non sia altrettanto facile da usare con C#, apprezzerai sicuramente la facilità di consumo dall'altra parte.

0

Se si sta mirando solo a Windows, il codec GSM è probabilmente una buona scelta per le applicazioni con larghezza di banda ridotta. Generalmente è considerato di qualità inferiore rispetto a Speex ma utilizza anche una discreta quantità di larghezza di banda inferiore.

Windows Media Player può riprodurre GSM e l'encoder è parte di Media Foundation in Vista e sopra (e presumibilmente alcune API Win32 in XP e sotto?)

2

Come lei ha ricordato C# per la piattaforma di destinazione devo aggiungere qualcosa allo accepted answer. C'è una porta del codec Speex sulla piattaforma .Net in puro C# chiamato NSpeex.

7

Un'alternativa più recente e migliore sarebbe il Opus Codec.

Dai un'occhiata allo comparison con altri codec per vedere come si comporta.

+0

Sì, Speex è ora obsoleto con l'arrivo di Opus! –