Mientras leo silenceremove volverá a codificar el archivo.
Usualmente lo hago creando archivos manualmente como:
file 'file.mp3'
inpoint 0
outpoint 01:55:00.0
file 'file.mp3'
inpoint 02:03:50.0
y ejecutando este comando:
ffmpeg -f concat -safe 0 -i list.txt -c copy file.mp3
Tal vez pueda usar silencio silenciar para crear el mismo archivo ...
silencedetect
, pero probablemente vale la pena revisar si puedes agregar-c copy
alsilenceremove
cadena de comando Desafortunadamente no tengo estas opciones en mi copia deffmpeg
(3.4.4), así que no puedo probar si funciona.You cannot use -acodec copy to keep the original quality.
silenceremove
Como filtro, pero cuando intenté combinarlo con-c copy
tengoFiltergraph 'silenceremove=0.5:-50dB' was defined for audio output stream 0:0 but codec copy was selected.
/Filtering and streamcopy cannot be used together.
Así que creo que esa debe ser su respuesta, aunque una lista de edición puede permitir una respuesta sin tener que volver a codificar.Respuestas:
Esto se responde en el post de desbordamiento de pila usando FFMPEG con silenciar para detectar silencio de audio .
El primer comentario es que silencedetect solo detecta el silencio, no lo elimina. Debes utilizar en su lugar el filtro silenciar eliminar.
Para detectar si su versión de ffmpeg tiene este filtro ejecutado:
La salida debe verse como:
El comando para eliminar partes silenciosas puede verse como:
Donde el parámetro silenceremove se explica como eliminar:
1
)0
)-50dB
)Referencia: FFMPEG silencio eliminar filtro .
Para encontrar el valor correcto para el silencio, normalice primero el volumen de audio de entrada a
0dB
, descrito en esta respuesta .fuente
Please note, that -af silenceremove **will re-encode** your audio files
.