所以我有一个在线视频的链接(例如 somewebsite.com/myVideo.mkv),我想通过 servlet 在服务器上下载该视频。视频文件已启用 CDN,因此基本上任何公共用户只需将链接放入浏览器即可开始播放。这是我到目前为止的代码。
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中做到这一点?