Pregunta original
Quiero poder generar un archivo MP3 nuevo (totalmente válido) a partir de un archivo MP3 existente para usarlo como vista previa, estilo de prueba antes de comprar. El nuevo archivo solo debe contener los primeros n segundos de la pista.
Ahora, sé que podría simplemente "cortar la secuencia" en n segundos (calculando a partir de la tasa de bits y el tamaño del encabezado) 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
Ambos mp3split
y ffmpeg
son buenas soluciones. Elegí ffmpeg ya que se instala comúnmente en servidores Linux y también está fácilmente disponible para Windows . Aquí hay algunos parámetros de línea de comandos más buenos para generar vistas previas con ffmpeg
-t <seconds>
cortar después de un número especificado de segundos-y
forzar la sobrescritura del archivo-ab <bitrate>
establecer la tasa de bits, por ejemplo, -ab 96k-ar <rate Hz>
establecer la frecuencia de muestreo, por ejemplo, -ar 22050 para 22,05 kHz-map_meta_data <outfile>:<infile>
copiar los metadatos de la pista de infile a outfile
en lugar de configurar -ab y -ar, puede copiar la configuración de la pista original, como sugiere Tim Farley, con:
-acodec copy
Respuestas:
También recomiendo ffmpeg, pero la línea de comando sugerida por John Boker tiene un efecto secundario involuntario: vuelve a codificar 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 comando que se dividirá en 30 segundos sin transcodificar:
El modificador -acodec le dice a ffmpeg que use el códec especial de "copia" que no transcodifica. Es rápido como un rayo.
NOTA: el comando se actualizó según el comentario de Oben Sonne
fuente
ffmpeg
versiones recientes (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-i ...
y las opciones relacionadas con la salida deben aparecer después-i ...
. Este medioffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3
sería ahora la respuesta correcta.-ss hh:mm:ss[.xxx]
. 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 .ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3
entonces está funcionando perfectamenteSi desea QUITAR los primeros 30 segundos (y conservar el resto), utilice esto:
fuente
tratar:
fuente
Este comando también funciona perfectamente. Recorté mis archivos de música de 20 a 40 segundos.
fuente
puedes usar mp3cut:
Está en ubuntu Repo, por lo que sólo:
sudo apt-get install cutmp3
.fuente
Es posible que desee probar Mp3Splt .
Lo he usado antes en un servicio C # que simplemente envolvió el proceso win32 de mp3splt.exe. Supongo que se podría hacer algo similar en su escenario Linux / PHP.
fuente
Tengo un error al hacer lo mismo
La solución para mí fue:
fuente
medipack es una aplicación de línea de comandos muy simple como envoltorio
ffmpeg
.puede lograr recortar su video usando estos comandos:
puede ver las opciones del subcomando trim como:
también puede explorar otras opciones usando
medipack -h
puede visitar https://github.com/srbcheema1/medipack y ver ejemplos de pago en README.
fuente
ffmpeg -i input -ss <start time> -to <end time> output
-t
cual se puede usar alternativamente, lo-e
que significa que suponga que debo recortar el siguiente video de 4 minutos y 36 segundos, no tengo que preocuparme de agregar esos tiempos manualmente, también he proporcionado una facilidad similar al recortar los videos, vea los ejemplos en README entenderá por qué su CLI es más fácil que el simple ffmpeg. Estoy de acuerdo en que no es tan poderoso, pero para una persona normal es una herramienta útil.ffmpeg
tiene la-to
opción que es lo que-t
probablemente hace.-vf "crop=iw*0.1:ih*0.1:0:0"