Ich habe G729-codierte Audiodateien. Ich muss sie programmgesteuert in WAV PCM (16 Bit 8 kHz Mono) konvertieren, im Rahmen eines Tools, das auch andere Dinge tut. Ich habe eine ausführbare Datei, die das für mich tun wird. Aber jedes Mal, wenn ich konvertiere, einen externen Prozess zu starten, ist zu ressourcenintensiv. Besonders wenn ich viele davon parallel erledigen muss. Auf der Suche nach einer .NET-Bibliothek oder Code, der es mir ermöglicht, dies in meinem Prozess aufzurufen.
Antworten
Zu viele Anzeigen?Folgen Sie diesem Link : Die VoiceAge Open G.729 Implementierung. Sie bieten auch einen g729-Decoder und -Encoder in C.
Laut Wikipedia umfasst G.729 mehrere Patente und ist lizenziert von Sipra, daher werden Sie wahrscheinlich nicht viel Glück haben, eine geeignete Bibliothek zu finden. Es sei denn, Sie entschlüsseln eine große Anzahl sehr kleiner Dateien, sollte die Kosten für das Starten eines neuen Prozesses im Vergleich zu den Kosten für die Entschlüsselung nicht so groß sein, daher würde ich sagen, nutzen Sie das ausführbare Programm, das Sie haben.
Was die Ressourcen betrifft, ja, das Starten von Prozessen erfordert im Vergleich zur Verwendung von Threads viele mehr Ressourcen. Dies sollte jedoch nicht wirklich wichtig sein, solange Sie nur so viele Prozesse starten, wie Sie Kerne in Ihrem PC haben. Das Starten von mehr Prozessen verschwendet nur Ressourcen und bringt Ihnen keine zusätzliche Parallelität.
Wikipedia sagt: "G.729 umfasst Patente mehrerer Unternehmen und ist lizenziert von Sipro (http://www.sipro.com/). In einer Reihe von Ländern kann die Verwendung von G.729 Lizenzgebühren und/oder Lizenzgebühren erfordern."
Aber ich nehme an, dass du das bereits in deiner Anwendung berücksichtigt hast.
Wenn du unbedingt im Prozess sein musst, könnte eine Lösung (nicht die beste Lösung) die Verwendung von LibAVCodec sein, die unter der LGPL steht.
Eine kostenlose Referenzimplementierung finden Sie unter: http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/
Beachten Sie die von anderen aufgeworfenen Patentfragen, die Tatsache, dass die Referenzimplementierung nur auf Intel-Prozessoren läuft und dass Sie Intel eine Gebühr zahlen müssen, um Code mit ihrer IPP-Bibliothek als Teil eines kommerziellen Produkts zu verteilen.
Wenn Sie auf Ihrem System ein ACM-Codec für G729 haben, können Sie NAudio verwenden, um es in PCM umzuwandeln. Probieren Sie es mit der NAudioDemo-Anwendung aus, die mit NAudio geliefert wird und Ihnen zeigt, welche ACM-Codecs auf Ihrem System verfügbar sind und eine Datei mit ihnen decodiert.
- See previous answers
- Weitere Antworten anzeigen