User:Salahzar Stenvaag/classes/StreamingMedia IT

From Second Life Wiki
Jump to navigation Jump to search

Classe: Come usare lo streaming e progettare oggetti che visualizzino film, pagine web, immagini ecc.

Istruttore: Salahzar Stenvaag (SL Mentor)

Data: 11 Novembre 2008

Location: Solaris Experience


Breve Descrizione:

Fare lo "streaming" di video, pagine web ed immagini è una delle caratteristiche più potenti che SecondLife offre a comunità, aziende, individui per condividere contenuto visuale, MA il processo di impostazione è molto confusionario, difficile e soggetto ad errori.

Ho impostato questo corso per spiegare le basi delle impostazioni "Media Parcel" e come scrivere degli script scemplici che utilizzino questa caratteristica in modo semplice, effettivo e "condiviso".


NB: Il contenuto di questo corso non è riconosciuto dalla Linden, mentre invece fa parte dell'esperienza di Insegnamento Volontaio organizzata di mentori in SL. Se siete interessati ad avere notizie sui mentori in SecondLife potete chiedermi al termine della lezione.e class is finished.


Prerequisiti:

Per comprendere questa lezione dovete essere a vostro agio con le basi della gestione dei gruppi, dell'editing di oggetti, e un minimo di capacità di scripting: non insegneremo cosa sia un gruppo nè come compilare "Ciao Avatar" :)

Part I: Contenuto multimediale

   0. Introduzione
   1. Come far funzionare lo streaming (visitatore)
   2. Come impostare lo streaming su una terra (proprietario o officer)
   3. Cosa succede quando una terra è "donata" deed al gruppo?
   4. Problematiche sulla donazione e problemi di autorizzazione (permission)
   


0. Introduzione

La capacità di mostrare film, pagine web e foto in Secondlife viene ottenuta usando il tab "Media" nella maschera della land (accessibile cliccando sul nome della terra sulla barra in alto oppure cliccando sulla terra e facendo edit terrain). Ad aprile 2008, il sistema di streaming è diventato più potente consentendovi di visualizzare anche siti web o immagini da siti web senza usare quicktime o siti php intermedi. Quicktime è comunque ancora necessario per far funzionare le possibilità di base. Noi faremo vedere in particolare la visualizzazione multimediale.

Ci sono molti video che mostrano come tutto questo funziona. Torley ha fatto diversi video molto interessanti ed esaustivi al seguente indirizzo : http://blog.secondlife.com/2008/03/10/parcel-media-video-tutorials-how-to-play-movies-webpages-more/ Siete invitati a vedere i suoi video che sono ottimi ed istruttivi. In ogni caso noi faremo questo corso dal vivo dato che l'esperienza diretta funziona spesso meglio dei video automatici :)

Per mostrare del contenuto multimediale DOVETE possedere un pezzo di terra dato che il contenuto multimediale è associato alla proprietà terriera.

==> Se non possedete un pezzo di terra potreste lo stesso far parte di un gruppo che possiede terra come "officer" a cui è stato consentito di modificare il contenuto multimediale.

Ogni lotto di terra (parcel) può avere al massimo 1 contenuto stream associato, dal che, se volete mostrare 10 film allo stesso momento e 5 immagini da siti web dovreste suddividere la terra in almeno 15 sottoparcelle. Attenzione: gli avatar possono vedere lo stream SOLO se sono nella stessa parcel dove lo stream è settato.

Domande?


1. Come far funzionare lo stream (visitatore)

Se siete in una terra dove lo stream è stato impostato potete vederlo premendo il bottono "play" sul fondo del vostro schermo proprio alla destra del campo "gesture" sopra il bottone "mini-map".

Se è grigio allora DOVETE abilitare la preferenza Quicktime premendo CTRL-P e mettendo il baffo su "Play Streaming Media". Potete anche decidere di mettere il tick su "Automatically Play Streams when available" per avere il contenuto multimediale attivato automaticamente. In questo modo risparmiate un po' di tempo.

NB: dovete avere installato quicktime sul vostro pc.

Domande?


2. Come impostare il contenuto multimediale (proprietario o officer)

Se avete i giusti permessi (siete proprietari della terra o un officer autorizzato), potete cliccare su "About Land" e vi verranno mostrate le caratteristiche della terra.

Potete cliccare-destro per terra e cliccare sul cerchio di selezione "ABout Land", oppure cliccare sul nome della terra sulla striscia in cima al vostro client, scegliete quello che vi risulta più comodo.

Io personalmente preferisco cliccare sul nome in cima: è più rapid e potete farlo anche se state volando in cielo o su una piattaforma.

Cliccando sulla linguetta "Media"

Potete scegliere le cose seguenti:


  • Media Type: Quale tipo di media dovete mostrare (potete ignorarlo dato che viene automaticamente impostato quando mettete la URL).
  • Media URL: Potete cliccare su "Set..." per impostare una URL valida oppure una sorgente di film (mpg, mp4)(Attenzione: fate attenzione a cambiare la url con "Set.." e NON nella descrizione altrimenti non funziona!!
  • Replace Texture Mostra qual è la texture nella terra che è usata per mostrare il contenuto multimediale. Potete impostare qualunque delle vostre texture in modo da mostrare un Help o un logo. Altrimenti la texture di default è grigetta "Default Media Texture".
  • Auto Scale: Normalmente la selezioniamo in modo che il flusso copra TUTTA la superficie del prime non solo una parte

Tralasciamo la parte relativa al suono, che non fa parte di questo corso.

Ogni volta che avete dei problemi con il media (e siete i proprietari o ufficiali autorizzati), accertatevi di controllare su questa pagina se siete in grado di modificare il media in modo tale da dedurre se tutto funziona bene con lo streaming sulla vostra terra.

Domande?


3. Cosa succede se la terra è donata (deed) al gruppo?

Per prima cosa diciamo due parole sul concetto di "donazione" (deed) e di gruppi, che sono piuttosto complessi e farraginosi in SecondLife.

I gruppi sono stati creati per aiutare le comunità a condividere terre, attività e per definire ruoli. Alcune persone nel gruppo sono soltanto "membri", altri sono "officers", a seconda di una complessa matrice di permessi e di autorizzazioni.

I permessi possono essere impostati per consentire ai membri di un ruolo di costruire oggetti, espellere altri membri, poter donare oggetti ed usarli e di impostare le proprietà multimediali della terra.

Siamo interessati nella donazione perchè il nostro scopo ultimo è quello di fare un oggetto scriptato capace di cambiare le caratteristiche multimediali al nostro posto senza bisogno di farle manualmente su "About Land" e senza premere troppi tasti.

Un oggetto come una lavagna o uno schermo o un TV possono cambiare le proprietà multimediali della terra di gruppo SOLO se sono stati donati al gruppo. Ecco perchè stiamo parlando di gruppi e di donazioni. :)

Le terre donate sono più complicate delle terre possedute da semplici avatar. Nel secondo caso (il più semplice), gli oggetti scriptati possono cambiare le caratteristiche multimediali solo a condizione di essere dello stesso proprietario della terra.

Nell'altro caso, più complesso anche l'oggetto deve essere di proprietà del gruppo. Non basta che sia *shared with group* deve anche essere DONATO (deed to group).

Domande?


4. Problematiche sulla donazione e problemi di autorizzazione (permission)

Ogni volta che donate qualcosa ad un gruppo NON SIETE più proprietari di quella cosa (questo valido per le terre, ma ancora di più per gli oggetti).

Di fatto la donazione equivale ad un TRANSFER (vendita). Anche nel caso in cui siete owner del gruppo, quando donate qualcosa al gruppo PERDETE l'oggetto e potreste non essere più in grado di riottenerlo indietro, almeno non con le stesse permissions :(

Questo è qualcosa di molto contorto e dato che molti oggetti commerciali sono normalmente NOTRANSFER per impedire il resell, se comprate qualcosa che deve funzionare come oggetto multimeida questo DEVE essere TRANSFER per consentire la donazione. I venditori, normalmente non sono contenti di dare oggetti transfer e per evitare che ne facciate tante copie per rivenderle, di solito tolgono il permesso di COPY.

Se avete oggetti FULL PERMISSIONS non ci sono problemi, ma anche qua,

There should not be any problems with FULL PERMISSIONS objects, but here again there are some subtle bugs in SecondLife that might prevent you in having the same thing (i.e. a full permission object when rezzed, deeded, taken can become nocopy nomodify at the end). So you are advised if possible to keep copies in your inventory.

To show you the "correct" sequence to do when deeding an object to a group let assume we have a box with 1 script and 2 notecards.

  • You must be sure the object is at least TRANSFER (copy/modify is better). Check that next owner can also TRANSFER it (and copy/modify as well).
  • rez the object and SHARE with the group (the *correct* group be careful to have the proper tag on your head),
  • be sure also to SHARE with the group and to check each permissions of contained items!!!!
  • at this point you DEED the object to the group BUT READ below

You must be the owner of the group or have the following capabilities from the group in your role:

  • Change music & media settings (if you want to be able to check Media Properties of the land)
  • Return objects owned by group (to be able to reclaim your object)
  • Deed objects to group
  • Manipulate (move,copy,modify) group objects )

Whenever you DEED an object and have modify rights on it, be sure to share it again with the group AND RESET scripts in it. (Simplest way to do it is to right-click, edit and from Tools menu choose Reset Scripts in selected objects.

Reset is *QUITE* important to be sure that scripts are working under the correct identity. If you don't reset the object the object might easily simply not work :(

Questions?

'At the end of this part you should be comfortable with what is media content, how to set it manually and how it relates with scripted objects. '


Part II: Scripted Media Object

   0. Why we need a scripted object
   1. The basic lsl command llParcelMediaCommandList
   2. A very simple "web browser" listening to a channel to change URL
   3. Other usages
   4. Caveats and troubleshooting
   

0. Why we need a scripted object.

We can use the powerful media manual interfaces but ONLY if we are owner of the land, owners of the group if land is deeded or officers with enough capabilities. This can be however a bit cumbersome since you have to open up the dialog from about land and choose the url (You might as well use your browser where there is an option which puts automatically current url on the media settings if you want people to surf with you the web).

But if you want to automate the URL changing, for example in an unattended presentation, or if you want people not in your group to be able to choose their own url / movies, you MUST definitely have some scripted objects.

When you have scripted objects you enter in the issues I explained before (deeded objects, transfer hell etc). We give for granted that you know how to deal with that mess (this is why I divided the class in 2 parts) :) And concentrate on the scripting part.

Questions?


1. The basic command.

lsl scripting gives you a powerful and lengthy command which does "everything" related to setting media properties. llParcelMediaCommandList( [list] ); accepts a list of commands for instance:

llParcelMediaCommandList( [

           PARCEL_MEDIA_COMMAND_URL, "http://enter_your.url/here",
           PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0) ] );

Which uses as texture the first texture contained in the object inventory and sets a URL to show.

You can also use the following commands:

PARCEL_MEDIA_COMMAND_STOP     
PARCEL_MEDIA_COMMAND_PAUSE  
PARCEL_MEDIA_COMMAND_PLAY    
PARCEL_MEDIA_COMMAND_LOOP    
PARCEL_MEDIA_COMMAND_TEXTURE (key)" " (typecast to key!!!)
PARCEL_MEDIA_COMMAND_URL  " "  (254 chars!)
PARCEL_MEDIA_COMMAND_TIME   float  (to skip to a specific time in video)
PARCEL_MEDIA_COMMAND_AGENT    (key) (to apply movie to a specific avatar.. Warning it is allegedly buggy)
PARCEL_MEDIA_COMMAND_UNLOAD   (remove movie)
PARCEL_MEDIA_COMMAND_AUTO_ALIGN    
PARCEL_MEDIA_COMMAND_TYPE    " "
PARCEL_MEDIA_COMMAND_SIZE    x, y
PARCEL_MEDIA_COMMAND_DESC    " "

See http://lslwiki.net/lslwiki/wakka.php?wakka=llParcelMediaCommandList for a detailed comment of this.

Questions?


2. A very simple "web browser" listening to a channel to change URL

default
{
   state_entry()
   {
       string s=llGetInventoryName(INVENTORY_TEXTURE,0);
       key k=llGetInventoryKey(s);
       
       llSetTexture(s,0);
       llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_TEXTURE, k ]);
       
       llListen(10,"",NULL_KEY,"");
       llSay(0,"Say http://url on channel 10");
      
    }
    listen(integer channel, string name, key id, string str)
    {
       llSay(0,"Refreshing URL: "+str+"...");
       llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_AUTO_ALIGN, 1,  PARCEL_MEDIA_COMMAND_STOP, PARCEL_MEDIA_COMMAND_TYPE, "text/html", PARCEL_MEDIA_COMMAND_URL, sURL, PARCEL_MEDIA_COMMAND_PLAY ]);
       llSay(0,"Done.");
    }
}

Questions?


3. Other Usages

In connection with http_request (it is out of the scope of current class), we can do quite miracolous things like: - showing notecards (converting notecard to html and showing the html page) - we can also do an almost real browser just listening to the name of a link and asking to follow that link - we can listen to chat and have an interactive whiteboard where the content comes from the chat and many other usages.


4. Trouble shooting.

Here again I've seen a LOT of people who get confused when they have a streaming object and have to use it. Whenever they see that the screen simply remains blank they tend to be nervous and to give up or to blame the programmer or the Lindens. Here again the correct way of dealing with problems is trying to check the following:

  • is the media parcel working "manually" correctly? i.e. are you (or the owner or the officer) able to manually change the media parcel and show the movie the URL correctly?
  • is the object correctly DEEDED to the group? In case try to use it in a normally owned land to check if it is correctly working.
  • is Quicktime and media enabled on your browser?
  • are you in the correct parcel?

For instance a sequence of problems and how to solve them can be found at the following page:

http://www.slguide.com/help/

Questions?

Thanks for the participation. :)