Suministrando un flujo a ffmpeg

0

Sé que puedo convertir una serie de imágenes almacenadas en mi disco duro (si están numeradas correctamente) usando estos argumentos:

-f image2 -r 10 -i h:\\streamin\\%05d.jpg -crf 23  -y -r 10 -f ogg -

¿Hay alguna disposición en ffmpeg para cambiar este bit:

h:\\streamin\\%05d.jpg

¿A un flujo de imágenes almacenadas como un flujo de memoria?

es decir: stdin = 'memoria de imágenes'

Andrew Simpson
fuente

Respuestas:

3

Si sus imágenes de entrada son todas JPEG, una después de otra, pero no tiene un patrón para leer, necesita la mjpeg demuxer

ffmpeg -f mjpeg -i - -r 10 -c:v libtheora -q:v 7 -f ogg -

Esto supone que lo que sea que canalice a ffmpeg es lo que ffmpeg generaría como mjpeg. Si eso no funciona (lo siento, no puedo intentarlo en este momento), también puedes probar:

ffmpeg -f rawvideo -c:v mjpeg -i - …

Importante: ogg como formato de salida, sin más opciones, implica libtheora como codificador, que no tiene el -crf opción. libtheora utiliza -q:v con un rango de 0 a 10, donde 10 es la calidad más alta. 7 debe ser un buen valor Si no usas -q:v caerá a 200 kbit / s, lo que resultaría en una mala calidad.

slhck
fuente
Muy buena respuesta. Fuera de interés se puede especificar la salida a una página web, es decir: -f ogg myurl / acceptbinarydata.aspx ? - Gracias
Andrew Simpson
1
En teoría, sí. ffmpeg tiene el http protocolo donde se puede enviar a HTTP, pero soy totalmente honesto, no tengo idea de cómo configurar esto. Por lo general, transmitirías con el protocolo UDP en una red local, por lo que podrías usar udp://hostname:port para enviar datos UDP allí. Si aún no lo ha hecho, también puede intentar preguntar en la lista de correo de ffmpeg.
slhck
Gracias - todo funciona. Si pudiera darte 2 garrapatas verdes, lo haría!
Andrew Simpson
Gracias. Mientras estoy en un rollo, y los pls no pasan mucho tiempo en esto, ¿pero es posible recibir el flujo de ogg en el lado del servidor y extraer las imágenes de él o es necesario cerrar el flujo de ogg primero?
Andrew Simpson
1
Necesitaría un contenedor de transmisión dedicado, como flujos de transporte MPEG. Esos podrían ser analizados sobre la marcha. Los archivos Ogg están destinados a ser leídos como un archivo completo.
slhck