我想用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