¿Cómo divido Y codifico un audio en dos partes y las fusiono con ffmpeg?


1

Disculpe la larga pregunta, no conozco una forma más fácil / corta de decirle mi punto.

Quiero usar ffmpeg para editar (desvanecimiento, etc.) Y dividir un archivo de audio y fusionarlo nuevamente. (No puedo usar -c copy porque uso filtros)

Usando mp3, la posición dividida obviamente se rompe cuando se fusiona nuevamente. Así que intenté usar un formato lineal sin formato, pero eso también produce artefactos en el punto de división.

¿Existe un códec de audio que pueda usarse para mi propósito o tiene alguna otra idea que pueda resolver mi problema? ¡Gracias por adelantado!

Como punto de partida, aquí están mis comandos ahora:

ffmpeg -t 20 -i song.mp3 -filter_complex afade=t=in:ss=0:d=2 -vn -f u16le part1.raw
ffmpeg -ss 20 -i song.mp3 -filter_complex afade=t=out:ss=60:d=2 -vn -f u16le part2.raw

^ Sé que esto se puede hacer sin dividir, pero luego canalizaré la salida, etc. en un entorno en vivo, así que necesito dividir / fusionar ...

ffmpeg -f u16le -i "concat:part1.raw|part2.raw" -vn output.mp3


Los MP3 no tienen marcas de tiempo, por lo que la búsqueda de demuxer es inexacta. Cambie a la búsqueda del decodificador, es decir, coloque ss / t después del nombre de entrada.
Gyan

¡Intentaré eso, gracias! Pero no soy demasiado optimista porque intenté convertir los mp3 a raws de antemano y eso tampoco funcionó.
Henry

Pude reproducir su problema usando los comandos de su formulario y evitarlo cambiando a la búsqueda de decodificador.
Gyan

Gracias amigo Lo intentaré ahora mismo. Otra cosa, ¿por qué no publicaste tu primer comentario como respuesta? Soy nuevo en esta plataforma.
Henry

Esto no funciona para mi. La cosa es que estoy usando una secuencia continua al final. Lo que estoy escribiendo en una tubería: Song1, Crossfade, primeros 10 segundos Song2 -> Song2 -ss 10, Crossfade, primeros 10 segundos Song3 ... - que entra en una instancia que luego codifica una transmisión de Icecast + un archivo mp3. Esa instancia arroja errores al usar mp3: "Falta el encabezado / Se encontraron datos no válidos cuando se procesa la entrada / El paquete de audio no es válido", etc. - cuando se usa sin procesar no arroja errores pero hay artefactos en cada corte. ¿Alguna idea de cómo puedo lograr esto? ¿Puedo decirle a las instancias que se fusionen con la última parte de la transmisión?
Henry
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.