back

eXport-it FFmpeg

מהי ספריית FFmpeg?

FFmpeg (https://www.ffmpeg.org/) הוא פתרון שלם חוצה פלטפורמות להקלטה, המרה והזרמת אודיו ווידאו. FFmpeg היא מסגרת המולטימדיה המובילה, המסוגלת לפענח, לקודד, להמיר, mux, demux, להזרים, לסנן ולהשמיע כמעט כל דבר שבני אדם ומכונות יצרו. הוא תומך בפורמטים העתיקים המעורפלים ביותר עד לקצה הקצה. לא משנה אם הם עוצבו על ידי ועדת תקינה כלשהי, הקהילה או תאגיד.

הוא גם נייד מאוד: FFmpeg מרכיב, מריץ ומעביר את תשתית הבדיקות שלנו FATE על פני Linux, Mac OS X, Microsoft Windows, ה-BSDs, Solaris וכו'... תחת מגוון רחב של סביבות בנייה, ארכיטקטורות מכונות, ותצורות.

ספריית FFmpeg עצמה נמצאת תחת רישיון LGPL 2.1. הפעלת ספריות חיצוניות מסוימות (כמו libx264) משנה את הרישיון להיות GPL 2 ואילך.

כיצד משולבת ספריה זו באפליקציית Android

השתמשתי בסקריפט ffmpeg-android-maker (תורמים: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) כדי להרכיב את הספריות. סקריפט זה מוריד את קוד המקור של FFmpeg מ-https://www.ffmpeg.org ובונה את הספרייה ומרכיב אותה עבור אנדרואיד. הסקריפט מייצר ספריות משותפות (קבצי *.so) וכן קובצי כותרות (קבצי *.h).

המוקד העיקרי של ffmpeg-android-maker הוא להכין ספריות משותפות לשילוב חלק בפרויקט אנדרואיד. הסקריפט מכין את ספריית 'פלט' המיועדת לשימוש. וזה לא הדבר היחיד שהפרויקט הזה עושה. קוד המקור של ffmpeg-android-maker זמין תחת רישיון MIT. עיין בקובץ LICENSE.txt לפרטים נוספים בכתובת https://github.com/Javernaut/ffmpeg-android-maker/ ספריות eXport-it FFmpeg מורכבות רק עם libaom, libdav1d, liblame, libopus ו-libtwolame... אבל לא כל הספריות המשויכות.

כדי לפתח את תמיכת Java עבור FFmpeg ולהפעיל אותה על אנדרואיד 7.1 עד 12, התחלתי מפרויקט MobileFFmpeg שתועד בכתובת https://github.com/tanersener/mobile-ffmpeg/ על ידי Taner Sener, שאינו מתוחזק יותר ... והוא מורשה תחת LGPL 3.0 ...

לבסוף, הכנתי פרויקט JNI Android Studio עם הספריות, כולל קבצים וקוד תמיכה ב-Java ויוצר קובץ .aar Library כדי להשתלב כספרייה נוספת בפרויקטים הקיימים שלי.


כיצד להפעיל ערוץ ריבוי שידורים

כדי להפעיל ערוץ ריבוי שידור נדרש להשתמש בלקוח, כדי לגשת לשרת UPnP ברשת המקומית שלך (Wi-Fi) עם תמיכת FFmpeg. שרת זה אמור לענות עם הרשימה על הקבצים שהוא מייצא. אם לשרת זה יש תמיכה ב-FFmpeg, יש להציג טקסט קטן "כערוץ" באדום בסוף השורה העליונה של דף הרשימה. כאשר הטקסט הוא "אדום", לחיצה על כפתור "הפעל" פועלת כמו קודם באמצעות פרוטוקול UPnP. אם תלחץ על הטקסט, הוא אמור להיות "ירוק" ולחיצה על כפתור "הפעל", לאחר בחירת קבצי וידאו או שמע, אמורה להתחיל "ערוץ".

קובצי המדיה שנבחרו מושמעים כנראה באותו אופן מאשר באמצעות UPnP, אלא שעיכוב האתחול ארוך יותר עקב משימות נוספות. עליך לשמור על לקוח זה לנגן את קובצי המדיה כדי לשמור על הצינור פעיל.

שימוש בצינור זה במכשירים אחרים

ריבוי שידור IP אינו פועל דרך האינטרנט, הוא פועל רק ברשתות מקומיות ובעיקר ב-Wi-Fi. ערוץ נתונים רב שידור יכול להיות משותף על ידי לקוחות רבים בו זמנית. אתה שולח זרימת נתוני מדיה ברשת ה-Wi-Fi שלך ומציג נתונים אלה במכשירים מחוברים, כמעט באופן סינכרוני, רק את ההבדל בהשהיית ההשהיה.

עם הזרמת UPnP או HTTP, כל מכשיר דורש את רוחב הפס של הסרטון המוצג ורוחב הפס הגלובלי הוא הסכום של שתי התעבורה. עם הזרמת ריבוי שידורים, אנו שולחים זרימת נתונים אחת ברשת ה-LAN אשר משותף בין מספר לקוחות.

אם אתה משתמש בלקוח אחר ברשת שלך לאחר פתיחת ערוץ, אתה אמור לראות שורה נוספת בחלון הראשי של הלקוח. רק לחיצה על שורה זו אמורה להתחיל את ההצגה.

זה אפשרי גם להשתמש במוצרים אחרים כמו VLC, SMplayer, ... כדי להציג סרטון או להאזין למוזיקה המופצת בערוץ ריבוי שידורים רק באמצעות כתובת האתר "UDP" המוצגת בלקוח eXport-it.

כדי לעצור ערוץ ריבוי שידור

הדרך הטובה לעצירת ערוץ ריבוי שידורים היא לעצור אותו בלקוח שבו התחלת אותו מכיוון שהערוץ הזה נשלט שם. הפעלה עד הסוף של קבצי מדיה זורמים אמורה לתת גם את סוף התוכנית.

שיקולים מעשיים

כדי להפעיל ערוץ ריבוי שידורים נדרש חלק לקוח ספציפי של יישום זה, זהה ללקוח eXport-it של שאר המוצרים העדכניים שלי. כדי להשתמש בערוץ שידור ריצה ניתן לעשות עם לקוח האפליקציה או עם מוצרים אחרים כמו VLC, SMPlayer, ... הפועלים בפלטפורמות אחרות או באנדרואיד. בעת שימוש ב-VLC, כתובת האתר לשימוש בערוץ Multicast שונה בצורה חלקה כמו udp://@239.255.147.111:27192... רק עם "@" נוסף. עם ערוץ UDP Multicast, נתוני המדיה נשלחים רק פעם אחת כדי שיוצגו במספר לקוחות, אך אין סנכרון אמיתי, והעיכוב יכול להיות שניות בהתאם לאפיוני החציצה והמכשיר.

האזנה לערוץ ריבוי שידור אודיו יכול להיעשות במוצרים אחרים, אך הלקוח הספציפי מציג תמונות שנשלחו גם באמצעות שידור IP. אם אתה רוצה לשלוח תמונות ספציפיות איתך מוזיקה, אתה יכול להשתמש באפשרות התפריט "עמוד 2" בשרת, כדי לבחור רק את התמונות שאתה רוצה, בטל את הבחירה בכל התמונות בלחיצה אחת, ואז בחר את אלה שאתה רוצה...

יש יתרונות ואי נוחות לכל פרוטוקול. ניתן להשתמש בערוץ UPnP ו-Multicast רק ברשת מקומית (בעיקר Wi-Fi), הזרמת HTTP פועלת באופן מקומי אך גם דרך האינטרנט והשתמשו בדפדפן אינטרנט כלקוח. ל-UPnP ולערוץ Multicast אין דרך מאובטחת לשלוט בגישה, וכל מכשיר המחובר לרשת ה-Wi-Fi יכול להשתמש בשרת הפועל. עם פרוטוקול HTTP, אתה יכול להגדיר שמות משתמש וסיסמאות, ולהגדיר קבצים בקטגוריות גישה (קבוצות), להגביל את הגישה לכמה קבצי מדיה עבור משתמשים ספציפיים. הגדרות השרת מאפשרות להגביל אילו קבצים מופצים ולהגדיר שם קטגוריה לכל קובץ במידת הצורך.

back