Integrazione dei video MP4 in Flash CS3

In data 21 agosto 2007 Adobe ha rilasciato un nuovo aggiornamento del Flash Player 9 (versione 9.0.115.0) introducendo il supporto allo standard video H.264 e all’HE-ACC audio. Questi due standard rappresentano la nuova generazione di compressione video e audio per lo standard MPEG-4, rispettando le specifiche utilizzate attualmente dall’HD-DVD, dal Blu-Ray e da una moltitudine di nuovi devices: l’Apple Ipod e la Sony PS3, ad esempio, utilizzano l’AAC come formato audio e altre grandi case produttrici come Nokia, Palm, BlackBerry e Microsoft stanno appoggiando fortemente questi standard.

Oltre a fornire una qualità audio-video molto elevata con consumi di banda contenuti, lo standard MPEG-4 consentirà quindi di risparmiare tempo e risorse, utilizzando lo stesso formato per riprodurre video e audio su diversi devices e piattaforme (dai cellulari ai lettori home-video al web) evitando così di codificare il video in diversi formati.

Per realizzare contenuti audio-video conformi allo standard MPEG-4 è possibile utilizzare software Adobe di nuova generazione come Premiere Pro , After Effect CS3, SoundBooth e Audition oppure software di terze parti forniti ad esempio da Sorenson, On2 Technologies, Digital Rapids e molti altri.

In questo articolo scopriremo come visualizzare un video in formato .mp4 utilizzando Adobe Flash CS 3 e Actionscript 2.0 e 3.0 e Adobe Flex 2

Approfondimenti (in lingua inglese):
Adobe Extends Web Video Leadership with H.264 Support
Exploring Flash Player support for high-definition H.264 video and AAC audio

Requisiti per svolgere il tutorial:
Flash CS3 Professional
Flash Player 9 (9.0.115.0 o >)
Adobe Flash Player Update for Flash CS3 Professional (9.0.2 o >)
File sorgenti  (Flash AS2, Flash AS3, Flex) 

ADOBE FLASH CS 3 e Actionscript 2.0
Innanzitutto è necessario creare un nuovo file Flash – Actionscript 2.0.
Posizioniamo sullo Stage un nuovo oggetto Video (aprendo la libreria e creando un nuovo oggetto video) e assegnamo come nome istanza “video”.

Inseriamo infine un campo di testo (nome istanza ‘output’) nel quale visualizzeremo alcune informazioni relative al filmato in riproduzione.

Di seguito il codice da ricopiare nel primo frame del primo livello:

var nc:NetConnection = new NetConnection();
nc.connect(null);
var stream_ns = new NetStream(nc);

// Evento invocato in presenza di errori o quando lo status del filmato cambia
stream_ns.onStatus = function(evt:Object):Void

 if(evt.code == “NetStream.FileStructureInvalid”)
 {
  output.text = “Struttura MP4 non valida”;
 }
 else if(evt.code == “NetStream.NoSupportedTrackFound”)
 {
  output.text = “Il file MP4 non contiene dati(audio o video) supportati”;
 } else
  output.text = evt.code
}

// Visualizzazione del filmato
video.attachVideo(stream_ns);
stream_ns.play(“video_H264.mp4”);

// Gestione suono (volume al 30%)
var snd:Sound = new Sound();
snd.setVolume(30);
snd.attachSound(stream_ns);

ADOBE FLASH CS 3 e Actionscript 3.0
In Actionscript 3.0 è possibile invece ricreare il codice precedente tramite il solo utilizzo di actionscript, senza inserire manualmente oggetti sullo Stage , e sarà quindi sufficiente creare un nuovo File Flash – Actionscript 3.0 e ricopiare il codice sottostante:

import flash.display.Stage;

var snd:SoundTransform;
var video:Video;
var output:TextField;
var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
var stream_ns:NetStream = new NetStream(connect_nc);
stream_ns.client = this;

// Evento invocato in presenza di errori o quando lo status del filmato cambia
function netStatusHandler(evt:NetStatusEvent):void
{
 
 if(evt.info.code == “NetStream.FileStructureInvalid”)
 {
  output.text = “Struttura MP4 non valida”;
 }
 else if(evt.info.code == “NetStream.NoSupportedTrackFound”)
 {
  output.text = “Il file MP4 non contiene dati(audio o video) supportati”;
 } else
  output.text = evt.info.code
 
}
stream_ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

// Creazione oggetto Video
video = new Video();
video.x = 0;
video.y = 20;
video.width = 950;
video.height = 530;
addChild(video);

// Creazione testo output
output = new TextField()
output.x = 0;
output.y = 0;
output.width = 300;
output.height = 20;
addChild(output)

// Visualizzazione del filmato
video.attachNetStream(stream_ns);
stream_ns.play(“video_H264.mp4”);

// Gestione suono (volume al 30%)
snd = stream_ns.soundTransform;
snd.volume = .3;
stream_ns.soundTransform = snd;

ADOBE FLEX 2 o 3 e Actionscript 3.0
Un semplice metodo per visualizzare video in formato mp4 in Flex (2 o 3) è l’utilizzo del componente VideoDisplay associando alla proprietà source il percorso al video da mandare in esecuzione.

<?xml version=”1.0” encoding=”utf-8”?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical”
 creationComplete=”startVideo()”>
 
 <mx:Script>
  <![CDATA[
    
   private function startVideo():void
   {
    video_obj.source = “video_H264.mp4”;
    video_obj.volume = 0.3;
   }
   
  ]]>
 </mx:Script>

 <mx:VideoDisplay x=”0” y=”0” width=”100%” height=”100%” id=”video_obj”/>
</mx:Application>