Java 我想做一个服务器,可以把视频作为字节流,并保存它
我想做一个服务器,它可以采取视频作为字节流,并保存它。我得到了流和写在.mp4文件的文件,但它不播放,因为它是损坏的Java 我想做一个服务器,可以把视频作为字节流,并保存它,java,Java,我想做一个服务器,它可以采取视频作为字节流,并保存它。我得到了流和写在.mp4文件的文件,但它不播放,因为它是损坏的 int port = 3332; ServerSocket serverSocket = new ServerSocket(port); System.out.println("waiting for connection on port "+port); Socket socket = serverSocket.accept(); System.out.println("c
int port = 3332;
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("waiting for connection on port "+port);
Socket socket = serverSocket.accept();
System.out.println("connection stablished on port "+port);
String clientIPAddress=socket.getRemoteSocketAddress().toString();
System.out.println("client ip address\t"+clientIPAddress);
in = socket.getInputStream();
BufferedInputStream bstream=new BufferedInputStream(in);
DataInputStream dstream=new DataInputStream(bstream);
out = new PrintWriter(socket.getOutputStream(),true);
try{
FileOutputStream fos = new FileOutputStream("D://output/Output.mpeg");
while(isDisconnect){
String deviceId=dstream.readLine();
System.out.println(""+deviceId);
String timeStamp=dstream.readLine();
System.out.println(""+timeStamp);
while ((length = bstream.read(theServer.buf)) > 0) {
fos.write(theServer.buf, 0, length);
System.out.println("Length\t"+length+"\n");
out.println("received");
}
}
} catch(Exception ex){
System.out.println(ex);
System.exit(0);
}
尝试以下代码将流保存到文件中而不损坏,如果需要任何其他帮助或我遗漏了什么,请告诉我
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
import com.amazonaws.util.IOUtils;
public class Test1 {
public static void main(String[] args) {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
URL url = new URL("http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4");
inputStream = url.openStream();
outputStream = new FileOutputStream(new File("/Users/dev/file_example_MP4_480_1_5MG_copy.mp4"));
byte[] byteArr = IOUtils.toByteArray(inputStream);
outputStream.write(byteArr);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null) {
try {
// outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
System.out.println(“+”时间戳)代码>吹毛求疵,但“+…
是无用的。FileOutputStream(“D://output/output.mpeg”)代码>!=mp4?@skynet我试过了。mp4也是,但会发生同样的问题吗?在我之前的代码中,文件是写的,大小也是MB,但当我在VLC或其他媒体播放器中打开它时,它不会播放。你能解释一下为什么要使用fos.write(server.buf,0,length)代码>而不是fos.write(server.buf);fos.write(server.buf,0,length)在这种方法中,buf值是从0索引到长度值写入FileOutputStream中我能够读取一个文件并将其写入其他位置,但我正在努力写入以字节流形式出现的视频直播流