功能如题。参考了此文:
http://blog.csdn.net/zblue78/article/details/6083374
本人觉得上文中的代码还有些bug,而且不是针对H.263,所以自己编写了一个。本工程除了截取H263视频帧外的代码仍不完善,待以后有时间的时候继续修改。还有就是代码中实现了RTP的包头编写,但payload部分并不是按照RFC2190来组织,少了一个payload header的实现。
完整的Android工程在此下载:
http://download.csdn.net/detail/qwertyuj/3865413
下面是实现视频帧截取的主要代码:
public void run() {
final int READ_SIZE = 1024; //bytes count for every reading from 'inputStreamForReceive'
final int BUFFER_SIZE_RECEIVE = READ_SIZE * 128;
final int BUFFER_SIZE_RTP = READ_SIZE * 20;
stateMachineOfFrameReceiving STM_Recv = stateMachineOfFrameReceiving.FRAMEHEAD_NOTFOUND;
int i;
byte[] PSC_checkArr = new byte[3];
byte[] RTP_pocket_buffer = new byte[BUFFER_SIZE_RTP];
byte[] bufferForReceive = new byte[BUFFER_SIZE_RECEIVE]; //64K
int num = 0;
InputStream inputStreamForReceive = null;
//udp
fin