Risposte:
Non so se è ffmpegche non può trasmettere i suoi dati a stdout o ffplayche non può prendere il suo input da stdin.
Se è ffmpegche non è in grado di trasmettere i suoi dati a stdout:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(È necessario aggiungere un -argomento a in ffplaymodo che prenda il suo input da stdin.)
Se è ffplayche non può prendere il suo input da stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Per maggiori informazioni su <(command)e il >(command)costrutto, consultare la sezione Sostituzione del processo del manuale di bash.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
funzionerà; è necessario impostare un formato contenitore per l'output. Questo è normalmente impostato con ffmpeg guardando l'estensione che si dà l'output, ma qui è necessario impostarlo manualmente -f. Consiglio matroska (MKV) perché può contenere quasi tutti i video, quindi qualunque cosa tu lo stia transcodificando dovrebbe funzionare perfettamente.
Si noti che se si sta utilizzando Ubuntu 12.04, ffmpeg è stata sostituita dalla forcella libav, e si dovrebbe usare avconve avplayinvece; la sintassi è altrimenti identica. C'è una specie di ffmpeg lì, ma è paralizzato dal design.
pipe:: Invalid data found when processing inputKin Power Shell, ma funziona bene nel prompt dei comandi
ffmpeg supporta le operazioni di piping. Vedi quella sezione della documentazione qui .
Non so come funziona ffplay, ma per reindirizzare l'output di ffmpeg all'output standard, è possibile aggiungere il comando pipe alla fine del comando ffmpeg. Esempio:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay, non riesco a vedere il ffplaysupporto dello -iswitch - è forse ffmpegsolo?
pipe:1vs -? -funziona su ffmpeg 2.8.6.
sembra che i normali tubi funzionino (almeno in Windows):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
non l'ho provato con input / output più complicati però ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
è l'avvio leggermente più veloce
Unable to find a suitable output format for 'pipe:'- dovevo specificare un codec con -f.