4

How can I send Android camera video using RTP/RTSP and play it in PC(using vlc or any other player).

I googled this and found two answers:

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

How to work with it i tried it but no result :(

2) using PreviewCallback() - onPreviewFrame(data, camera) method.

by using sipdroid's (Rtppacket,Rtpsocket,sipdroidsocket) I am able to send Rtp Packets containing each frame as data and I am able to catch it via Wireshark.

But I am not able to play my packets in VLC :(

This is my 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");}
            }
        }  
});

How can I play the packets? Please give some suggestions!!!

I am totally confused:( I am new to android development!! need help from experts!!!!

B770
  • 1,272
  • 3
  • 17
  • 34
Sahadevan
  • 323
  • 4
  • 16

1 Answers1

1

I think you might need to decode the stream via decodeYUV420SP since the byte[] data is in YUV format.

Bo Persson
  • 90,663
  • 31
  • 146
  • 203
Harsh
  • 26
  • 1