Biblioteca para transmitir audio desde archivos

Estoy buscando una biblioteca que me ayude a transmitir audio desde archivos en mi servidor a un cliente en un dispositivo separado. (Piense en Spotify).

  • Los archivos de audio en la fuente son muy grandes, largos y sin pérdidas.
  • El audio puede (de hecho, probablemente debería) comprimirse antes de enviarse.
  • El cliente no necesita almacenar ningún archivo permanente en el otro extremo.
  • Ser capaz de buscar dentro de la corriente es imprescindible.
  • El lado del servidor podría ser .NET C# o .NET C++. El cliente está escrito en .NET C#.

Mi plan actual es usar una transmisión RTS (en realidad, VoIP), pero me parece una solución menos que perfecta porque:

  • La transmisión en realidad no necesita ser en tiempo real ya que la fuente de audio es un archivo. El cliente se beneficiaría de poder almacenar en búfer.
  • Los controles de reproducción deberían estar fuera de banda y ser caseros.

¿Alguien tiene alguna sugerencia para una biblioteca de transmisión de audio?

Cuando dice que el audio debe comprimirse antes de enviarse, ¿importa la calidad del audio comprimido? Por ejemplo, ¿está dispuesto a aceptar un flujo de compresión con pérdida de menor calidad del archivo sin pérdida?
@MrPublic eso es correcto, la calidad no es importante. gracias por echar un vistazo a mi pregunta!

Respuestas (2)

Si aún no lo ha hecho, debería echar un vistazo a Opusfile , que es la biblioteca utilizada por el códec de audio Opus .

Admite búsqueda y compresión de audio con pérdida ; sin embargo, deberá crear un contenedor para la DLL en C#.

Este debería ser un buen punto de partida en términos de un códec de audio.

terminé usando dr wav para decodificar el archivo de audio en muestras PCM, transmitiendo esas muestras a través de un zócalo y usando waveout para reproducir esas muestras directamente en el otro extremo.

Si un SDK profesional es una opción para usted, eche un vistazo a la biblioteca multimedia LEADTOOLS. (Divulgación: soy un empleado de LEAD).

Hay un módulo .NET Media Server que puede transmitir audio, video o ambos. El SDK admite varios protocolos, pero para buscar habilidades, es posible que termine usando RTSP. La búsqueda también puede depender en gran medida del jugador del lado del cliente. Si almacena en búfer adecuadamente, es posible que pueda usar el búfer del cliente para buscar lo suficiente para sus necesidades.

El SDK tiene más de un códec de audio y, según el protocolo que elija, es posible que pueda realizar la codificación, la compresión y la transmisión en un solo proceso.

Hay una evaluación gratuita que puede descargar, y el soporte técnico es gratuito incluso durante la evaluación, por lo que puede probar y analizar sus opciones antes de comprometerse.