FFmpeg(https://www.ffmpeg.org/)は、オーディオとビデオを記録、変換、ストリーミングするための完全なクロスプラットフォームソリューションです。 FFmpegは主要なマルチメディアフレームワークであり、人間や機械が作成したほとんどすべてのものをデコード、エンコード、トランスコード、マルチプレクサ、デマルチプレクサ、ストリーミング、フィルタリング、および再生することができます。 最先端までの最もあいまいな古代のフォーマットをサポートします。それらがいくつかの標準化委員会、コミュニティ、または企業によって設計されたかどうかは関係ありません。
移植性も高い:FFmpegは、さまざまなビルド環境、マシンアーキテクチャ、および構成。
FFmpegライブラリ自体は LGPL2.1ライセンスの下にあります。特定の外部ライブラリ(libx264など)を有効にすると、ライセンスがGPL2以降に変更されます。
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などの他の製品を使用して、ビデオを表示したり、マルチキャストチャネルを介して配信された音楽を聴いたりすることもできます。
マルチキャストチャネルを停止する良い方法は、このチャネルがそこで制御されているため、マルチキャストチャネルを開始したクライアントで停止することです。 ストリーミングされたメディアファイルの最後まで再生すると、ショーも終了します。