2011-05-11 6 views
4

Comment puis-je envoyer une vidéo de caméra Android en utilisant RTP/RTSP et la lire sur un PC (en utilisant vlc ou tout autre lecteur).Appareil photo Android RTSP/RTP Stream?

Je googlé cela et trouvé deux réponses:

1) en utilisant mediarecorder (http://sipdroid.org/ en utilisant VideoCamera.java)

Comment travailler avec elle je l'ai essayé, mais aucun résultat :(

2) en utilisant la méthode PreviewCallback() - onPreviewFrame (data, camera). En utilisant sipdroid (Rtppacket, Rtpsocket, sipdroidsocket) je peux envoyer des paquets Rtp contenant chaque trame en tant que données et je suis capable de l'attraper via Wireshark.

Mais je ne suis pas en mesure de jouer mes paquets dans VLC :(

Ceci est mon code:

mCamera.setPreviewCallback(new PreviewCallback() { 

     public void onPreviewFrame(byte[] data, Camera camera) { 
      int width= 320; 
      int height=240; 
      eth=getInterfaces(); 
      Log.v("Connected to ","Ethernet"+eth);  
      if(eth!=null){ 
      try{       
      InetAddress serverAddr = InetAddress.getByName("IP Address of My PC");    
      Log.v("trying to ","connect with"+serverAddr);     
      SipdroidSocket soc = new SipdroidSocket(9954); 
      Log.v("trying to ","connect with Sipdroid Socket");     
      soc.connect(serverAddr, 9954);        
      Log.v("Socket ","Connected");        
      RtpPacket rtpp=new RtpPacket(data,height);    
      //rtpp.setPayloadType(125);     
      Log.v("RTPPacket","Created");     
      RtpSocket rtps= new RtpSocket(soc,serverAddr,9954);      
      Log.v("RTPSocket","Created");        
      rtps.send(rtpp);     
      Log.v("Packet","Sent");    

      } 

      catch(Exception e){e.printStackTrace();Log.v(TAG, "Socket");} 
      } 
     } 
}); 

Comment puis-je lire les paquets S'il vous plaît donner quelques suggestions !!!

?

Je suis totalement confus :(Je suis nouveau pour le développement android !! besoin de l'aide des experts !!!!

+0

L'avez-vous fait fonctionner? – B770

Répondre

1

Je pense que vous pourriez avoir besoin de décoder le flux via decodeYUV420SP, car les données de byte [] est en Format YUV