2009-07-24 22 views
5

Quiero hacer un programa que toma un archivo MP3 y lo divide en muchos archivos mp3 más pequeños basados ​​en 1-2 segundos sin sonido (silencio). ¿Cuál es la forma más fácil de hacer esto en C#?¿Cómo divido un archivo mp3 en archivos más pequeños?

+1

¿Ha intentado usar ffmpeg? –

+0

¿Esto realmente debe hacerse programáticamente? Me imagino que hay algún tipo de software existente para hacerlo. –

+0

He visto ocasionalmente el álbum que fue copiado de tal manera que todas las pistas creaban un solo archivo masivo; Supongo que Rhein tiene varios archivos configurados de esta manera y quiere poder limpiarlos en lotes, lo que facilita la organización de la biblioteca. A pesar de lo que dije a continuación, probablemente sugeriría simplemente volver a grabar los álbumes en cuestión correctamente. Usted tiene derechos legales sobre ellos, ¿verdad? – Adrien

Respuesta

1

Tener un conocimiento sólido del formato binario del archivo sería un buen lugar para comenzar. Hecho esto, sabrá cómo se ve el silencio en el archivo. Puede que tenga que definir exactamente qué es el silencio. Suponiendo que, como la mayoría del audio, comenzó desde una fuente analógica, es casi seguro que hay algo de ruido enterrado en el "silencio". ¿Cuál será su tolerancia al ruido ambiental/de fondo?

Una vez que sepa lo que está buscando, simplemente escanee el archivo, en busca de "eso".

simple ...

4

Bass library. Bass tiene todo lo que necesitas. Puede acceder, grabar y editar flujos de medios como mp3, lo que le permite muestrear el volumen en diferentes momentos. Tiene una API .Net, así que puedes usarla en C#. Desafortunadamente cuesta dinero si lo está utilizando para una aplicación comercial, pero proporcionan una licencia no comercial gratuita.

Sox es una herramienta de línea de comandos que tiene la opción de dividir un mp3 en n segundos de silencio. Siempre puedes usar el comando del sistema para llamar a sox desde C#.

Otros enlaces relacionados.

Ripping a CD to mp3 in C# - third party component or api out there?

Audio Libraries for MP3 editing

How do I merge/join mp3 files with c#

Este código muestra una manera de hacer un CD Ripper en C#. Hay API de algunos proveedores que permiten leer pistas de audio CD pero también es posible hacerlo utilizando API que permiten acceso de bajo nivel a unidades de CD como ASPI de códigos de control Adaptec o IOCTL. El último método se usa en este caso, porque no hay necesidad de instalar ningún software de terceros, es completamente cubierto por las funciones Win32 API .

http://www.codeproject.com/KB/cs/csharpripper.aspx

2

La división del flujo de MP3 será difícil de hacer con cualquier grado de precisión. Los datos MP3 comprimidos existen como fragmentos secuenciales de datos de audio compuestos de muchas muestras. La forma más fácil de realizar esto sería decodificar el flujo ya sea progresivamente o en su totalidad, realizar su manipulación y luego volver a codificarlo (que como entiendo es la mayoría de software jukebox)

Cuestiones relacionadas