eXport-it, android  UPnP Client/Server

eXport-it android UPnP/HTTP Khách hàng/Máy chủ

Android


Android ứng dụng chia sẻ tập tin cho video, âm thanh, hình ảnh và sách điện tử




eXport-it FFmpeg



Thư viện FFmpeg là gì?

FFmpeg (https://www.ffmpeg.org/) là một giải pháp đa nền tảng, hoàn chỉnh để ghi, chuyển đổi và phát trực tuyến âm thanh và video. FFmpeg là khung công tác đa phương tiện hàng đầu, có thể giải mã, mã hóa, chuyển mã, mux, demux, truyền phát, lọc và chơi khá nhiều thứ mà con người và máy móc đã tạo ra. Nó hỗ trợ các định dạng cổ xưa khó hiểu nhất cho đến thời điểm hiện tại. Cho dù chúng được thiết kế bởi một số ủy ban tiêu chuẩn, cộng đồng hay một công ty.

Nó cũng có tính di động cao: FFmpeg biên dịch, chạy và vượt qua cơ sở hạ tầng thử nghiệm của chúng tôi FATE trên Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, v.v. trong nhiều môi trường xây dựng, kiến ​​trúc máy, và cấu hình.

Bản thân thư viện FFmpeg có giấy phép LGPL 2.1 . Việc bật một số thư viện bên ngoài (như libx264) sẽ thay đổi giấy phép thành GPL 2 trở lên.

Thư viện này được tích hợp như thế nào trong ứng dụng Android

Tôi đã sử dụng tập lệnh ffmpeg-android-maker (cộng tác viên: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) để biên dịch thư viện. Tập lệnh này tải xuống mã nguồn của FFmpeg từ https://www.ffmpeg.org và xây dựng thư viện và lắp ráp nó cho Android. Tập lệnh tạo thư viện được chia sẻ (tệp * .so) cũng như tệp tiêu đề (tệp * .h).

Trọng tâm chính của ffmpeg-android-maker là chuẩn bị các thư viện được chia sẻ để tích hợp liền mạch vào một dự án Android. Tập lệnh chuẩn bị thư mục `đầu ra` được sử dụng. Và nó không phải là điều duy nhất mà dự án này làm. Mã nguồn của ffmpeg-android-maker có sẵn theo giấy phép MIT. Xem tệp LICENSE.txt để biết thêm chi tiết trên https://github.com/Javernaut/ffmpeg-android-maker/ Các thư viện eXport-it FFmpeg chỉ được biên dịch với libaom, libdav1d, liblame, libopus và libtwolame ... nhưng không phải tất cả các thư viện liên quan.

Để phát triển hỗ trợ Java cho FFmpeg và chạy nó trên Android 7.1 đến 12, tôi đã bắt đầu từ dự án MobileFFmpeg được ghi lại trên https://github.com/tanersener/mobile-ffmpeg/ bởi Taner Sener, dự án này không được duy trì nữa ... và được cấp phép theo LGPL 3.0 ...

Cuối cùng, tôi đã chuẩn bị một dự án JNI Android Studio với các thư viện, bao gồm các tệp và mã hỗ trợ Java, đồng thời tạo tệp Thư viện .aar để tích hợp làm thư viện bổ sung vào các dự án hiện có của tôi.


Cách bắt đầu một kênh đa hướng

Để bắt đầu một Kênh đa hướng, bạn phải sử dụng một ứng dụng khách, để truy cập vào một máy chủ UPnP trên mạng cục bộ của bạn (Wi-Fi) với sự hỗ trợ của FFmpeg. Máy chủ này sẽ trả lời bằng danh sách các tệp mà nó xuất ra. Nếu máy chủ này có hỗ trợ FFmpeg, một dòng chữ nhỏ "Là một kênh" phải được hiển thị bằng màu đỏ ở cuối dòng trên cùng của trang danh sách. Khi văn bản là "màu đỏ", nhấp vào nút "phát" hoạt động như trước khi sử dụng giao thức UPnP. Nếu bạn nhấp vào văn bản, văn bản sẽ trở thành "màu xanh lá cây" và nhấp vào nút "phát", sau khi chọn tệp video hoặc âm thanh, sẽ bắt đầu "kênh".

Các tệp phương tiện được chọn dường như được phát theo cùng một cách so với thông qua UPnP, ngoại trừ thời gian khởi động lâu hơn do các tác vụ bổ sung. Bạn phải giữ ứng dụng khách này phát các tệp phương tiện để giữ cho đường dẫn hoạt động.

Sử dụng đường dẫn này trên các thiết bị khác

IP multicast không hoạt động qua Internet, nó chỉ hoạt động trên Mạng cục bộ do đó chủ yếu trên Wi-Fi. Một kênh dữ liệu đa hướng có thể được chia sẻ đồng thời bởi nhiều máy khách. Bạn đang gửi luồng dữ liệu đa phương tiện trên mạng Wi-Fi của mình và hiển thị những dữ liệu này trên các thiết bị được kết nối gần như đồng bộ, chỉ là chênh lệch độ trễ thời gian chờ.

Với truyền trực tuyến UPnP hoặc HTTP, mỗi thiết bị yêu cầu băng thông của video được hiển thị và băng thông toàn cầu là tổng của cả hai lưu lượng. Với tính năng phát trực tuyến đa hướng, chúng tôi gửi một luồng dữ liệu trên mạng LAN được chia sẻ giữa nhiều máy khách.

Nếu bạn sử dụng một ứng dụng khách khác trên mạng của mình sau khi bắt đầu một kênh, bạn sẽ thấy một dòng bổ sung trên cửa sổ chính của ứng dụng khách. Chỉ cần nhấp vào dòng này là chương trình sẽ bắt đầu.

Cũng có thể sử dụng các sản phẩm khác như VLC, SMplayer, ... để hiển thị video hoặc nghe nhạc được phân phối qua kênh đa hướng chỉ bằng cách sử dụng URL "UDP" được hiển thị trên ứng dụng eXport-it.

Để dừng kênh đa hướng

Cách tốt nhất để dừng một Kênh đa hướng là dừng nó trên ứng dụng khách mà bạn đã khởi chạy nó vì kênh này được kiểm soát ở đó. Phát đến cuối các tệp phương tiện đã phát trực tuyến cũng sẽ kết thúc chương trình.