因此,我有一個在線視頻鏈接(例如somewebsite.com/myVideo.mkv),我想通過servlet將該視頻下載到服務器上。該視頻文件已啓用CDN,因此基本上任何公共用戶都可以將鏈接放入瀏覽器並開始播放。這是迄今爲止的代碼。通過servlet下載視頻文件的一部分
downloadFile(URL myURL){
InputStream input = myURL.openStream();
File video = new File ("/path-to-file/" + myURL.getFile());
FileOutputStream output = new FileOutputStream(output);
byte[] buffer = new byte[1024];
int read;
// Write full range.
while ((read = input.read(buffer)) > 0){
output.write(buffer, 0, read);
}
output.close();
input.close()
}
如果我這樣做,它會下載整個視頻文件從URL和視頻播放罰款。但是,如果我想在視頻downloadFile(URL myURL,long startByte,long endByte)上指定特定的字節範圍,則視頻不會播放。我使用函數input.skip()跳轉到startByte,但我懷疑它跳過了mkv格式的一些重要標題。這就是爲什麼玩家無法識別它。有誰知道如何在Java中做到這一點?
媒體文件不能這樣工作。只要把它們看作黑盒子。你可能正在尋找的是將你的視頻文件轉換爲流媒體格式,並允許你的客戶端從他們想要的任何點進行流式傳輸。 – Olaf
你說的是有道理的,但老實說,我甚至不知道如何開始。我想當我做了url.openStream()時,它將它轉換爲流式格式。 – GiangP