그래서 온라인 (예 : somewebsite.com/myVideo.mkv) 링크가있어서 서블릿을 통해 서버에 해당 동영상을 다운로드하고 싶습니다. 비디오 파일은 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)에서 특정 바이트 범위를 지정하려는 경우 비디오가 재생되지 않습니다. startByte로 넘어가려면 input.skip() 함수를 사용했지만 mkv 형식의 중요한 헤더를 건너 뛸 수 있습니다. 그것이 플레이어가 그것을 인식 할 수없는 이유입니다. 누구든지 자바에서이 작업을 수행하는 방법을 알고 있습니까?
미디어 파일이 그런 식으로 작동하지 않습니다. 블랙 박스로 보아라. 아마도 당신이 찾고있는 것은 비디오 파일을 일부 스트리밍 형식으로 변환하고 원하는 지점에서 클라이언트를 스트리밍 할 수 있도록하는 것입니다. – Olaf
당신이 말한 것은 의미가 있지만 솔직히 나는 그것으로 시작하는 방법조차 모른다. url.openStream()을 할 때 스트리밍 형식으로 변환 중입니다. – GiangP