2010-09-23 33 views
2

我想從java運行ffmpeg作爲外部進程。幾分鐘後,我想停止它。 它要求我點擊'q',它在控制檯中工作,但是當我嘗試使用java寫入'q'到標準輸入(process.getOutputStream())時,它不起作用。java Runtime.exec()programm並傳遞​​字符到getch()

我剛剛「c」,用ASCII字符集將它轉換爲字節,寫入流,刷新並關閉它。是(根據手動)「相關聯的從終端讀取字符」。

的ffmpeg也可以停止由信號,但它不能在窗口工作了。

有誰知道如何解決我的問題?

是的:我真的想運行ffmpeg作爲外部程序。我知道關於xuggle,但它不適合我,我需要裸露的ffmpeg,而我現在不想寫JNI。

謝謝!

+1

你刷新輸出流? – 2010-09-23 02:06:49

+0

你送「C」或「Q」?一個選項(可能不是必需)是調用Process.destroy() – 2010-09-23 03:37:22

+0

1)是的,我做了flush()和close() – Ilya 2010-09-23 09:16:48

回答

0

請參閱readch()從終端鍵盤讀取一個字符,而不是輸入流! 在* nix它使用ioctl,在Windows(我相信)某種控制檯API。

貌似我無法從Java停止與ffmpeg的JNI出來的:(