Das ist eigentlich mit einer anderen Frage verbunden, die ich hatte, die bereits beantwortet wurde. Diese Frage ist hier: Redirecting stdout of one process object to stdin of anotherUmleitung stdin und stdout, wo Stdin zuerst schließt
Mein Problem ist (denke ich), dass das Programm, das die Eingabe erhält, vor der Ausgabe des Programms beendet werden sollte. Hier ist das Bash-Äquivalent von dem, was ich mache: tccat -i/dev/sr0 -T 1 | ffmpeg -i - -r 1 -t 1 -s 96x72 -ss 5 /tmp/wsmanage/preview_tmp/test\%03d.jpg
Dies verwendet nur ein Programm namens tccat, um den ersten Titel einer DVD zu lesen. Das wird in ffmpeg ausgegeben, was eine Ausgabedatei mit 1 Bild pro Sekunde erzeugt, die 1 Sekunde lang im JPG-Format ist. Sobald es seinen Rahmen (oder zwei) ausgibt, existiert es. Das funktioniert gut.
Der folgende Code jedoch nicht. Ich bekomme eine Menge von "Druckzeile zu ffmpeg", während die Befehlszeilenversion in etwas mehr als einer Sekunde beendet wird. Dann hört es nach 30 oder 40 Sekunden oder so einfach auf zu drucken. FFmpeg wird nie beendet, und mein Programm wird nie fortgesetzt.
Ich mache ich das richtig?
Ah, das ist mein Problem sein kann. Ich wusste nicht, dass Streamreader/Streamwriter nicht binär sicher sind. Ich werde es versuchen, sobald ich kann und poste zurück mit den Ergebnissen! Danke für den Link auch. Ich sehe genau, was ich tun muss. Auch wenn das nicht mein einziges Problem ist, kann ich sehen, dass es definitiv etwas ist, das repariert werden muss. – Matthew
Das war es! Vielen Dank! – Matthew