Node.js 및 Docker와 함께 FFmpeg를 사용하는 방법
3439 단어 node
Node.js에서 오디오 및 비디오 파일로 쉽게 작업하는 방법
오늘 우리는 Docker 컨테이너 내에서 Node.js와 함께 FFmpeg를 사용하는 방법을 배웁니다.
배경
일반적으로 Node.js 애플리케이션을 실행할 때 해당 애플리케이션에 필요한 모든 부분은 node_modules 폴더 안에 있는 npm 패키지 안에 있습니다.
그러나 일부 특정 사용 사례의 경우 OS 수준 애플리케이션에 액세스해야 하므로 약간 복잡합니다.
이에 대한 한 가지 좋은 예는 문서에서 다음과 같이 설명된 FFmpeg입니다.
https://ffmpeg.org/
오디오 및 비디오를 기록, 변환 및 스트리밍하는 완벽한 교차 플랫폼 솔루션입니다.
간단히 말해서, 오디오 및 비디오 변환 또는 수정 작업이 필요한 경우 이것이 필요합니다.
문제
문제는 FFmpeg가 그냥 설치하고 사용할 수 있는 npm 모듈이 아니라는 것입니다. FFmpeg 위에 추상화를 생성하는
ffcreator
및 fluent-ffmpeg
와 같은 FFmpeg 위에 일부 라이브러리가 있지만 여전히 OS 레벨에 FFmpeg를 설치해야 합니다.따라서 문제를 해결하기 위한 쉬운 해결책 중 하나는 애플리케이션을 실행 중인 서버에 FFmpeg를 설치하는 것입니다.
그러나 현대에는 하드웨어를 직접 사용하는 경우가 거의 없습니다. 새 서버가 필요할 때마다 다시 설치해야 하기 때문입니다.
반복적이고 지루한 것은 무엇입니까?
해결책
더 쉬운 방법은 애플리케이션을 Docker 이미지 내에 설치된 FFmpeg와 번들로 묶는 것입니다. 이렇게 하면 정말 쉽게 배포할 수 있으며 이제 애플리케이션을 공유하고 재현할 수 있습니다!
하지만 정확히 어떻게합니까? 정말 간단합니다. 기본 이미지 위에 FFmpeg 설치 명령을 실행하면 됩니다.
다음은 트릭을 수행하는 작업 Dockerfile입니다.
FROM node:16-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
## following 3 lines are for installing ffmepg
RUN apk update
RUN apk add
RUN apk add ffmpeg
COPY . .
EXPOSE 4000
RUN npm run build
CMD [ "node", "dist/src/index.js" ]
따라서 중간에 있는 3줄은 Node.js Alpine 기본 이미지 내부에 FFmpeg를 설치합니다.
RUN apk update
RUN apk add
RUN apk add ffmpeg
참고:
apk add
를 사용하는 이유는 상단에서 노드(크기가 더 작음)의 node:16-alpineversion
를 선택했기 때문입니다.node:16
와 같은 적절한 Node.js 이미지를 사용하는 경우 FFmpeg를 설치하는 명령은 다음과 같습니다.RUN apt update
RUN apt install ffmpeg
그것은 트릭을 수행해야합니다.
대안
위의 접근 방식은 Node.js 및 Docker 이미지에 적용됩니다. 그러나 AWS Lambda 또는 Google Cloud Functions를 사용하여 Node.js 애플리케이션을 배포하려는 경우 몇 가지 문제가 발생합니다.
이를 방지하기 위해 다른 접근 방식이 있습니다.
ffmpeg-static
라는 npm 패키지를 사용할 수 있습니다.프로젝트 내부:
npm install --save ffmpeg-static
바이너리 파일을 다운로드하여
node_modules
폴더에 저장합니다. 응용 프로그램에서 node_modules
폴더 내의 이진 파일 경로를 지정해야 합니다.다음과 같은 방법으로 경로를 가져올 수 있습니다.
var pathToFfmpeg = require('ffmpeg-static');
console.log(pathToFfmpeg);
그런 다음 경로로 내보낼 수 있습니다.
ENV PATH="/your/path/to/node_modules/ffmpeg-
static/bin/linux/x64:${PATH}"
그것이 당신이 그것을 성취할 수 있는 방법입니다. 이 특정 스레드가 유용합니다.
https://stackoverflow.com/questions/50693091/ffmpeg-install-within-existing-node-js-docker-image
오늘은 여기까지입니다. 좋은 하루 되세요!
자원:
https://stackoverflow.com/questions/50693091/ffmpeg-install-within-existing-node-js-docker-image
Reference
이 문제에 관하여(Node.js 및 Docker와 함께 FFmpeg를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mohammadfaisal/how-to-use-ffmpeg-with-nodejs-and-docker-167j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)