如何编写服务器/客户端视频和音频流应用程序的代码?
问题内容:
我必须创建一个客户端/服务器系统以流式传输视频和音频。这将非常简单。喜欢YouTube风格。服务器应首先参加提供媒体列表的客户端,然后等待每个客户端的选择开始流媒体。在创建一个套接字并显示一个简单列表之前,我一直在上面;)但是我不知道我可以使用哪个类进行流式处理。该示例基本上是youtube风格。我如何开始流式传输,客户端如何暂停复制,如何?我知道如何流文本,但是视频呢?你知道任何教程页面吗?与这个简单的服务器客户端示例有很大不同吗?
import java.io.*;
import java.io.*;
import java.net.*;
public class ThreadedEchoServer {
public static void main(String[] args) {
try {
int i = 1;
ServerSocket s = new ServerSocket(8189);
while(true) {
Runnable r = new ThreadedEchoHandler(incoming, i);
Thread t = new Thread(r);
t.start();
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ThreadedEchoHandler implements Runnable {
private Socket incoming;
private int counter;
public ThreadedEchoHandler(Socket i, int c) {
incoming = i;
counter = c;
}
public void run() {
try {
try {
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream);
out.println("BYE to exit");
boolean done = false;
while (!done && in.hasNextLine()) {
String line = in.nextLine()) {
out.println("Echo: " + line);
if (line.trim().equals("BYE"))
done = true;
out.println("BYE to exit");
}
} finally {
incoming.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
希望你能澄清我的想法。亲切的问候。
问题答案:
为了流式传输并与客户对话,您需要定义一个协议:在Web上搜索RTP和RTSP。它应该使您对实现这些协议甚至创建自己的协议所需要的内容有一个很好的了解。
关于实现,请看一下red5项目:http : //red5.org/
还要看看Xuggler:http ://www.xuggle.com/xuggler/
该项目将帮助您节省很多代码行。请注意,其发展已经过时。
干杯。