Esta pregunta ya tiene una respuesta aquí:
- ¿Grep equivalente para Windows 7? 13 respuestas
Cada respuesta que encontré para obtener la duración de un video con ffmpeg contiene grep, cual cmd no tiene nativamente
Sé que hay una cosa "Grep para Windows", pero prefiero usar una función que viene con la línea de comandos.
Así que cuando lo hago ffmpeg -i input yo obtengo
Input #0, flv, from 'vid_test001.flv':
Metadata:
creationdate : Fri Sep 19 15:58:17
Duration: 00:00:12.44, start: 0.000000, bitrate: 806 kb/s
Stream #0:0: Video: flv1, yuv420p, 320x240, 1k tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: nellymoser, 22050 Hz, mono, flt
Me gustaría obtener la Duración de esto, que es "00: 00: 12.44" en este caso
command-line
ffmpeg
Houseman
fuente
fuente

Respuestas:
Ejecutar
ffmpegen el archivo de entrada, envía la salida de stderr (donde ffmpeg escribe su información de manera predeterminada) a la salida estándar. Filtrar la lista confindstrpara recuperar las líneas que comienzan con espacios seguidos deDuration:. Para cada línea encontrada, los espacios y las comas se consideran delimitadores de campo y se solicita el segundo token de la línea, es decir, el tiempo después deDuration:etiqueta. Este valor se recupera en elforparámetro reemplazable%aque se hace eco a la consola.Para utilizar desde el archivo por lotes, escapar signos de porcentaje, reemplazando
%con%%fuente
Si no se opone al uso de Powershell (viene de serie en versiones recientes de Windows), puede hacer uso del
Select-Stringmando.Aquí hay una gran publicación de otra pregunta de Superusuario: enlazar
Básicamente, puede tomar la salida del comando y canalizar los resultados a cadena de selección.
fuente