FFMpeg concat demuxer nombre de archivo inseguro

14

Estoy usando ffmpeg dentro de mi aplicación .net para fusionar (concatenar) algunos videos cortos con la misma codificación y dimensiones de ancho y alto. He creado un archivo txt como dice la documentación y este es mi txt:

concatTextDirectory es el directorio de mi archivo txt.

file 'C:\Users\mtst\Desktop\Clips\keep\a1.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a2.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a3.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a4.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a5.mp4'

Y esta es la parte del argumento ffmpeg:

ffmpeg.StartInfo.Arguments = "/c ffmpeg.exe -f concat -i " + concatTextDirectory + " -c copy " + videoOut + " -y -report";

pero no tiene resultado y debajo está el informe

ffmpeg comenzó el 25/04/2016 a las 19:02:30 Informe escrito a
"ffmpeg-20160425-190230.log" Línea de comando: ffmpeg.exe -f concat -i
"C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt "-c copy
" C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4 "-y -report ffmpeg
versión N-79546-g13406b6 Copyright (c) 2000-2016 el FFmpeg
22.100 libavcodec 57. 35.100 / 57. 35.100 libavformat 57. 34.102 / 57. 34.102 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 División de la línea de comando. Opción de lectura '-f' ... coincide con la opción
'f' (formato de fuerza) con el argumento 'concat'. Opción de lectura '-i' ...
coincide con el archivo de entrada con el argumento
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt'. Opción de lectura '-c' ...
coincide con la opción 'c' (nombre del códec) con el argumento 'copiar'. La
opción de lectura 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4' ... coincide como
archivo de salida. Opción de lectura '-y' ... coincide con la opción 'y' (sobrescribir archivos de salida) con el argumento '1'. Opción de lectura '-report' ... coincide con la opción 'report' (generar un informe) con el argumento '1'. Terminó de
dividir la línea de comandos. Analizando un grupo de opciones: global.
Aplicando la opción y (sobrescribir archivos de salida) con el argumento 1.

analizó un grupo de opciones. Analizando un grupo de opciones: archivo de entrada
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt. Aplicando la opción f (
formato de fuerza ) con argumento concat. Analizó con éxito un grupo de opciones. Abrir un archivo de entrada: C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt.
[file @ 00000000027d3ee0] Configuración de la lista blanca predeterminada 'file, crypto'
[concat @ 00000000027d3800] Nombre de archivo inseguro
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4' [AVIOContext @
0000000000957ca0] Estadísticas: 238 bytes leídos, 0 busca
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt: operación no permitida

como puedes ver al final dice:

Nombre de archivo inseguro 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'

... y Operación no permitida. Intenté agregar barras diagonales adicionales o cambiar barras diagonales inversas a barras diagonales inversas o escapar de dos puntos, agregando comillas dobles o comillas simples al principio o al final de concatTextDirectory ... ninguno de estos cambios tuvo ningún resultado.

Eftekhari
fuente

Respuestas:

26

Cualquiera corre

ffmpeg.exe -f concat -safe 0 -i
"C:\Users\mtst\Desktop\Clips\keep\keep.txt" -c copy
"C:\Users\mtst\Desktop\Clips\keep\keep.mp4

O no use rutas absolutas (completas) en keep.txt

Gyan
fuente
¿Qué no es seguro y por qué? El ejemplo en la documentación muestra rutas absolutas, así que creo que ese no es el problema.
Gustavo Rodrigues
1
ffmpeg.org/pipermail/ffmpeg-devel/2013-February/138400.html : hace que las rutas absolutas se traten como inseguras. Sin embargo, no estoy seguro de la lógica.
jamadagni
También pensé que se suponía que eran rutas absolutas basadas en documentos, pero aparentemente eso no está bien. Lo hice solo con nombres de archivo y funcionó muy bien.
Michael Tunnell
+1 para usar nombres de ruta relativos. Todos los ejemplos se muestran completos.
pkamb