ホームページ > 記事 > ウェブフロントエンド > NodeJSビデオトランスコーディング実装方法
この記事では主に NodeJS でのビデオトランスコーディングのサンプルコードを紹介します。編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
ビデオのトランスコーディングは、最初にデコードしてからエンコードするプロセスであり、それによって元のビデオを必要なビデオに変換します。この変換には、さまざまな形式 (mp4/avi/flv など)、解像度、ビット レート、フレーム レートなどが含まれる場合があります。
従来のビデオトランスコーディングでは、非常に一般的に使用されるツールは FFmpeg です。 FFmpeg は、デジタル オーディオとビデオの記録、変換、ストリームへの変換に使用できるオープン ソース コンピューター プログラムのセットです。
nodejs には、node-fluent-ffmpeg と呼ばれる FFmpeg もあります。 node-fluent-ffmpeg はノードで利用可能な ffmpeg であり、使用する前に ffmpeg をインストールする必要があります。
ffmpeg
FFmpeg は、デジタル オーディオとビデオを記録、変換し、ストリームに変換するために使用できるオープン ソースのコンピューター プログラムのセットです。 LGPL または GPL ライセンスを使用します。オーディオとビデオの記録、変換、ストリーミングのための完全なソリューションを提供します。非常に高度なオーディオ/ビデオのエンコードおよびデコード ライブラリ libavcodec が含まれており、高い移植性とエンコードとデコードの品質を確保するために、libavcodec の多くのコードは最初から開発されています
以下では、NodeJS でビデオをトランスコードする方法を紹介します。
1. FFmpeg をインストールします (MAC の場合)
MAC では、brew コマンドを直接使用してインストールできます: brew install ffmpeg。
インストールが成功したら、コマンドラインを使用して ffmpeg コマンドを使用してビデオをトランスコードできます。たとえば、input.avi を output.ts にトランスコードし、ビデオ コード レートを 640kbps に設定するには、実行する必要があるコマンドは次のとおりです。 module
node-fluent -ffmpeg は基本的に、nodejs を介してターミナルで FFmpeg コマンドを実行します。 node-fluent-ffmpeg のインストールと基本的な導入は他の npm モジュールと同じです。 npm (npm install fluent-ffmpeg) を介してインストールした後、require を使用して js ファイル内でそれを参照するだけです。基本的な使用法は次のとおりです:
ffmpeg -i input.avi -b:v 640k output.ts
以下は、ビデオトランスコーディングにnode-fluent-ffmpegを使用する例です:
var ffmpeg = require(‘fluent-ffmpeg'); var command = new ffmpeg(这里可以传入视频文件路径,或者流);node-fluent-ffmpegはチェーンで呼び出すことができ、上記は次のようになります。最後に、一連のビデオ属性がチェーンに設定され、最後にビデオがトランスコードされたことを示す終了イベントが監視されます。完了後、save() メソッドを呼び出して、ビデオ ファイルを対応するディレクトリに保存できます。
node-fluent-ffmpeg は、ffmpeg でできることはすべて実行でき、ビデオに対してあらゆる処理を実行できます。さらに、nodejs を使用すると、node-fluent-ffmpeg は、ビデオの長さを読み取って動的に返すこと、必要に応じてビデオを任意の形式にトランスコードすることなど、他の多くのことも実行できます。具体的なメソッドは github で参照できます。メソッドの概要が記載されています。使用する場合は、必要なものを選択するだけで簡単にビデオのトランスコードを完了できます。
5. ビデオトランスコーディングのいくつかの要素
上記の関数は、ビデオのさまざまな属性と、それに対応する ffmpeg のノードフルエントメソッドを簡単に紹介します。
1.fps: ビデオのフレーム レート。1 秒間に画像が更新される回数を示します。ゲームをプレイするとき、fps が低いとゲームが非常に遅くなることがわかります。これが fps の役割です。特定の範囲内で fps が高いほど、1 秒あたりにビデオが更新される回数が多くなり、人間の目にはより滑らかに見えます。この属性に対応するメソッドは fps() で、設定したいフレーム レート値を渡すだけです。
php の質問 - PHP でアップロードされたビデオのトランスコーディングに対して返されたpersistentId 値を取得するにはどうすればよいですか?
Qiniu クラウドビデオのトランスコーディングは「avthumb/mp4」を使用します。ソースファイルも MP4 の場合、トランスコーディング操作は実行されますか?
以上がNodeJSビデオトランスコーディング実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。