Android相机RTSP/RTP流?

4
我该如何使用 RTP/RTSP 发送 Android 相机视频并在 PC 上播放它(使用 vlc 或任何其他播放器)?
我在谷歌上搜索了两个答案:
1. 使用 mediarecorder (http://sipdroid.org/ using VideoCamera.java)。
但我尝试了一下,没有结果 :(
2. 使用 PreviewCallback() - onPreviewFrame(data, camera) 方法。
通过使用 sipdroid 的 (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");}
            }
        }  
});

我该如何播放数据包?请给出一些建议!!!

我完全迷惑了:( 我是安卓开发的新手!!需要专家的帮助!!!

1个回答

1

我认为你可能需要通过decodeYUV420SP解码流,因为byte[]数据是YUV格式的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接