我想用Java打開一個命名管道並將該存檔的內容(rar/zip/etc ..)提取到一個命名管道,然後用該管道的位置運行Mplayer並播放該電影。Windows上的JAVA IPC
我試圖用這個項目在Java中打開IPC CLIPC 但是,我的代碼在fifo.openWriter()中凍結;線
FIFO fifo = new FIFO("jtpc_fifo");
fifo.create();
fifo.openWriter();
我試過了,在Java中創建一個小型服務器套接字等待連接 併發送視頻文件內容作爲原始數據, 但我不知道該怎麼告訴MPlayer獲得原始數據通過網絡。
我想用一管,因爲我認爲它 沒有物理和大型文件處理的最佳解決方案,其揮發和最靈活的
這就是我現在想,使用套接字 但Java服務器套接字接受連接 上的mplayer超時失效後才
mplayer http://localhost:5555/file.raw
try{
String file = "D:\\tmp\\lie.to.me.201.the.core.of.it-sitv.mkv";
ServerSocket socket = new ServerSocket(5555);
System.out.println("UnrarTest.main() START");
Socket s = socket.accept();
System.out.println("UnrarTest.main() ACCEPT");
final InputStream sin = s.getInputStream();
new Thread(){
public void run(){
try{
while(true){
if(sin.available() > 0){
int read = sin.read();
System.out.println((char)read);
}
}
}catch(Exception ee){
ee.printStackTrace();
}
}
}.start();
final OutputStream sout = s.getOutputStream();
final FileInputStream fin = new FileInputStream(file);
new Thread(){
public void run(){
try{
while(fin.available() > 0){
int in = fin.read();
System.err.println(in);
sout.write(in);
}
}catch(Exception ee){
ee.printStackTrace();
}
}
}.start();
}catch(Exception e){
e.printStackTrace();
}
我記住了,因爲我看到了,不知道如果mplayer可以從套接字採取原始數據,他需要一個熟悉的協議,通過網絡獲取數據 – shay 2010-09-13 21:14:04
對不起,我忽略了你已經考慮過套接字。你試過類似'mplayer -demuxer rawvideo -rawvideo w = WIDTH:h = HEIGHT http:// localhost:port/file.raw'嗎? – 2010-09-14 04:53:26
這不適合我,我更新與我現在正在做的事情的問題 – shay 2010-09-14 20:25:21