Come trasmettere video in streaming su sockets in Java
Bene, allo stesso modo si trasmette qualsiasi cosa. Ho iniziato a pensare "non c'è solo questo, deve esserci qualcosa di più su questa domanda che è 'sottolineata', non riesco a capire" ma sembra che sia proprio questo.
Vediamo alcune soluzioni. Registrare un pezzo di video e inviarlo, registrare una singola BufferedImage e inviarla, non usare socket ma qualcosa che possa gestire la trasmissione in tempo reale, e si può pensare anche in altri modi.
Fondamentalmente quello che dovete fare è scegliere il vostro pezzo registrato (potete registrare video a pezzi iniziando la registrazione di uno, fermandovi a un punto, salvandolo e iniziando di nuovo la registrazione) e inviarlo con un ObjectOutputStream a un ServerSocket con un ObjectInputStream che legge dati.
Ora mostrerò un po' di codice, ma tenete presente che questi sono molto semplici, e possono essere molto lenti (e possono essere facilmente migliorati)
Ecco un esempio di un metodo sendVideoPiece() dal client:
- // 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
- }
Articoli simili
- Come risolvere l'errore, 'waiting for available sockets' in Google Chrome
- Quale API di streaming video in tempo reale è la migliore per lo sviluppo di streaming video Android (RTMP Streaming)?
- C'è un lettore video che mi permetta di trasmettere video in streaming dal mio PC a un portatile o iPhone?
- Come trasmettere video in streaming dal mio computer alla mia TV