>  기사  >  웹 프론트엔드  >  Nodejs는 ffmpeg를 기반으로 라이브 비디오 스트리밍을 수행합니다.

Nodejs는 ffmpeg를 기반으로 라이브 비디오 스트리밍을 수행합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-04-14 15:39:0813764검색

이번에는 동영상 라이브 스트리밍을 위한 ffmpeg 기반의 nodejs를 소개하겠습니다. 라이브 동영상 스트리밍을 위한 ffmpeg 기반의 nodejs에 대한 주의 사항은 다음과 같습니다.

ffmpeg를 핵심으로 LAN에서 트랜스코딩을 수신하고 이를 인터넷에 푸시하는 클라이언트 소프트웨어를 패키지합니다. 이 기사에서는 스트리밍, 트랜스코딩, 스트리밍 및 간단한 재생 설정을 포함한 ffmpeg의 기본 기능만 사용합니다.

워크플로

  1. 원격 비디오 스트림을 가져오세요. 비디오 스트림 형식은 rtsp입니다.

  2. 일반적인 재생 형식인 rtmp로 변환하세요. rtmp

  3. 재생 포트로 푸시하세요. rtmp://푸시 종료 주소, 사용자는 재생 소프트웨어를 사용하여 이 주소에 직접 연결할 수 있습니다. 콘텐츠 재생

필수 도구 및 소프트웨어

1. ffmpeg 명령줄 도구 공식 웹사이트 링크, 이를 선택하면 다음과 같은 이점이 있습니다.

  1. 무료

  2. 설치가 필요하지 않으므로 사용자 작업 복잡성이 크게 줄어듭니다.

  3. 명령줄 시작 호출

2. nodejs 버전 번호는 v6.11.3입니다. (실제 프로젝트에서는 Electron을 사용하지만, 클라이언트에 패키징할 필요가 없다면 nodejs는 정상적으로 실행 가능합니다)

3. tsc 버전 번호는 v2.6.1입니다. 이 프로젝트는 TypeScript를 주요 작성 언어로 사용하므로 JavaScript를 사용하면 문제가 없습니다.

tsc를 사용한다면 버전 2.0 이상을 사용하세요. 내장된 @type 도구를 사용하면 코딩 효율성이 크게 향상됩니다

4. fluent-ffmpeg 버전 번호는 v2.1.2입니다. 이 nodejs 패키지는 ffmpeg의 명령줄 호출 부분을 캡슐화하여 코드의 가독성을 높입니다. ffmpeg 명령줄 매뉴얼에 익숙하다면 이 패키지를 사용할 필요가 없습니다.

rreee

VLC 재생 소프트웨어. 스트리밍, 트랜스코딩, 재생이 정상인지 모니터링하는 데 사용됩니다. 공식 홈페이지 링크

구현 코드

  npm install --save fluent-ffmpeg
  //使用js编码的用户,可以忽略下条命令
  npm install --save @types/fluent-ffmpeg

요약

"start"를 듣고 얻은 명령은 exec(yourCommandLine)을 통해서도 호출할 수 있지만 현재로서는 ffmpeg를 제어할 수 없습니다. 운영 결과. 프로그램이 종료된 후에도 스트림이 오류를 보고하거나 프로세스가 수동으로 중지될 때까지 ffmpeg 프로세스는 계속 실행됩니다. 왜 fluent-ffmpeg인지는 확실하지 않습니다. 온톨로지 프로세스가 종료된 후 타사 프로세스가 종료되도록 알릴 수 있습니다. 추측은 ChildProcess.kill()을 통해서만 명령줄 입력을 통해 프로세스를 차단하는 것입니다. 타사 프로세스를 닫는 것은 불가능합니다.

I5 8G 시스템에서 실행되는 단일 스트림 푸시는 CPU의 약 35%를 차지합니다. 멀티 스트림 푸시에는 다른 솔루션이 필요합니다. ​​​​​​​​

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

Vue2.0에서 전역 스타일을 설정하는 단계에 대한 자세한 설명

NodeJS를 사용하여 비디오 트랜스코딩

완전한 Angular4 FormText 구성 요소를 구현하는 데 필요한 단계

위 내용은 Nodejs는 ffmpeg를 기반으로 라이브 비디오 스트리밍을 수행합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.