FFmpeg (https://www.ffmpeg.org/) არის სრული, მრავალპლატფორმული გადაწყვეტა აუდიოსა და ვიდეოს ჩასაწერად, კონვერტაციისთვის და სტრიმინგისთვის. FFmpeg არის წამყვანი მულტიმედიური ჩარჩო, რომელსაც შეუძლია გაშიფვრა, დაშიფვრა, ტრანსკოდირება, mux, demux, სტრიმინგი, გაფილტვრა და დაკვრა თითქმის ყველაფერი, რაც ადამიანებმა და მანქანებმა შექმნეს. იგი მხარს უჭერს ყველაზე ბუნდოვან უძველეს ფორმატებს უახლესამდე. არ აქვს მნიშვნელობა, ისინი შექმნილია სტანდარტების კომიტეტის, საზოგადოების ან კორპორაციის მიერ.
ის ასევე ძალიან პორტატულია: FFmpeg აგროვებს, აწარმოებს და გადასცემს ჩვენს ტესტირების ინფრასტრუქტურას FATE 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). ეს სკრიპტი ჩამოტვირთავს FFmpeg-ის წყაროს კოდს https://www.ffmpeg.org-დან და აშენებს ბიბლიოთეკას და აწყობს მას 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 და libtwolame...მაგრამ არა ყველა ასოცირებული ბიბლიოთეკით.
FFmpeg-ისთვის Java მხარდაჭერის გასავითარებლად და Android 7.1-დან 12-მდე მის გასაშვებად, დავიწყე MobileFFmpeg პროექტით, რომელიც დოკუმენტირებულია https://github.com/tanersener/mobile-ffmpeg/ Taner Sener-ის მიერ, რომელიც აღარ არის შენახული. ... და ლიცენზირებულია LGPL 3.0 ...
საბოლოოდ, მე მოვამზადე JNI Android Studio პროექტი ბიბლიოთეკებით, შევიყვანე ფაილები და Java-ს მხარდაჭერის კოდი, და შევქმენი .aar ბიბლიოთეკის ფაილი, რომელიც დამატებით ბიბლიოთეკის სახით ჩამეტევა ჩემს არსებულ პროექტებში.
Multicast არხის დასაწყებად საჭიროა კლიენტის გამოყენება, UPnP სერვერზე წვდომა თქვენს ლოკალურ ქსელში (Wi-Fi) FFmpeg მხარდაჭერით. ამ სერვერმა უნდა უპასუხოს სიით იმ ფაილებს, რომლებიც ექსპორტს ახორციელებს. თუ ამ სერვერს აქვს FFmpeg მხარდაჭერა, სიის გვერდის ზედა ხაზის ბოლოს წითლად უნდა იყოს ნაჩვენები პატარა ტექსტი "როგორც არხი". როდესაც ტექსტი "წითელია", ღილაკზე "თამაშის" დაჭერა მუშაობს ისე, როგორც ადრე UPnP პროტოკოლის გამოყენებით. თუ თქვენ დააწკაპუნებთ ტექსტზე, ის უნდა გახდეს "მწვანე" და ღილაკზე "თამაშის" დაჭერით, ვიდეო ან აუდიო ფაილების არჩევის შემდეგ უნდა დაიწყოს "არხი".
შერჩეული მედია ფაილები, როგორც ჩანს, ითამაშება ისევე, როგორც UPnP-ის მეშვეობით, გარდა იმისა, რომ გაშვების შეფერხება უფრო გრძელია დამატებითი ამოცანების გამო. თქვენ უნდა გააგრძელოთ ეს კლიენტი მედია ფაილების დაკვრაში, რათა მილი აქტიური იყოს.
IP multicast არ მუშაობს ინტერნეტით, ის მუშაობს მხოლოდ ლოკალურ ქსელში, შესაბამისად ძირითადად Wi-Fi-ზე. Multicast მონაცემთა არხის გაზიარება შესაძლებელია მრავალი კლიენტის მიერ ერთდროულად. თქვენ აგზავნით მედიის მონაცემთა ნაკადს თქვენს Wi-Fi ქსელში და აჩვენებთ ამ მონაცემებს დაკავშირებულ მოწყობილობებზე, თითქმის სინქრონულად, მხოლოდ შეყოვნების დაყოვნების სხვაობა.
UPnP ან HTTP სტრიმინგის საშუალებით, თითოეული მოწყობილობა მოითხოვს ნაჩვენები ვიდეოს გამტარუნარიანობას და გლობალური გამტარობა არის ორივე ტრაფიკის ჯამი. Multicast სტრიმინგის საშუალებით, ჩვენ ვაგზავნით მონაცემთა ერთ ნაკადს LAN-ზე, რომელიც გაზიარებულია რამდენიმე კლიენტს შორის.
თუ არხის გაშვების შემდეგ იყენებთ სხვა კლიენტს თქვენს ქსელში, თქვენ უნდა ნახოთ დამატებითი ხაზი კლიენტის მთავარ ფანჯარაში. მხოლოდ ამ ხაზზე დაწკაპუნებით უნდა დაიწყოს ჩვენება.
ასევე შესაძლებელია სხვა პროდუქტების გამოყენება, როგორიცაა VLC, SMplayer, ... ვიდეოს საჩვენებლად ან მუსიკის მოსასმენად, რომელიც ნაწილდება მულტიკასტის არხზე, უბრალოდ eXport-it კლიენტზე ნაჩვენები "UDP" URL-ის გამოყენებით. p>
მულტიმაუწყებლობის არხის შეჩერების კარგი გზაა მისი შეჩერება კლიენტზე, რომელზეც ის დაიწყეთ, რადგან ეს არხი იქ კონტროლდება. სტრიმინგირებული მედია ფაილების ბოლომდე დაკვრამ ასევე უნდა დაასრულოს შოუ.
Multicast არხის დასაწყებად საჭიროა ამ აპლიკაციის კონკრეტული კლიენტის ნაწილი, ისევე როგორც ჩემი სხვა განახლებული პროდუქტების eXport-it კლიენტი. გაშვებული Multicast არხის გამოყენება შეიძლება განხორციელდეს აპლიკაციის კლიენტთან ან სხვა პროდუქტებთან, როგორიცაა VLC, SMPlayer, ... გაშვებული სხვა პლატფორმებზე ან Android-ზე. VLC-ის გამოყენებისას URL Multicast არხის გამოსაყენებლად შეუფერხებლად განსხვავდება, როგორიცაა udp://@239.255.147.111:27192... მხოლოდ დამატებითი "@". UDP Multicast არხით მედია მონაცემები იგზავნება მხოლოდ ერთხელ, რათა აჩვენოს რამდენიმე კლიენტს, მაგრამ არ არის რეალური სინქრონიზაცია და დაყოვნება შეიძლება იყოს წამები, რაც დამოკიდებულია ბუფერირებაზე და მოწყობილობის მახასიათებლებზე.
აუდიო მულტიკასტის არხის მოსმენა შეიძლება სხვა პროდუქტებით, მაგრამ კონკრეტული კლიენტი აჩვენებს სურათებს, რომლებიც ასევე გაგზავნილია IP მულტიკასტით. თუ გსურთ გამოაგზავნოთ კონკრეტული ფოტოები მუსიკით, შეგიძლიათ გამოიყენოთ მენიუს ოფცია "გვერდი 2" სერვერზე, შეარჩიოთ მხოლოდ თქვენთვის სასურველი სურათები, გააუქმოთ ყველა სურათი ერთი დაწკაპუნებით, შემდეგ აირჩიოთ თქვენთვის სასურველი... p>
თითოეულ პროტოკოლს აქვს უპირატესობები და უხერხულობა. UPnP და Multicast არხის გამოყენება შესაძლებელია მხოლოდ ლოკალურ ქსელში (ძირითადად Wi-Fi), HTTP სტრიმინგი მუშაობს ადგილობრივად, მაგრამ ასევე ინტერნეტით და გამოიყენეთ ვებ ბრაუზერი კლიენტად. UPnP და Multicast არხებს არ აქვთ წვდომის კონტროლის უსაფრთხო გზა და Wi-Fi ქსელში დაკავშირებულ ნებისმიერ მოწყობილობას შეუძლია გამოიყენოს გაშვებული სერვერი. HTTP პროტოკოლით შეგიძლიათ განსაზღვროთ მომხმარებლის სახელები და პაროლები და დააყენოთ ფაილები წვდომის კატეგორიებში (ჯგუფებში), რაც ზღუდავს წვდომას ზოგიერთ მედია ფაილზე კონკრეტული მომხმარებლებისთვის. სერვერის პარამეტრები იძლევა საშუალებას შეზღუდოს ფაილების განაწილება და საჭიროების შემთხვევაში დააწესოს კატეგორიის სახელი თითო ფაილზე.