back

eXport-it FFmpeg

FFmpegライブラリとは何ですか?

FFmpeg(https://www.ffmpeg.org/)は、オーディオとビデオを記録、変換、ストリーミングするための完全なクロスプラットフォームソリューションです。 FFmpegは主要なマルチメディアフレームワークであり、人間や機械が作成したほとんどすべてのものをデコード、エンコード、トランスコード、マルチプレクサ、デマルチプレクサ、ストリーミング、フィルタリング、および再生することができます。 最先端までの最もあいまいな古代のフォーマットをサポートします。それらがいくつかの標準化委員会、コミュニティ、または企業によって設計されたかどうかは関係ありません。

移植性も高い:FFmpegは、さまざまなビルド環境、マシンアーキテクチャ、および構成。

FFmpegライブラリ自体は LGPL2.1ライセンスの下にあります。特定の外部ライブラリ(libx264など)を有効にすると、ライセンスがGPL2以降に変更されます。

このライブラリはAndroidアプリケーションにどのように統合されていますか

ffmpeg-android-makerスクリプト(寄稿者:Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va)を使用してライブラリをコンパイルしました。 このスクリプトは、FFmpegのソースコードをhttps://www.ffmpeg.orgからダウンロードし、ライブラリをビルドしてAndroid用にアセンブルします。 このスクリプトは、共有ライブラリ(* .soファイル)とヘッダーファイル(* .hファイル)を生成します。

ffmpeg-android-makerの主な焦点は、Androidプロジェクトにシームレスに統合するための共有ライブラリを準備することです。 スクリプトは、使用されることを意図した `output`ディレクトリを準備します。そして、このプロジェクトが行うことはそれだけではありません。 ffmpeg-android-makerのソースコードはMITライセンスの下で利用可能です。 https://github.com/Javernaut/ffmpeg-android-maker/の詳細については、 LICENSE.txtファイルを参照してください。 eXport-it FFmpegライブラリは、libaom、libdav1d、liblame、libopus、libtwolameでコンパイルされていますが、関連するすべてのライブラリではありません。

FFmpegのJavaサポートを開発し、Android 7.1〜12で実行するために、https://github.com/tanersener/mobile-ffmpeg/にあるTanerSenerによって文書化されたMobileFFmpegプロジェクトから始めました。 ...そして LGPL 3.0 ... の下でライセンスされています

最後に、ライブラリを使用してJNI Android Studioプロジェクトを準備し、ファイルとJavaサポートコードを含め、.aarライブラリファイルを生成して、既存のプロジェクトに追加のライブラリとして統合しました。


マルチキャストチャネルを開始する方法

マルチキャストチャネルを開始するには、クライアントを使用し、FFmpegをサポートするローカルネットワーク(Wi-Fi)上のUPnPサーバーにアクセスする必要があります。このサーバーは、エクスポートするファイルのリストで応答する必要があります。 このサーバーがFFmpegをサポートしている場合は、リストページの一番上の行の最後に「チャネルとして」という小さなテキストを赤で表示する必要があります。 テキストが「赤」の場合、「再生」ボタンをクリックすると、UPnPプロトコルを使用する前と同じように機能します。テキストをクリックすると「緑色」になり、ビデオまたはオーディオファイルを選択した後、「再生」ボタンをクリックすると「チャンネル」が開始されます。

選択したメディアファイルは、追加のタスクのために起動遅延が長くなることを除いて、UPnPを介した場合と明らかに同じ方法で再生されます。 パイプをアクティブに保つには、このクライアントでメディアファイルを再生し続ける必要があります。

このパイプを他のデバイスで使用する

IPマルチキャストはインターネットでは機能せず、ローカルエリアネットワークでのみ機能するため、主にWi-Fiで機能します。マルチキャストデータチャネルは、多数のクライアントが同時に共有できます。 Wi-Fiネットワークでメディアデータフローを送信し、接続されたデバイスにこれらのデータをほぼ同期して表示します。遅延遅延の差だけです。

UPnPまたはHTTPストリーミングでは、各デバイスに表示されるビデオの帯域幅が必要であり、グローバル帯域幅は両方のトラフィックの合計です。 マルチキャストストリーミングでは、複数のクライアント間で共有されるLAN上で1つのデータフローを送信します。

チャネルの開始後にネットワーク上で別のクライアントを使用する場合は、クライアントのメインウィンドウに追加の行が表示されます。この行をクリックするだけでショーが始まります。

eXport-itクライアントに表示される「UDP」URLを使用するだけで、VLC、SMplayerなどの他の製品を使用して、ビデオを表示したり、マルチキャストチャネルを介して配信された音楽を聴いたりすることもできます。

マルチキャストチャネルを停止するには

マルチキャストチャネルを停止する良い方法は、このチャネルがそこで制御されているため、マルチキャストチャネルを開始したクライアントで停止することです。 ストリーミングされたメディアファイルの最後まで再生すると、ショーも終了します。

実用的な考慮事項

マルチキャストチャネルを開始するには、他の最新製品のeXport-itクライアントと同じように、このアプリケーションの特定のクライアント部分が必要です。 実行中のマルチキャストチャネルを使用するには、アプリケーションクライアント、または他のプラットフォームやAndroidで実行されているVLC、SMPlayerなどの他の製品を使用して実行できます。 VLCを使用する場合、マルチキャストチャネルを使用するためのURLは、udp://@239.255.147.111:27192 ...のように、「@」を追加するだけでスムーズに異なります。 UDPマルチキャストチャネルでは、メディアデータは1回だけ送信されて複数のクライアントに表示されますが、実際の同期はなく、バッファリングとデバイスの特性によっては遅延が数秒になる場合があります。

オーディオマルチキャストチャネルのリッスンは他の製品でも実行できますが、特定のクライアントには、IPマルチキャストを介して送信された画像も表示されます。音楽と一緒に特定の写真を送信する場合は、サーバーの[ページ2]メニューオプションを使用して、必要な画像のみを選択し、ワンクリックですべての画像の選択を解除してから、必要な画像を選択できます...

各プロトコルには長所と短所があります。 UPnPおよびマルチキャストチャネルはローカルネットワーク(主にWi-Fi)でのみ使用でき、HTTPストリーミングはローカルだけでなくインターネットでも機能し、クライアントとしてWebブラウザーを使用します。 UPnPおよびマルチキャストチャネルにはアクセスを制御する安全な方法がなく、Wi-Fiネットワークに接続されているすべてのデバイスが実行中のサーバーを使用できます。 HTTPプロトコルを使用すると、ユーザー名とパスワードを定義し、アクセスカテゴリ(グループ)にファイルを設定して、特定のユーザーの一部のメディアファイルへのアクセスを制限できます。サーバーの設定により、配布するファイルを制限し、必要に応じてファイルごとにカテゴリ名を設定できます。

back