Android 相机 RTSP/RTP 流? [英] Android Camera RTSP/RTP Stream?
问题描述
如何使用 RTP/RTSP 发送 Android 相机视频并在 PC 中播放(使用 vlc 或任何其他播放器).
How can I send Android camera video using RTP/RTSP and play it in PC(using vlc or any other player).
我google了一下,找到了两个答案:
I googled this and found two answers:
1) 使用 mediarecorder(http://sipdroid.org/ 使用 VideoCamera.java)
1) using mediarecorder (http://sipdroid.org/ using VideoCamera.java)
如何使用它我试过但没有结果:(
How to work with it i tried it but no result :(
2) 使用 PreviewCallback() - onPreviewFrame(data, camera) 方法.
2) using PreviewCallback() - onPreviewFrame(data, camera) method.
通过使用 sipdroid 的 (Rtppacket,Rtpsocket,sipdroidsocket),我可以发送包含每个帧的 Rtp 数据包作为数据,并且我可以通过 Wireshark 捕获它.
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.
但我无法在 VLC 中播放我的数据包:(
But I am not able to play my packets in 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");}
}
}
});
如何播放数据包?请给点建议!!!
How can I play the packets? Please give some suggestions!!!
我完全糊涂了:(我是android开发的新手!!需要专家的帮助!!!
I am totally confused:( I am new to android development!! need help from experts!!!!
推荐答案
我认为您可能需要通过 decodeYUV420SP 解码流,因为 byte[] 数据是 YUV 格式.
I think you might need to decode the stream via decodeYUV420SP since the byte[] data is in YUV format.
这篇关于Android 相机 RTSP/RTP 流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!