今回は、ビデオライブストリーミング用のffmpegベースのnodejsについて説明します。 ライブビデオストリーミング用のffmpegベースのnodejsの注意事項は次のとおりです。
ffmpegをコアとして、LAN内でトランスコーディングを受信してインターネットにプッシュするクライアントソフトウェアをパッケージ化しています。この記事では、ストリーミング、トランスコーディング、ストリーミング、簡単な再生設定など、ffmpeg の基本的な機能のみを使用します。
ワークフロー
リモート ビデオ ストリームをプルします。ビデオ ストリーム形式は rtsp です
必要なツールとソフトウェア
1. ffmpeg コマンドラインツールの公式 Web サイトのリンク、それを選択する利点は次のとおりです:
無料
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 コマンド ライン マニュアルに精通している場合は、このパッケージを使用する必要はありません。
りー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 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
Vue2.0でグローバルスタイルを設定する手順の詳細な説明NodeJSを使用してビデオをトランスコードする完全なAngular4 FormTextコンポーネントを実装するにはどのような手順が必要か以上がNodejs は ffmpeg に基づいてライブビデオストリーミングを実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。