2008-09-04 19 views
73

pregunta originalcultivos MP3 a primeros 30 segundos

Quiero ser capaz de generar un nuevo archivo MP3 (totalmente válida) de un archivo MP3 existente para usarse como una vista previa - probar el producto antes de -comprar estilo El nuevo archivo solo debe contener los primeros n segundos de la pista.

Ahora, sé que sólo podía "cortar la corriente" en n segundo (cálculo del tamaño de la tasa de bits y la cabecera) al entregar el archivo, pero esto es un poco sucio y un PITA real en una pista VBR. Me gustaría poder generar un archivo MP3 adecuado.

¿Alguien alguna idea?

Respuestas

Tanto mp3split y ffmpeg son buenas soluciones. Elegí ffmpeg ya que comúnmente se instala en servidores Linux y también es easily available for windows. Aquí hay más buenos parámetros de línea de comandos para generar vistas previas con ffmpeg

  • -t <seconds> chuleta número después de segundos
  • -y archivo fuerza sobrescribir
  • -ab <bitrate> conjunto tasa de bits, por ejemplo, -ab 96k
  • -ar <rate Hz> establecer la velocidad de muestreo p. Ej. -ar 22050 de 22,05 kHz
  • -map_meta_data <outfile>:<infile> copia metadatos de la pista del archivo de entrada a archivo_salida

en lugar de establecer -AB y -ar, se pueden copiar los ajustes originales de la pista, como sugiere Tim Farley, con :

  • -acodec copy
+0

No me di cuenta de que podía hacer ffmpeg. Gracias. –

Respuesta

99

También recomiendo ffmpeg, pero la línea de comandos sugerida por John Boker tiene un efecto secundario involuntario: recodifica el archivo a la tasa de bits predeterminada (que es de 64 kb/s en la versión que tengo aquí al menos). Esto podría dar a sus clientes una falsa impresión de la calidad de sus archivos de sonido, y también lleva más tiempo hacerlo.

Aquí hay una línea de comandos que cortar a 30 segundos sin transcodificación:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3 

El interruptor -acodec dice ffmpeg para utilizar el códec especial "copia", que no transcodificar. Es rapidísimo.

NOTA: el comando se actualiza en base a comentario de Oben Sonne

+18

Las versiones recientes de 'ffmpeg' (al menos desde 0.10.6) interpretan las opciones de manera diferente según la posición. Las opciones relacionadas con la entrada deben aparecer antes de que aparezcan '-i ...' y las opciones de salida-salida después de '-i ...'. Esto significa 'ffmpeg -t 30 -i archivo de entrada.mp3 -acodec copy outputfile.mp3' sería * ahora * la respuesta correcta. –

+0

¿Puedo extraer 30 segundos de audio del archivo de entrada de 15 segundos, significa que si el grabador de archivos luego de 30 segundos y luego extraer 30 segundos, pero si el archivo de 15 segundos, repita y extraiga completar 30 segundos. –

+2

Si desea establecer la hora de inicio (desplazamiento), puede usar ['-ss hh: mm: ss [.xxx]'] (https://ffmpeg.org/ffmpeg.html#Main-options). Ejemplo: 'ffmpeg -t 30 -ss 00: 00: 15.500 -i inputfile.mp3 -acodec copy outputfile.mp3' cortará a * 30 segundos * a partir de * 00h 00m 15s 500ms *. –

2

No lo he usado para este propósito específico, pero apuesto a que ffmpeg puede hacerlo.

15

intento:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3 
5

Es posible que desee probar Mp3Splt.

Lo he usado antes en un servicio de C# que simplemente envolvió el proceso de win32 de mp3splt.exe. Supongo que se podría hacer algo similar en su escenario de Linux/PHP.

+2

Usado MP3Split con éxito para mp3 – Freshblood

5

Es sólo una idea: es posible que desee saltar al comienzo de la canción original. Supongamos que puede usar una pieza de 30 segundos comenzando en el , el tercer de la canción.
En algunas canciones, los primeros 30 segundos no le dicen mucho ya que es solo una parte de "configuración de la escena" - por ejemplo de Pink Floyd.

+4

+1 canción genial! – alex

+0

para rosa floyd –

42

Si desea eliminar los primeros 30 segundos (y mantener el resto) a continuación, utilizar esto:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3 
8

puede utilizar mp3cut :

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0 

está en repo ubuntu, así que: sudo apt-get install cutmp3.

1

Al igual que la nota, tuve un muy mal momento con ffmpeg, mptsplit y mp3cutter en CentOS, todos ellos informaron "Header Missing". Por lo tanto, tenía que ir con MP3 Class y algunas matemáticas para cortar por tamaño de archivo.

0

he obtenido un error mientras se hace la misma

Invalid audio stream. Exactly one MP3 audio stream is required. 
Could not write header for output file #0 (incorrect codec parameters  ?): Invalid argumentStream mapping: 

Arreglo para mí era: ffmpeg -SS 00: 02: 43.00 -t 00:00:10 -i input.mp3 -codec: una libmp3lame out.mp3

2

Este comando también funciona perfecto. Recorté mi música de 20 segundos a 40 segundos.

-y: forzar archivo de salida para sobrescribir.

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3 
Cuestiones relacionadas