Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Registrare webcam su file flv

    Ciao a tutti,
    premetto che ho pochissima esperienza su actionscript, ma mi è stato chiesto di realizzare un sistema che permetta agli utenti di un portale di registrare un piccolo videoclip attraverso la loro webcam e salvarlo per poi renderlo disponibile in visione.

    Abbiamo a disposizione e già installato il server di streaming RED5, e questo integra, per chi lo conosce, anche un esempio che fa al caso mio. L'esempio si chiama "simpleRecorder", visionabile a questo indirizzo:
    http://www.digs.jp:5080/demos/simpleRecorder.swf

    Purtroppo però questo esempio andrebbe modificato nel senso che ad esempio l'url del server red5 e dell'applicativo che si occupa dello streaming non posso farlo inserire all'utente, oltre al fatto che i pulsanti per lo "start recording" e "stop recording" andrebbero modificati per renderli più "intuitivi".

    Di questo esempio non c'è il .fla che mi permetterebbe magari la modifica e quindi mi sono armato di pazienza(anche se la sto perdendo) e sto provando a farlo, con scarsissimi risultati.

    posto il codice actionscript cosicchè qualcuno magari mi può dare qualche dritta:

    codice:
    // Oggetto necessario per instaurare la connessione al server 
    var nc:NetConnection=new NetConnection();  
    // Stream dedicato alla pubblicazione del flusso sul server 
    var out_ns:NetStream; 
    // Crea un oggetto Camera 
    var publisher_cam:Camera;  
    // Crea un oggetto Microfono 
    var publisher_mic:Microphone;  
    var idStream:String; 
    var streamingServer:String; 
    var streamingStarted:Boolean = false;  
    
    /*** GESTIONE EVENTI PULSANTI ***/  
    startRecording.onPress = function(){ 	
    doPublish("1");	 
    }  
    stopRecording.onPress = function(){ 	
    stopPublish("2"); 
    }  
    
    init(); 
    /*** FINE GESTIONE EVENTI PULSANTI ***/  
    function doConnect(){ 	
    status_txt.text="Connecting to "+ streamingServer +"...\n";
    nc.connect(streamingServer); 
    }  
    
    function doPublish(idStream:String){ 	
    publishStream(idStream); 
    }  
    
    function stopPublish(idStream:String){ 	
    stopPublishStream(idStream); 
    }  
    
    /* PUBBLICA LO USER STREAM SUL SERVER DI STREAMING */ 
    function publishStream(idStream:String){ 	
    status_txt.text+="[INFO] Publishing Started for stream" + idStream + "\n"; 	 	
    // Collego la web cam all'oggetto  	
    // video presente sullo stage 	
    previewVideo.attachVideo(publisher_cam);	 	 	
    //Inserisco l'audio al flusso 	
    out_ns.attachAudio(publisher_mic); 	 	
    // Inserisco il video al flusso 	
    out_ns.attachVideo(publisher_cam); 	 	
    // Pubblico sul server Red5  	
    // il flusso audiovisivo  	
    out_ns.publish("stream"+idStream); 	 	
    startRecording.enabled = false; 	
    stopRecording.enabled = true; 	 	
    out_ns.onStatus = function(info){
    if(info.code!="NetStream.Publish.BadName"){ 			
    streamingStarted = true;
    status_txt.text+="[OK] Trasmissione avviata";
    }else{
    status_txt.text+="[INFO]" + info.code + "\n";
    } 		 	
    } 	
    }  
    
    /* PUBBLICA LO USER STREAM SUL SERVER DI STREAMING */ 
    function stopPublishStream(idStream:String){ 	
    status_txt.text+="[INFO] Stopping stream" + idStream + "\n";
    previewVideo.attachVideo(null); 	
    out_ns.attachAudio(null); 	
    out_ns.attachVideo(null); 	
    // Pubblico sul server Red5  	
    // il flusso audiovisivo  	
    out_ns.close("stream"+idStream); 	 	
    stopRecording.enabled = false; 	
    startRecording.enabled = true; 
    } 
    
    function init(id:String){ 	
    idStream = id; 	
    streamingServer="rtmp://mystreamingRED5Server/oflaDemo"; 	
    width_txt.text=250; 	
    height_txt.text=250; 	 	
    doConnect(); 
    }    
    
    nc.onStatus = function(info){ 		
    status_txt.text+="[INFO]" + info.code + "\n"; 		
    // Se l'instaurazione della connessione è andata a buon fine
    if(info.code=="NetConnection.Connect.Success"){ 				
    //Inizializzo lo stream in uscita 				
    out_ns = new NetStream(nc);
    status_txt.text+="[INFO] Connected to Red5 Streaming Server" + "\n";
    
    // Abilito il pulsante "Start recording" 				
    startRecording.enabled=true;
    // Imposto le proprietà del video trasmesso dalla WebCam
    publisher_cam.setMode(width_txt.text, height_txt.text);
    // Creo un riferimento alla videocamera
    publisher_cam = Camera.get();
    // Creo un riferimento al microfono
    publisher_mic = Microphone.get();
    }else{ 			
    status_txt.text+="[ERROR]" + info.code; 		
    } 
    }    
    /* GESTIONE CONNESSIONE AL SERVER */
    Rimango in attesa che qualcuno di buona volontà abbia l'intenzione e la pazienza di leggere...

  2. #2
    Mmm, sessuno degli utenti actionscript ha mai avuto questa necessità/sviluppato un applicativo simile?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.