在TCP中,我從RAW攝像機接收來自IP攝像機的媒體流。據此建議,我需要將其作爲文件編寫。然後我可以用VLC等媒體播放器播放它。如何使用Java將RAW數據寫入文件?例如:nc -l 8000> capture.raw
但是,當我寫這篇文章到一個文件中,並與媒體播放器播放它從來不玩損壞。
比較原始文件後,我看到我的Java寫它在錯誤的字符。那裏的示例文件顯示不同。什麼或如何解決這樣的文件寫入的問題,這裏是如何我寫它:
byte[] buf=new byte[1024];
int bytes_read = 0;
try {
bytes_read = sock.getInputStream().read(buf, 0, buf.length);
String data = new String(buf, 0, bytes_read);
System.err.println("DATA: " + bytes_read + " bytes, data=" +data);
BufferedWriter out = new BufferedWriter(
new FileWriter("capture.ogg", true));
out.write(data);
out.close();
} catch (IOException e) {
e.printStackTrace(System.err);
}
我相信它應該是: 「out.write(BUF,0,bytes_read緩存);」,而不是 「out.write(數據,0,bytes_read緩存);」 – user1723095