ארכיון

ארכיון לקטגוריה ‘מולטימדיה’

מדריך פלאש - FMS Authentication

7 אוגוסט, 2009 gadi_sr אין תגובות

כל מי שמתעסק בשרתי מדיה ו-streaming מכיר את Flash Media Server כשרת אמין ויציב לתקשורת וידאו ב-stream עבור שידורים חיים ן-vod. 85% מהוידאו ברשת, שידורים חיים ו-vod משודרים ל-Flash Player והיתרון בשימוש עם Flash Media Server הוא שאין צורך בהתקנה נוספת חוץ מ-Flash Player שמותקן על 97% מהמחשבים המחוברים לאינטרנט.

אחת המשימות החשובות כאשר יוצרים אפליקציית וידאו ל-vod או Streaming היא יצירת מערכת מאובטחת שניתן להכנס לתכנים שלה רק אחרי אוטנטיקציה של המשתמש והגדרת הרשאות (לדוגמא: יכולת שידור, יכולת קבלת stream וכו)

ישנם מספר דרכים לבצע אוטנטיקציה בכניסה לאפליקציית FMS:

1. אותנטיקציה ב-SSAS : כאשר משתמש מנסה להתחבר לאפליקציית FMS הוא יכול להעביר פרמטרים נוספים כחלק מתהליך ההתחברות. בשלב זה יכול הסקריפט בצד השרת לבצע קריאה ל-Database באמצעות http או tcp לשרת חיצוני ולאשר את המשתמש על פי הפרטים. בשלב זה גם ניתן לתת לו הרשאות לגבי publish ו-receive לשידור. בכל שלב ניתן להעיף את המשתמש מהחיבור ל-FMS.

2. אותנטיקציה ב-FMS Plugin: קיימת אפשרות לכתוב plugin ספציפי ב-c++/c שמתחבר ל-flow של ה-FMS ולאשר או לא לאשר פעולות של משתמשים במספר שלבים בדרך:

a. שלב ההתחברות: שלב זה מתבצע לפני חיבור המשתמש לאפליקציה, ובו ניתן גם להעביר משתמש לשרת/אפליקציה אחרת ללא שהמשתמש ידע על כך (טוב במקרים של load balancer אפליקטיבי).

b. שלב פעולה על stream: כאשר משתמש רוצה לבצע פעולה מבויימת על stream (להאזין או לשדר לדוגמא) ניתן לבדוק אילו הרשאות קיימות לו ועל פי זה לאשר לבצע את הפעולה.

שימוש באותנטיקציה ב-SASS דורש יותר משאבים (CPU) משרת ה-FMS ובאופן כללי אם ניתן, עדיף לבצע אותנטיקציה ברמת ה-plugin.

דוגמא לאותנטיקציה ב-SSAS:

Application.onConnect = function(client, username, password) {
if(username == myUsername && password == myPassword)
{
application.acceptConnection(client);
}
else
{
application.rejectConnection(client);
}
}

  • Share/Save/Bookmark
קטגוריות:FMS, מולטימדיה תגיות:

Google קונה את On2 ב-106M$

6 אוגוסט, 2009 gadi_sr תגובה אחת

את חדשות היום אתם ודאי כבר יודעים. Google קונה את On2 technologies האחראים על Flix בגרסאותיו השונות (Live, Engine, DirectShow SDK וכו') וגם מחזיקה ב-IP של VP6, ה-encoder שכנראה שינה את הדרך בה רואים וידאו באינטרנט. כיום הוא מוטמע כ-decoder בפלאש אבל לא כ-encoder (בו משתמשים כיום ב-Sorenson Spark).

המחיר נמוך יחסית כמובן, לעומת הפוטנציאל הטמון ברכישה. לגבי השינויים הצפויים אני מניח ש:

- Google יטמיעו את הקודקים של הוידאו ב-Google talk
- יכולים להכריז על de facto סטנדרט חדש של encoder שיהיה מוטמע ב-chrom
- אם הם ישחררו חלק מה-codecs אולי נראה VP6 encoder ב-Flash player (???)
- סטנדרט חדש של codec ל-HTML5 (???)

מבחר כתבות בנושא:

Press Release

TechCrunch

On2

Twitter

  • Share/Save/Bookmark
קטגוריות:Flash Player 10, כללי, מולטימדיה תגיות:, ,

באג: קליק ימני + settings על פלאש לא עובד בחלק מהדפדפנים

30 יוני, 2009 gadi_sr תגובה אחת

אוקיי, אז בחלק קטן מהדפדפנים , אבל עדיין בעיה קיימת.

הבאג: קליק ימני על סרט פלאש מציג את settings (בחירת מצלמה/מיקרופון/sol) במצב disable על דפדפני iceweasel על debian, ודווח גם על בעיות ב-ubuntu (ב-ff 3.5 החדש הבעיה נפתרה כנראה)

הסיבה: לא ברור

פתרון אפשרי: הבעיה מתרחשת ספציפית במצב שהוא wmode של tranparent/opaque, שימוש ב-wmode=window יפתור את הבעיה (אבל כמובן שייצור בעיות אחרות אפשריות)

  • Share/Save/Bookmark
קטגוריות:Flash Player 10, כללי, מולטימדיה תגיות:,

Adobe הגישה DMCA takedown לפרוייקט rtmpdump

23 יוני, 2009 gadi_sr אין תגובות

ב-8 במאי הוציאה Adobe בקשת הורדה ל-sourceforge לפרוייקט שנקרא rtmpdump בטענה שהוא יכול ללחשוף הגנות של copyright content. למעשה rtmpdump יכול לשמש להקלטת stream של rtmp ושל rtmpe. על ידי התחזות ל-flashplayer יכול rtmpdump לקבל את ה-stream ולשמור אותו.

לפרוטוקול RTMP של הפלאש התבצע כבר מזמן Reverse engeneering וישנם מספר פרוייקטים שמממשים אותו (Wowza, Red5 וכו') ו-Adobe אפילו שחררה כבר את הבסיס של הפרוטוקול למפתחים. אבל זו הפעם הראשונה למימוש של RTMPE.

בקשת ההורדה הגיע מאוחר מדי כמובן, מכיוון שניתן כבר לראות את מבנה הפרוטוקול החדש כאן.

את התגובה הנזעמת של יוצרי הפרוייקט ניתן למצוא כאן

להרחבה

  • Share/Save/Bookmark
קטגוריות:FMS, כללי, מולטימדיה תגיות:, ,

Adobe שחררה את RTMP Specifications

16 יוני, 2009 gadi_sr אין תגובות

Adobe שחררה היום את ה-specifications של RealTime Messaging Protocol, הפרוטוקול שמשמש לתקשורת בין משתמשים ב-FMS לבין Flash Player.

המסמך מתאר יצירת handshake, והעברת הודעות ו-chunks של data, המסמך לא מפרט את צורת ה-security של הפרוטוקול בשביל למנוע sniffing, וכמו כן אינו כולל פירוט של העברת אודיו ווידאו בין ה-client לשרת.

פירוט נוסף בבלוג של Kevin Towes, FMS Product Manager

RTMP Specifications

  • Share/Save/Bookmark
קטגוריות:FMS, Flash Player, כללי, מולטימדיה תגיות:,

אחרי Limelight, גם Akamai עוברים ל-FMS 3.5

18 מאי, 2009 gadi_sr אין תגובות

מספר ימים אחרי ההודעה של Limelight, עוברים גם Akamai לתמיכה בפיצ'רים של FMS 3.5 ושימוש ב-Dynamic Streaming וזאת על מנת לשפר חוויית HD video של חברת Epix ופורטל הוידאו שלהם.

  • Share/Save/Bookmark
קטגוריות:FMS, כללי, מולטימדיה תגיות:

Limelight עוברים ל-FMS 3.5

12 מאי, 2009 gadi_sr אין תגובות

Limelight, מה-CDNs הגדולים בעולם, וביחוד מהפרטנרים של Adobe לשידור מדיה ב-streaming וב-Progressive download הודיעו על הטמעת FMS 3.5 ברשת ה-Production שלהם.

בנוסף, הם הכריזו על תמיכה ב-Strobe של Adobe, ואם לצטט את Peter Coppola:

“Limelight Networks is pleased to support Adobe Strobe as a key initiative for helping publishers better monetize their content. We have long been an active supporter of industry-platform projects, and Strobe is a welcome addition to the open online video ecosystem. We look forward to working closely with Adobe to develop innovative ways to integrate Strobe’s framework into our video delivery technologies, including enhancing the free player tools we already make available to customers and delivering plug-ins that will enable Strobe-based players to take advantage of the robust, scalable features of our network-based delivery platform.”

  • Share/Save/Bookmark
קטגוריות:FMS, כללי, מולטימדיה תגיות:

6rounds יוצאת לאלפא :)

20 מרץ, 2009 gadi_sr אין תגובות

לקבלת invitation code אתם מוזמנים להשאיר הודעה

גדי

  • Share/Save/Bookmark
קטגוריות:6rounds, Flash Player, כללי, מולטימדיה תגיות:

RichFLV - כלי UI לעריכת flv

31 יולי, 2008 gadi_sr אין תגובות

אפליקציית AIR חדשה של Benjamin Dobler לעריכת קבצי flv, שילוב קבצי flv נוספים, שילוב אודיו, עריכה והכנסה של metadata, cuepoints ו-keyframes. מבחינת אפליקציית UI והישומים שלה היא כרגע היחידה שכתובה ב-flex על AIR שמבצעת את הפעולות האלה.

כמובן שישנם כלים אחרים כמו flvmdi , flvtool2 ו- ffmpeg שגם מאפשרים עריכה ושילוב קבצים נוספים, אבל מבחינת עבודת עריכה פרטנית לסרט ספיציפי (אין תמיכה ל-batch ול-command line) אני מעריך שזו אחלה אפליקציה.

  • Share/Save/Bookmark
קטגוריות:AIR, Flex, מולטימדיה תגיות:, ,

סאונד ב-FP10 או SoundMixer.computeSpectrum vs. SamplesCallbackEvent

19 מאי, 2008 gadi_sr אין תגובות

בגלל שלא ניתן לחקור את האלמנטים שקשורים בתקשורת עד שתצא גרסה חדשה של FMS, החלטתי לחקור את שאר הפיצ'רים החדשים ובראש ובראשונה את המדיה. אז הנה סקירה ראשונה של החידושים באובייקט Sound.

ישנם שתי אופציות חדשות ב-FP10 והן:

<method name="extract" declaredBy="flash.media::Sound" returnType="Number" uri="http://www.adobe.com/2008/actionscript/Flash10/">
<parameter index="1″ type="flash.utils::ByteArray" optional="false"/>
<parameter index="2″ type="Number" optional="false"/>
<parameter index="3″ type="Number" optional="true"/>
</method>

הפונקציה extract של אובייקט Sound מעבירה ל-ByteArray את ה-Sound samples מאובייקט ה-Sound, הפרמטר השני מגדיר את כמות האודיו להעביר והפרמטר השלישי את ה-position ב-Sound (אם הוא לא מוגדר, ההעברה היא מהמקום האחרון בו נמצא ה-Sound). הפונקציה מחזירה מספר שהוא מספר ה-samples שהועברו ל-ByteArray.
האופציה השניה היא Event handler שמתרחש בארוע שהוא "samplesCallback", שמתרחש בכל אינטרבל מסויים ומבקש מידע של Sound. ב-callback צריך להכניס לתוך אובייקט מסוג ByteArray Sound.samplesCallbackData, כמות מסויימת של samples המות יכולה להיות בין 512 ל-8192 samples עבור כל קריאה של ה-event. הבחירה תלויה במפתח, ככל שהערך נמוך יותר ה-event יקרא יותר פעמים וייווצר overhead בנגן, וככל שהערך גבוה יותר ה-latency יהיה גבוה יותר. זהו האובייקט שצריך למלא:

<accessor name="samplesCallbackData" access="readonly" type="flash.utils::ByteArray" declaredBy="flash.media::Sound" uri="http://www.adobe.com/2008/actionscript/Flash10/"/>

ה-Event עצמו יורש מ-flash.events:Event ומכיל גם פרמטר position.

<type name="flash.events::SamplesCallbackEvent" base="Class" isDynamic="true" isFinal="true" isStatic="true">

<accessor name="position" access="readwrite" type="Number" declaredBy="flash.events::SamplesCallbackEvent"/>
<method name="clone" declaredBy="flash.events::SamplesCallbackEvent" returnType="flash.events::Event"/>
<method name="toString" declaredBy="flash.events::SamplesCallbackEvent" returnType="String"/>

</type>

על ידי שתי האופציות האלה ניתן למעשה לקרוא מידע מקובץ MP3 או ליצור מידע אודיו בקוד ולכתוב אותו לתוך אובייקט סאונד חדש ולהשמיע אותו. אני מניח שההמשך הטריויאלי לדבר הזה הוא לערוך קובץ MP3 שנטען מהמשתמש ולאפשר לו להוריד אותו, לאחד שני קבצי MP3 לשני Channels שונים, ליצור מכונה שמפיקה צלילים על בסיס Flash Client בלבד ועוד היד נטויה.

עוד על אפשרויות Sound

כאשר ראיתי את האופציה של טעינת Sound לתוך ByteArray, חשבתי לעצמי הרי האופציה הזאת כבר קיימת ומיושמת עם אקולייזרים שזזים בהתאם ל-ByteArray שמנותח מהמידע של ה-Audio בזמן מסויים על ידי SoundMixer.computeSpectrum, להזכירכם, הפונקציה מאפשרת לדגום את האודיו שמנוגן בזמן נתון ולהמיר אותו ל-ByteArray וכך ניתן להשתמש בפרמטרים המוזנים ולעשות בהם שימוש ויזואלי, כמו זה. באופציה החדשה ישנם 2 הבדלים: האחד טריוויאלי, האפשרות לטעון Sound לאובייקט ולא רק לקבל ממנו, והשני הוא שה-Event לא צריך להיות מונע באמצעות זמן, ה-SoundMixer.computeSpectrum תופס Snapshot של מידע האודיו בזמן נתון אבל לא עוקב אחרי תנועת ה-packets עצמם אבל באובייקט החדש, ה-Event עוקב אחרי תנועת ה-packets ובצורה כזו יש מעקב אחרי המידע ואין חורים של זמן בין הדגימות. נחמד.

  • Share/Save/Bookmark