랩톱에서 로컬 네트워크로 비디오를 제공하기 위해 간단한 Node.js 서버를 작성하고 있습니다.
나는 최선의 방법을 확인하기 위해 주변을 검색하고 있었고 두 가지 방법을 찾았습니다 .nodejs를 사용하여 비디오 파일을 제공 할 때 다른 방법보다 선호되는 방법이 있는지 알아내는 데 도움이 필요합니다.
비디오 파일은 거대한 비디오 파일, 영화 크기입니다 ....
옵션 1 : Express 사용 :
Express 서버에 대한 모든 일반적인 상용구 코드를 만든 후 비디오를 보낼 때 다음과 같은 작업을 수행하는 사람들을 보았습니다.
app.get('/getMovie', (req, res) => {
res.sendFile('assets/video.mp4', { root: __dirname });
});
옵션 2 : Http 사용 :
이 옵션의 경우 http 서버 등을 만든 후 사람들은 먼저 ReadStream을 fs
만든 다음 비디오를 보냅니다. 다음과 같은 것 :
res.writeHead(200, {'Content-Type': 'video/mp4'});
let readStream = fs.createReadStream("movie.mp4");
readStream.pipe(res);
나에게 옵션 2는 대용량 비디오 파일의 경우 더 합리적으로 들리지만 어떤 것이 가장 좋으며 그 이유는 확실하지 않습니다.
Express server-static은 범위 요청을 수락하므로 실제로 한 번에 전체 비디오 파일을 제공하지 않습니다.
범위 요청을 통해 클라이언트는 청크 단위로 비디오를 요청할 수 있습니다. 헤더가 비디오 시작 부분에 있으면 클라이언트가 비디오를 다운로드 할 때 재생을 시작할 수 있습니다.
브라우저 검사의 아래 네트워크 메시징 (이 경우 safari)은 범위 요청을 수락하는 비디오에 대한 서버 요청의 예를 보여줍니다.
응답에는 클라이언트 (이 경우 브라우저)에게 서버가 범위 요청을 수락 함을 알리는 정보가 포함되어 있음을 볼 수 있습니다.
이미지 왼쪽에있는 다음 요청을 보면 시작에서 끝 바이트까지 청크별로 비디오 청크를 요청하는 것을 볼 수 있습니다. 예를 들어 다음은 81920 ~ 98303 바이트에 대한 요청 및 응답입니다.
Express serve-static에 대한 자세한 내용은 http://expressjs.com/en/resources/middleware/serve-static.html 에서 확인할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다