RTMP 전달할 때 편리한 nginx 프런트 엔드를 Electron으로 만들었습니다.

RTMP 배포를 여러 서비스에 동시에 배포할 수 있는 데스크톱 앱을 Electron으로 만들었습니다.
엄밀히 말하면, RTMP의 일을 nginx에게 해주는 프런트 엔드가 되고 있습니다.

해결하고 싶은 문제



...
  • 특정 서비스에 잠기고 싶지 않음
  • 록인되고 싶지 않아!
  • 록인되고 싶지 않아!
  • 록인되고 싶지 않아!
  • nginx의 rtmp-module을 사용하면 하나의 rtmp 스트림을 여러 서비스에 배포 할 수 있지만 서비스를 전환하기 위해 직접 구성을 직접 괴롭히는 것은 조금 번거롭습니다.

    해결책



    nginx의 rtmp-module을 쉽게 움직일 수있는 프런트 엔드를 준비합니다.



    할 수 있는 일



    이동하는 방법은 희귀 D 째. 자. MD을 참조하십시오.

    기술적 인



    소스 코드는 MIT 라이센스로 공개됩니다.
    htps : // 기주 b. 코 m / p 로그 레 / 근진 x rtmp - f 롱 텐 d /

    nginx 작업



    htps : // 기주 b. 이 m / p 로그 레 / 응진 x-rtmp-f 롱 텐 d / b ぉ b / 뭐 r / src / 세르 ゔ ぃ 세 / ンギン x. ts
    node의 child-process에서 nginx를 비 데몬 모드로 시작하고 있습니다.
    설정 파일은 프런트 엔드용의 것을 가지고 있어, nginx 인스톨처는 가능한 한 더러워지지 않게 하고 있습니다.
    설정 파일의 조작은 nginx-conf 를 사용하고 있습니다. 좀 버릇이 있는 모듈로 conf.die() 없이 앱을 떨어뜨리면 파일을 깨는 일이 있습니다. . .

    작업 표시줄 만들기



    htps : // 기주 b. 이 m / p 로그 레 / 응진 x-rtmp-f 롱 텐 d / b ぉ b / 어서 r / src / 우이 / t 등 y 이콘. ts
    작업 트레이 아이콘이 매우 간단하게 만들 수있는 것도 Electron의 매력 중 하나라고 생각합니다.
    특히 .NET Framework라고 제대로 API가 제공되지 않는(※) 것이 힘들었습니다만, Electron라고 순식간입니다.
    ※Windows.Forms라는 오래된 GUI 라이브러리 밖에 없다

    다국어 대응



    htps : // 기주 b. 이 m/p 로그레/응진 x-rtmp-f 롱텐 d/bぉb/마s테 r/src/푸 bぃc/이여 x. 그럼
    htps : // 기주 b. 이 m/p 로그레레/응진x-rtmp-f 롱텐 d/bぉb/마스 r/src/푸 bぃc/js/아 p. ts
    렌더러 프로세스의 다국어 대응은 i18next 를 사용하고 있습니다.
    별로 퍼포먼스라든지 깊게 생각하지 않고, jade측에 .i18n-hogehoge 라고 클래스를 써 두면 좋게 문언을 맞추어 주도록 jQuery에 열심히 하고 있습니다.

    Electron의 로그 출력



    htps : // 기주 b. 이 m / p 로그 레 / 근진 x-rtmp-f 롱 텐 d / b ぉ b / 뭐 r / src / 이어 x. ts
    Electron의 브라우저 프로세스의 console.log는 깨지거나 뭔가 잘 드러내지 않습니다.
    log4js 을 콘솔 출력 모드로 사용하면 좋은 느낌으로 콘솔에 로그를 낼 수 있었습니다.

    손쉬운 앱 아이콘 만들기



    htps : // 로만우리 k. 기주 b. 이오 / 안 d로이다세 tS 츠오 / 이콘 s ぁ 똥 r. HTML
    아이콘에 시간을 들이고 싶지 않았기 때문에, Android 앱용 아이콘 작성의 웹 서비스로 간편하게 작성했습니다.

    멀티 플랫폼 자동 패키징



    htps : // 기주 b. 이 m / p 로그 레 / 근진 x rtmp - f 롱 텐 d / b ぉ b / 마s r /. t ゔぃ s. yml
    Travis 씨에게 일식 작성을 부탁하고 있으므로, release-it 로 버젼 갱신&태그 치기&push 해 안심하고 비싯과 릴리스 바이너리를 Releases 에 두어 줍니다.

    미래


  • 브라우저 프로세스 측의 다국어 대응 잊어버렸다
  • HTML 파트의 중복과 jQuery의 격차가 있기 때문에 React 또는 Angular2를 사용해보십시오
  • 좋은 웹페이지 즐겨찾기