Como transmitir vídeo sobre tomadas em Java
Bem, da mesma forma que você transmitirá qualquer coisa. Comecei a pensar "não há só isto, deve ter algo mais sobre esta questão que é 'sublinhado', não consigo entender" mas parece que é só isto.
Vamos ver algumas soluções. Grave um pedaço de vídeo e envie, grave uma única BufferedImage e envie, não use soquetes mas algo que possa lidar com a transmissão em tempo real, e você pode pensar de outras formas também.
Basicamente o que você precisa fazer é escolher seu pedaço gravado (você pode gravar vídeo em pedaços começando a gravação de um, parando em um ponto, salvando-o e iniciando a gravação novamente) e enviá-lo com um ObjectOutputStream para um ServerSocket com dados de leitura ObjectInputStream.
Agora vou mostrar algum código, mas tenha em mente que estes são muito simples, e podem ser muito lentos (e podem ser facilmente melhorados)
Aqui está um exemplo de um método sendVideoPiece() do cliente:
- // More code up
- public void sendVideoPiece() {
- Socket sock = new Socket(serverHost, serverPort); // Just as usual, creating a socket to send information
- ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream()); // Creating the sender
- try {
- oos.writeObject(currentVideoFrame); // Will send the current video frame, assuming that there is a variable called 'currentVideoFrame' that stores the current recorded frame
- } catch(Exception e) { System.err.println("Error sending current frame to server!"); }
- }
- // More code below
And here the server, with the method getVideoPiece():
- // More code up
- public void getVideoPiece() throws {
- // Assuming that a server socket already exists and that the client socket is already connected to it:
- ObjectInputStream ois = new ObjectInputStream(recSocket.getInputStream());
- try {
- BufferedImage currentVideoFrame = (BufferedImage) ois.readObject();
- } catch(Exception e) { System.out.println("Error reading current frame from client!"); }
- // Broadcast frame to viewers
- }
Artigos semelhantes
- Se eu conheço Java, e como criar aplicativos Android usando Java, quais são os passos para publicar um aplicativo meu próprio?
- What is the difference between Java 1.8 and Java 1.7?
- O que eu tenho que instalar, Java 10 ou Java 8? Existe alguma diferença?
- Fazer um editor de texto em Java é um bom projeto para aprender Java?