¿Cómo puedo canalizar la salida de ffmpeg a ffplay?
En este momento uso una solución alternativa en bash:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
No sé si es ffmpeg
que no puede enviar sus datos a stdout, o ffplay
si no puede tomar su entrada de stdin.
Si es ffmpeg
eso, no puede enviar sus datos a stdout:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Migth necesita agregar un -
argumento para ffplay
que tome su entrada de stdin).
Si es ffplay
así, no puede tomar su entrada de stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Para obtener más información sobre la construcción <(command)
y >(command)
, consulte la sección Sustitución de procesos del manual bash.
trabajará; necesita establecer un formato contenedor para la salida. Esto normalmente se configura con ffmpeg mirando la extensión que le da a la salida, pero aquí debe configurarlo manualmente con
-f
. Recomiendo matroska (MKV) porque puede contener casi cualquier video, por lo que sea lo que sea que esté transcodificando debería funcionar perfectamente bien.Tenga en cuenta que si está usando Ubuntu 12.04, ffmpeg ha sido reemplazado por la bifurcación libav, y debe usar
avconv
y en suavplay
lugar; La sintaxis es idéntica. Hay una especie de ffmpeg allí, pero está lisiado por diseño.fuente
pipe:: Invalid data found when processing inputK
en Power Shell, pero funciona bien en el símbolo del sistemaffmpeg admite operaciones de tuberías. Vea esa sección de la documentación aquí .
No sé cómo funciona ffplay, pero para canalizar la salida de ffmpeg a la salida estándar, puede agregar el comando de tubería al final del comando ffmpeg. Ejemplo:
fuente
man ffplay
, no puedo ver elffplay
soporte del-i
interruptor, ¿es quizásffmpeg
solo?pipe:1
vs-
?-
funciona en ffmpeg 2.8.6.parece que las tuberías normales funcionan (al menos en ventanas):
aunque no lo he probado con entradas / salidas más complicadas ...
es un inicio un poco más rápido
fuente
Unable to find a suitable output format for 'pipe:'
, necesitaba especificar un códec con-f
.