Камера Android RTSP / RTP Stream? - PullRequest
4 голосов
/ 11 мая 2011

Как отправить видео с камеры Android с помощью RTP / RTSP и воспроизвести его на ПК (с помощью vlc или любого другого проигрывателя).

Я гуглил это и нашел два ответа:

1) с использованием медиа-рекордера (http://sipdroid.org/ с использованием VideoCamera.java)

Как с этим работать Я пробовал, но безрезультатно: (

2) с использованием метода PreviewCallback () - onPreviewFrame (данные, камера).

с помощью sipdroid's (Rtppacket, Rtpsocket, sipdroidsocket) я могу отправлять Rtp-пакеты, содержащие каждый кадр, в качестве данных, и я могу перехватить его через Wireshark.

Но я не могу воспроизвести свои пакеты в VLC: (

Это мой код:

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

Как я могу воспроизвести пакеты? Пожалуйста, дайте несколько предложений !!!

Я полностью сбит с толку :( Я новичок в разработке для Android !! нужна помощь экспертов !!!!

1 Ответ

1 голос
/ 01 сентября 2011

Я думаю, вам может понадобиться декодировать поток с помощью decodeYUV420SP, поскольку данные byte [] имеют формат YUV.

...