FFmpeg (https://www.ffmpeg.org/) 是一個完整的跨平台解決方案,用於錄製、轉換和流式傳輸音頻和視頻。 FFmpeg 是領先的多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流式傳輸、過濾和播放人類和機器創建的幾乎所有內容。 它支持最模糊的古老格式,直到最前沿。無論它們是由某個標準委員會、社區還是公司設計的。
它還具有高度的可移植性:FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows、BSD、Solaris 等各種構建環境、機器架構、和配置。
FFmpeg 庫本身在 LGPL 2.1 許可下。啟用某些外部庫(如 libx264)會將許可證更改為 GPL 2 或更高版本。
我使用 ffmpeg-android-maker 腳本(貢獻者:Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va)來編譯庫。 該腳本從 https://www.ffmpeg.org 下載 FFmpeg 的源代碼並構建庫並為 Android 組裝它。 該腳本生成共享庫(*.so 文件)以及頭文件(*.h 文件)。
ffmpeg-android-maker 的主要重點是準備共享庫以無縫集成到 Android 項目中。 該腳本準備了要使用的“輸出”目錄。這不是這個項目做的唯一事情。 ffmpeg-android-maker 的源代碼在 MIT 許可下可用。有關更多詳細信息,請參閱 LICENSE.txt 文件 https://github.com/Javernaut/ffmpeg-android-maker/ eXport-it FFmpeg 庫只是使用 libaom、libdav1d、liblame、libopus 和 libttwolame 編譯...但不是所有相關的庫。
為了開發對 FFmpeg 的 Java 支持並在 Android 7.1 到 12 上運行,我從 Taner Sener 在 https://github.com/tanersener/mobile-ffmpeg/ 上記錄的 MobileFFmpeg 項目開始,該項目不再維護...並在 LGPL 3.0 ...
下獲得許可最後,我準備了一個帶有庫、包含文件和 Java 支持代碼的 JNI Android Studio 項目,並生成了一個 .aar 庫文件以作為附加庫集成到我現有的項目中。
要啟動多播頻道,需要使用客戶端,以訪問本地網絡 (Wi-Fi) 上的 UPnP 服務器並支持 FFmpeg。該服務器應該用它導出的文件列表來回答。 如果此服務器支持 FFmpeg,則必須在列表頁面頂行的末尾以紅色顯示小文本“作為頻道”。 當文本為“紅色”時,單擊“播放”按鈕的工作方式與使用 UPnP 協議之前一樣。如果你點擊文本,它應該變成“綠色”,點擊“播放”按鈕,選擇視頻或音頻文件後,應該會啟動一個“頻道”。
所選媒體文件的播放方式顯然與通過 UPnP 相同,只是啟動延遲會因附加任務而變長。 您必須讓該客戶端繼續播放媒體文件以保持管道處於活動狀態。
IP 多播不能在 Internet 上工作,它只能在局域網上工作,因此主要在 Wi-Fi 上工作。一個組播數據通道可以同時被多個客戶端共享。您正在 Wi-Fi 網絡上發送媒體數據流,並在連接的設備上顯示這些數據,幾乎同步,只是延遲延遲差異。
使用 UPnP 或 HTTP 流式傳輸時,每個設備都需要所顯示視頻的帶寬,而全局帶寬是這兩種流量的總和。 通過多播流,我們在 LAN 上發送一個數據流,在多個客戶端之間共享。
如果您在啟動頻道後使用網絡上的其他客戶端,您應該會在客戶端主窗口中看到額外的一行。只需單擊此行即可開始顯示。
使用其他產品(如 VLC、SMplayer 等)也可以使用 eXport-it 客戶端上顯示的“UDP”URL 來顯示視頻或收聽通過多播頻道分發的音樂。 p>
停止多播通道的好方法是在您啟動它的客戶端上停止它,因為該通道在那裡受到控制。 播放到流媒體文件的結尾也應該結束節目。
要啟動多播通道需要此應用程序的特定客戶端部分,與我的其他最新產品的 eXport-it 客戶端相同。 要使用正在運行的多播通道,可以通過應用程序客戶端或其他產品(如 VLC、SMPlayer 等)在其他平台或 Android 上運行。 使用 VLC 時,使用多播頻道的 URL 與 udp://@239.255.147.111:27192 等不同...只是多了一個“@”。 使用 UDP 多播通道,媒體數據只發送一次以在多個客戶端上顯示,但沒有真正的同步,延遲可能是幾秒,具體取決於緩沖和設備特性。
可以使用其他產品收聽音頻多播頻道,但特定客戶端顯示的圖像也通過 IP 多播發送。如果你想隨音樂一起發送特定的照片,你可以使用服務器上的“第2頁”菜單選項,只選擇你想要的圖像,一鍵取消選擇所有圖像,然後選擇你想要的…… p>
每種協議都有優點和不便之處。 UPnP 和多播通道只能在本地網絡(主要是 Wi-Fi)上使用,HTTP 流在本地工作,但也可以在 Internet 上使用,並使用 Web 瀏覽器作為客戶端。 UPnP 和組播通道沒有安全的方式來控制訪問,任何連接到 Wi-Fi 網絡的設備都可以使用正在運行的服務器。 使用 HTTP 協議,您可以定義用戶名和密碼,並在訪問類別(組)中設置文件,限制特定用戶對某些媒體文件的訪問。服務器的設置允許限制分發哪些文件並在需要時為每個文件設置一個類別名稱。