Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿FFmpeg concat falla incluso con -safe 0? Localiza la capa antes de añadir opciones

Conserva lista original, URL resuelta y límites de argumentos. Un control WAV separa política de nombres, análisis, base de URL y permisos.

Ilustración editorial original: separar análisis de lista, resolución y permisos de protocolo.
Ilustración editorial original: separar análisis de lista, resolución y permisos de protocolo. Watch at Ease

El -safe 0 del demultiplexor concat admite nombres rechazados por su política predeterminada. No repara una lista mal formada, ni crea archivos ausentes, ni autoriza cualquier protocolo anidado. Sigue el primer error específico en vez de cambiar repetidamente la última línea.

Crear un registro antes de modificar

Mantén intactos los medios. Guarda lista real, ejecutable y compilación exactos, directorio de trabajo y stderr completo. Registra si -i recibe un archivo normal, entrada estándar o URL del envoltorio. No diagnostiques nombres desde una transcripción reescrita o reformateada por IA.

Para una lista local de confianza, usa ffprobe -v error -f concat -safe 0 -i list.ffconcat -show_streams -of json sustituyendo la ruta. No genera medios unidos. Conserva estado de salida y stderr aunque stdout contenga JSON; un JSON vacío no demuestra éxito.

Separar política y análisis con una lista normal

Pon una entrada local conocida en una copia pequeña de la lista. Una entrada con espacios puede escribirse file 'clip one.wav'. Las comillas simples pertenecen a la lista; las dobles de la ruta en la línea de órdenes tienen otro analizador. Los apóstrofos requieren el escape documentado por concat.

En Ubuntu ffprobe 6.1.1-3ubuntu5, nuestro WAV sintético de 0,1 segundos falló con safe 1 y abrió con safe 0. Las comillas dobles en la entrada siguieron fallando. Mover la lista a un subdirectorio cambió la ruta relativa resuelta; una ruta absoluta correcta restableció la apertura. Son observaciones Linux controladas, no un diagnóstico Windows ni Unicode.

Tratar entrada estándar y protocolos como otra rama

Si abre la lista normal pero falla stdin, compara URL exacta y protocolo mencionado. En nuestra compilación, -i - utilizó fd. La lista file,pipe rechazó fd; permitir el transporte observado todavía dejó entradas relativas o absolutas sin prefijo resueltas bajo fd. Una URL absoluta explícita file: sí abrió.

No copies esa lista de permisos como remedio universal. Comprueba compilación y error originales, autoriza solo los protocolos necesarios para entradas fiables o conserva la lista normal. -safe 0 no soluciona un rechazo de protocolo. Sin flujos detectados, hacer opcional un map posterior puede ocultar el síntoma sin abrir la entrada prevista.

Conservar argumentos y verificar el resultado correcto

En Python, pasa ejecutable y cada argumento como elementos separados de la lista de subprocess.run con shell=False. Captura stdout, stderr y returncode; conserva aparte los bytes de la lista antes de decodificar o convertir saltos de línea. Las comillas de shell dentro de argumentos no reparan la gramática de concat. Windows tiene reglas adicionales documentadas para argumentos y archivos por lotes.

Repite la misma inspección tras cambiar una cosa y confirma entrada y flujos previstos. Después valida compatibilidad, pistas necesarias y salida completa por separado. Las advertencias temporales posteriores a la apertura son otra investigación; una inspección exitosa o errores silenciados no prueban una unión correcta.

Ilustración editorial original: control WAV sintético con lista normal y entrada estándar.
Ilustración editorial original: control WAV sintético con lista normal y entrada estándar. Watch at Ease