久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

java、android可用的rtp封包解包h264案例

瀏覽:5日期:2022-08-23 09:19:57

做直播,音視頻通訊。經(jīng)常需要通過rtp協(xié)議封裝音視頻數(shù)據(jù)來發(fā)送。網(wǎng)上找到的基本都是c或c++版本的,沒有JAVA版本的。就算千辛萬苦找到一篇java版本的,要么不能用,要么就是一些片段,要么有封包沒解包。

很是蛋疼,本人也是這樣,剛開始不太熟悉rtp協(xié)議,不太明白怎么封包組包,痛苦了幾天,終于搞出來了,分享給有需要的朋友,希望對你們有所幫助。

直接看代碼吧。不多說了。

首先看看關(guān)鍵類:

package com.imsdk.socket.udp.codec; import android.os.SystemClock;import android.util.Log; import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.math.BigDecimal;import java.util.Random;import java.util.concurrent.Semaphore; public class RtspPacketEncode { private static final String TAG = 'RtspPacketEncode'; //------------視頻轉(zhuǎn)換數(shù)據(jù)監(jiān)聽----------- public interface H264ToRtpLinsener { void h264ToRtpResponse(byte[] out, int len); } private H264ToRtpLinsener h264ToRtpLinsener; //執(zhí)行回調(diào) private void exceuteH264ToRtpLinsener(byte[] out, int len) { if (this.h264ToRtpLinsener != null) { h264ToRtpLinsener.h264ToRtpResponse(out, len); } } // -------視頻-------- private int framerate = 10; private byte[] sendbuf = new byte[1500]; private int packageSize = 1400; private int seq_num = 0; private int timestamp_increse = (int) (90000.0 / framerate);//framerate是幀率 private int ts_current = 0; private int bytes = 0; // -------視頻END-------- public RtspPacketEncode(H264ToRtpLinsener h264ToRtpLinsener) { this.h264ToRtpLinsener = h264ToRtpLinsener; } /** * 一幀一幀的RTP封包 * * @param r * @return */ public void h264ToRtp(byte[] r, int h264len) throws Exception { CalculateUtil.memset(sendbuf, 0, 1500); sendbuf[1] = (byte) (sendbuf[1] | 96); // 負(fù)載類型號(hào)96,其值為:01100000 sendbuf[0] = (byte) (sendbuf[0] | 0x80); // 版本號(hào),此版本固定為2 sendbuf[1] = (byte) (sendbuf[1] & 254); //標(biāo)志位,由具體協(xié)議規(guī)定其值,其值為:01100000 sendbuf[11] = 10;//隨機(jī)指定10,并在本RTP回話中全局唯一,java默認(rèn)采用網(wǎng)絡(luò)字節(jié)序號(hào) 不用轉(zhuǎn)換(同源標(biāo)識(shí)符的最后一個(gè)字節(jié)) if (h264len <= packageSize) { sendbuf[1] = (byte) (sendbuf[1] | 0x80); // 設(shè)置rtp M位為1,其值為:11100000,分包的最后一片,M位(第一位)為0,后7位是十進(jìn)制的96,表示負(fù)載類型 sendbuf[3] = (byte) seq_num++; System.arraycopy(CalculateUtil.intToByte(seq_num++), 0, sendbuf, 2, 2);//send[2]和send[3]為序列號(hào),共兩位 {// java默認(rèn)的網(wǎng)絡(luò)字節(jié)序是大端字節(jié)序(無論在什么平臺(tái)上),因?yàn)閣indows為小字節(jié)序,所以必須倒序/**參考: * http://blog.csdn.net/u011068702/article/details/51857557 * http://cpjsjxy.iteye.com/blog/1591261 */byte temp = 0;temp = sendbuf[3];sendbuf[3] = sendbuf[2];sendbuf[2] = temp; } // FU-A HEADER, 并將這個(gè)HEADER填入sendbuf[12] sendbuf[12] = (byte) (sendbuf[12] | ((byte) (r[0] & 0x80)) << 7); sendbuf[12] = (byte) (sendbuf[12] | ((byte) ((r[0] & 0x60) >> 5)) << 5); sendbuf[12] = (byte) (sendbuf[12] | ((byte) (r[0] & 0x1f))); // 同理將sendbuf[13]賦給nalu_payload //NALU頭已經(jīng)寫到sendbuf[12]中,接下來則存放的是NAL的第一個(gè)字節(jié)之后的數(shù)據(jù)。所以從r的第二個(gè)字節(jié)開始復(fù)制 System.arraycopy(r, 1, sendbuf, 13, h264len - 1); ts_current = ts_current + timestamp_increse; System.arraycopy(CalculateUtil.intToByte(ts_current), 0, sendbuf, 4, 4);//序列號(hào)接下來是時(shí)間戳,4個(gè)字節(jié),存儲(chǔ)后也需要倒序 {byte temp = 0;temp = sendbuf[4];sendbuf[4] = sendbuf[7];sendbuf[7] = temp;temp = sendbuf[5];sendbuf[5] = sendbuf[6];sendbuf[6] = temp; } bytes = h264len + 12;//獲sendbuf的長度,為nalu的長度(包含nalu頭但取出起始前綴,加上rtp_header固定長度12個(gè)字節(jié)) //client.send(new DatagramPacket(sendbuf, bytes, addr, port/*9200*/)); //send(sendbuf,bytes); exceuteH264ToRtpLinsener(sendbuf, bytes); } else if (h264len > packageSize) { int k = 0, l = 0; k = h264len / packageSize; l = h264len % packageSize; int t = 0; ts_current = ts_current + timestamp_increse; System.arraycopy(CalculateUtil.intToByte(ts_current), 0, sendbuf, 4, 4);//時(shí)間戳,并且倒序 {byte temp = 0;temp = sendbuf[4];sendbuf[4] = sendbuf[7];sendbuf[7] = temp;temp = sendbuf[5];sendbuf[5] = sendbuf[6];sendbuf[6] = temp; } while (t <= k) {System.arraycopy(CalculateUtil.intToByte(seq_num++), 0, sendbuf, 2, 2);//序列號(hào),并且倒序{ byte temp = 0; temp = sendbuf[3]; sendbuf[3] = sendbuf[2]; sendbuf[2] = temp;}if (t == 0) {//分包的第一片 sendbuf[1] = (byte) (sendbuf[1] & 0x7F);//其值為:01100000,不是最后一片,M位(第一位)設(shè)為0 //FU indicator,一個(gè)字節(jié),緊接在RTP header之后,包括F,NRI,header sendbuf[12] = (byte) (sendbuf[12] | ((byte) (r[0] & 0x80)) << 7);//禁止位,為0 sendbuf[12] = (byte) (sendbuf[12] | ((byte) ((r[0] & 0x60) >> 5)) << 5);//NRI,表示包的重要性 sendbuf[12] = (byte) (sendbuf[12] | (byte) (28));//TYPE,表示此FU-A包為什么類型,一般此處為28 //FU header,一個(gè)字節(jié),S,E,R,TYPE sendbuf[13] = (byte) (sendbuf[13] & 0xBF);//E=0,表示是否為最后一個(gè)包,是則為1 sendbuf[13] = (byte) (sendbuf[13] & 0xDF);//R=0,保留位,必須設(shè)置為0 sendbuf[13] = (byte) (sendbuf[13] | 0x80);//S=1,表示是否為第一個(gè)包,是則為1 sendbuf[13] = (byte) (sendbuf[13] | ((byte) (r[0] & 0x1f)));//TYPE,即NALU頭對應(yīng)的TYPE //將除去NALU頭剩下的NALU數(shù)據(jù)寫入sendbuf的第14個(gè)字節(jié)之后。前14個(gè)字節(jié)包括:12字節(jié)的RTP Header,F(xiàn)U indicator,F(xiàn)U header System.arraycopy(r, 1, sendbuf, 14, packageSize); //client.send(new DatagramPacket(sendbuf, packageSize + 14, addr, port/*9200*/)); exceuteH264ToRtpLinsener(sendbuf, packageSize + 14); t++;} else if (t == k) {//分片的最后一片 sendbuf[1] = (byte) (sendbuf[1] | 0x80); sendbuf[12] = (byte) (sendbuf[12] | ((byte) (r[0] & 0x80)) << 7); sendbuf[12] = (byte) (sendbuf[12] | ((byte) ((r[0] & 0x60) >> 5)) << 5); sendbuf[12] = (byte) (sendbuf[12] | (byte) (28)); sendbuf[13] = (byte) (sendbuf[13] & 0xDF); //R=0,保留位必須設(shè)為0 sendbuf[13] = (byte) (sendbuf[13] & 0x7F); //S=0,不是第一個(gè)包 sendbuf[13] = (byte) (sendbuf[13] | 0x40); //E=1,是最后一個(gè)包 sendbuf[13] = (byte) (sendbuf[13] | ((byte) (r[0] & 0x1f)));//NALU頭對應(yīng)的type if (0 != l) {//如果不能整除,則有剩下的包,執(zhí)行此代碼。如果包大小恰好是1400的倍數(shù),不執(zhí)行此代碼。 System.arraycopy(r, t * packageSize + 1, sendbuf, 14, l - 1);//l-1,不包含NALU頭 bytes = l - 1 + 14; //bytes=l-1+14; //client.send(new DatagramPacket(sendbuf, bytes, addr, port/*9200*/)); //send(sendbuf,bytes); exceuteH264ToRtpLinsener(sendbuf, bytes); }//pl t++;} else if (t < k && 0 != t) {//既不是第一片,又不是最后一片的包 sendbuf[1] = (byte) (sendbuf[1] & 0x7F); //M=0,其值為:01100000,不是最后一片,M位(第一位)設(shè)為0. sendbuf[12] = (byte) (sendbuf[12] | ((byte) (r[0] & 0x80)) << 7); sendbuf[12] = (byte) (sendbuf[12] | ((byte) ((r[0] & 0x60) >> 5)) << 5); sendbuf[12] = (byte) (sendbuf[12] | (byte) (28)); sendbuf[13] = (byte) (sendbuf[13] & 0xDF); //R=0,保留位必須設(shè)為0 sendbuf[13] = (byte) (sendbuf[13] & 0x7F); //S=0,不是第一個(gè)包 sendbuf[13] = (byte) (sendbuf[13] & 0xBF); //E=0,不是最后一個(gè)包 sendbuf[13] = (byte) (sendbuf[13] | ((byte) (r[0] & 0x1f)));//NALU頭對應(yīng)的type System.arraycopy(r, t * packageSize + 1, sendbuf, 14, packageSize);//不包含NALU頭 //client.send(new DatagramPacket(sendbuf, packageSize + 14, addr, port/*9200*/)); //send(sendbuf,1414); exceuteH264ToRtpLinsener(sendbuf, packageSize + 14); t++;} } } }}

計(jì)算類:

package com.imsdk.socket.udp.codec; /** * 計(jì)算類 * * @author kokJuis */public class CalculateUtil { /** * 注釋:int到字節(jié)數(shù)組的轉(zhuǎn)換! * * @param number * @return */ public static byte[] intToByte(int number) { int temp = number; byte[] b = new byte[4]; for (int i = 0; i < b.length; i++) { b[i] = new Integer(temp & 0xff).byteValue();// 將最低位保存在最低位 temp = temp >> 8; // 向右移8位 } return b; } public static int byteToInt(byte b) { //Java 總是把 byte 當(dāng)做有符處理;我們可以通過將其和 0xFF 進(jìn)行二進(jìn)制與得到它的無符值 return b & 0xFF; } //byte 數(shù)組與 int 的相互轉(zhuǎn)換 public static int byteArrayToInt(byte[] b) { return b[3] & 0xFF |(b[2] & 0xFF) << 8 |(b[1] & 0xFF) << 16 |(b[0] & 0xFF) << 24; } public static byte[] intToByteArray(int a) { return new byte[] {(byte) ((a >> 24) & 0xFF),(byte) ((a >> 16) & 0xFF),(byte) ((a >> 8) & 0xFF),(byte) (a & 0xFF) }; } // 清空buf的值 public static void memset(byte[] buf, int value, int size) { for (int i = 0; i < size; i++) { buf[i] = (byte) value; } } public static void dump(NALU_t n) { System.out.println('len: ' + n.len + ' nal_unit_type:' + n.nal_unit_type); } // 判斷是否為0x000001,如果是返回1 public static int FindStartCode2(byte[] Buf, int off) { if (Buf[0 + off] != 0 || Buf[1 + off] != 0 || Buf[2 + off] != 1) return 0; else return 1; } // 判斷是否為0x00000001,如果是返回1 public static int FindStartCode3(byte[] Buf, int off) { if (Buf[0 + off] != 0 || Buf[1 + off] != 0 || Buf[2 + off] != 0 || Buf[3 + off] != 1) return 0; else return 1; } }

使用的話,實(shí)現(xiàn)監(jiān)聽就可以了:

@Override public void h264ToRtpResponse(byte[] out, int len) { //h264轉(zhuǎn)rtp監(jiān)聽 if (out != null) { Log.v(TAG, '---發(fā)送數(shù)據(jù)---' + len); netSendTask.pushBuf(out, len); } } rtspPacketEncode.h264ToRtp(h264, ret);

組包類:

package com.imsdk.socket.udp.codec; public class RtspPacketDecode { private byte[] h264Buffer; private int h264Len = 0; private int h264Pos = 0; private static final byte[] start_code = {0, 0, 0, 1}; // h264 start code //傳入視頻的分辨率 public RtspPacketDecode(int width, int height) { h264Buffer = new byte[getYuvBuffer(width, height)]; } /** * RTP解包H264 * * @param rtpData * @return */ public byte[] rtp2h264(byte[] rtpData, int rtpLen) { int fu_header_len = 12; // FU-Header長度為12字節(jié) int extension = (rtpData[0] & (1 << 4)); // X: 擴(kuò)展為是否為1 if (extension > 0) { // 計(jì)算擴(kuò)展頭的長度 int extLen = (rtpData[12] << 24) + (rtpData[13] << 16) + (rtpData[14] << 8) + rtpData[15]; fu_header_len += (extLen + 1) * 4; } // 解析FU-indicator byte indicatorType = (byte) (CalculateUtil.byteToInt(rtpData[fu_header_len]) & 0x1f); // 取出low 5 bit 則為FU-indicator type byte nri = (byte) ((CalculateUtil.byteToInt(rtpData[fu_header_len]) >> 5) & 0x03); // 取出h2bit and h3bit byte f = (byte) (CalculateUtil.byteToInt(rtpData[fu_header_len]) >> 7);// 取出h1bit byte h264_nal_header; byte fu_header; if (indicatorType == 28) { // FU-A fu_header = rtpData[fu_header_len + 1]; byte s = (byte) (rtpData[fu_header_len + 1] & 0x80); byte e = (byte) (rtpData[fu_header_len + 1] & 0x40); if (e == 64) { // end of fu-a//ZOLogUtil.d('RtpParser', 'end of fu-a.....;;;');byte[] temp = new byte[rtpLen - (fu_header_len + 2)];System.arraycopy(rtpData, fu_header_len + 2, temp, 0, temp.length);writeData2Buffer(temp, temp.length);if (h264Pos >= 0) { h264Pos = -1; if (h264Len > 0) { byte[] h264Data = new byte[h264Len]; System.arraycopy(h264Buffer, 0, h264Data, 0, h264Len); h264Len = 0; return h264Data; }} } else if (s == -128) { // start of fu-ah264Pos = 0; // 指針歸0writeData2Buffer(start_code, 4); // 寫入H264起始碼h264_nal_header = (byte) ((fu_header & 0x1f) | (nri << 5) | (f << 7));writeData2Buffer(new byte[]{h264_nal_header}, 1);byte[] temp = new byte[rtpLen - (fu_header_len + 2)];System.arraycopy(rtpData, fu_header_len + 2, temp, 0, temp.length); // 負(fù)載數(shù)據(jù)writeData2Buffer(temp, temp.length); } else {byte[] temp = new byte[rtpLen - (fu_header_len + 2)];System.arraycopy(rtpData, fu_header_len + 2, temp, 0, temp.length);writeData2Buffer(temp, temp.length); } } else { // nalu h264Pos = 0; writeData2Buffer(start_code, 4); byte[] temp = new byte[rtpLen - fu_header_len]; System.arraycopy(rtpData, fu_header_len, temp, 0, temp.length); writeData2Buffer(temp, temp.length); if (h264Pos >= 0) {h264Pos = -1;if (h264Len > 0) { byte[] h264Data = new byte[h264Len]; System.arraycopy(h264Buffer, 0, h264Data, 0, h264Len); h264Len = 0; return h264Data;} } } return null; } private void writeData2Buffer(byte[] data, int len) { if (h264Pos >= 0) { System.arraycopy(data, 0, h264Buffer, h264Pos, len); h264Pos += len; h264Len += len; } } //計(jì)算h264大小 public int getYuvBuffer(int width, int height) { // stride = ALIGN(width, 16) int stride = (int) Math.ceil(width / 16.0) * 16; // y_size = stride * height int y_size = stride * height; // c_stride = ALIGN(stride/2, 16) int c_stride = (int) Math.ceil(width / 32.0) * 16; // c_size = c_stride * height/2 int c_size = c_stride * height / 2; // size = y_size + c_size * 2 return y_size + c_size * 2; } }

使用:

byte[] tmp = rtspPacketDecode.rtp2h264(out,len);

以上這篇java、android可用的rtp封包解包h264案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 一区二区三区久久久久久 | 久久精品一二三四 | 午夜精品久久久久久久久久久久 | 午夜激情免费在线观看 | 国产欧美日韩一区 | www久久精品| 国产精品影院在线观看 | 蜜桃精品久久久久久久免费影院 | 激情一区二区三区 | h小视频 | 狠狠色综合久久丁香婷婷 | 日韩电影在线看 | 九九在线视频 | 五月婷婷丁香 | 久久电影一区 | 欧美xxxx片 | 美女久久一区 | av超碰| 久久精品国产一区 | www.国产精品 | 午夜成人免费电影 | 九九热精品视频 | 日韩精品一区二区三区四区五区 | 黄色一级大片在线免费看产 | 亚洲福利二区 | 日本不卡一区二区三区在线观看 | 久久美女视频 | av成人在线观看 | 美日韩精品视频 | 日韩精品久久 | 天天夜夜操 | av影片在线播放 | 亚洲精品自拍视频 | 中文日韩av | 日本在线黄色 | 国产欧美日韩在线观看 | 国产在线不卡视频 | 黄色一级在线播放 | 午夜电影合集 | 在线播放亚洲 | 日本私人网站在线观看 | 中文字幕在线免费视频 | 日韩欧美二区 | 最新超碰 | 91精品国产91久久久久久不卡 | 成人免费视频网站在线观看 | 亚洲精品国产偷自在线观看 | 欧美亚洲国产一区 | 婷婷久 | 日韩一日| 国产精品久久久久久久久免费桃花 | 色网站视频 | 亚洲欧洲无码一区二区三区 | 亚洲精品第一区在线观看 | 免费国产一区二区 | 日本一区二区中文字幕 | 日韩精品一区二区三区第95 | 日本久久精品一区 | 永久91嫩草亚洲精品人人 | 精品一区二区三区免费 | 精品国产污网站污在线观看15 | 一级黄色录像毛片 | 久久精品一区二区三区四区 | 亚洲中字在线 | 亚洲视频在线观看免费 | av性色| 91久久综合亚洲鲁鲁五月天 | 久热九九 | 91短视频版在线观看www免费 | 天堂中文资源在线 | 在线视频成人永久免费 | 综合久久综合久久 | 亚洲一区二区高清视频 | 中文字幕亚洲一区二区va在线 | 羞羞的视频网站 | 2018天天操夜夜操 | 性高湖久久久久久久久aaaaa | 超碰免费在 | 精品国产黄a∨片高清在线 99热婷婷 | 国产精品永久免费 | 欧美一级片在线 | 国产九九在线观看 | 国产精品视频免费播放 | 高清日韩av| av黄色在线| 天堂在线一区二区 | 欧美精品一区二区三区在线 | 国产在线免费 | 国产精品一区二区视频 | 日韩中文字幕免费在线 | 欧美大片免费高清观看 | 人和拘一级毛片 | 日韩在线中文 | 久久亚洲一区 | 91精品福利 | 在线观看国产视频 | 国产精品自拍一区 | 精品国精品国产自在久不卡 | 亚洲精品一区中文字幕乱码 | 欧美一级欧美三级在线观看 | 国产成人精品综合 | 亚洲综合欧美日韩 | 国产一区二区精品在线观看 | 久久一精品 | 成人在线免费 | 综合婷婷 | 精品久久久久久久 | 杨门女将寡妇一级裸片看 | 亚洲精品视频在线播放 | 国产免费视频 | 午夜大片在线观看 | 在线观看亚洲一区二区三区 | 国产第一区在线观看 | 国产精品一区二区三区久久 | 国产精品久久久久久久久久免费 | 久久亚洲精品中文字幕 | 在线精品国产一区二区三区 | 国产精品99久久久久久久久久久久 | 久久久www| 日韩欧美国产精品综合嫩v 亚洲欧美日韩在线 | 精品国产一区二区三区在线观看 | 成人免费在线视频播放 | 精品国偷自产国产一区 | av在线影院| 久久99久久久久久 | 欧美在线a | 欧美亚洲一级 | 日韩有码一区 | 亚洲男人的天堂网站 | 亚洲一区在线日韩在线深爱 | 女人夜夜春高潮爽a∨片传媒 | 毛片网站大全 | 亚洲a网| 日日干天天操 | 在线免费视频成人 | 亚洲天堂成人在线 | 久久麻豆视频 | 国产av毛片| 国产在线区 | 综合久久综合 | 日韩免费视频中文字幕 | 在线播放91 | 中国一级大毛片 | 亚洲欧洲精品成人久久奇米网 | 国产成人片| 看av网站| 天天操综合网 | 日本电影网址 | 久久国产精品免费一区二区三区 | 国产黑丝在线 | 激情开心成人网 | 国产日韩一区二区三区 | 干中文字幕 | 亚洲欧美精品久久 | 精品一区二区三区在线视频 | 在线观看成人小视频 | 太子妃好紧皇上好爽h | 精品视频在线免费观看 | 亚洲精品在线视频 | 亚洲中午字幕 | 国产精品亲子伦av一区二区三区 | 日韩欧美二区 | 亚洲成人免费影院 | 国产成人一区二区三区影院在线 | 一区二区日韩视频 | 久久精品二区 | 亚洲精品久久久久久久久久久 | 国产精品久久一区二区三区 | 一级在线观看 | 久久成人免费视频 | 亚洲精品一区二区在线 | 中国大陆高清aⅴ毛片 | 国产一区二区影院 | 日韩有码电影 | 日本在线视频观看 | 91在线播放视频 | 欧美日韩视频 | 午夜影院在线观看 | 日本韩国欧美一区 | 永久免费av | 欧美综合久久 | 久久精品国产99国产精品 | 国产在线观看免费av | 国产综合精品一区二区三区 | 欧美一区二区三区免费观看视频 | 久久久久久久久久久久久av | 国产精品久久久久久久久免费桃花 | 一区二区免费视频 | 国产亚洲www| 亚洲天天做| 欧美一区二区三区四区不卡 | 一区二区三区在线播放 | 一级久久久 | 精品成人av | 99精品久久久 | 亚洲高清免费 | 国产精品视频久久 | 天堂中文av在线 | 人人操日日干 | 国产成人一区二区 | 亚洲精品国精品久久99热 | 免费观看国产视频在线 | 久久精品系列 | 精品国产髙清在线看国产毛片 | 全黄大全大色全免费大片 | 中文字幕日韩欧美一区二区三区 | 日韩aⅴ一区二区三区 | 中文字幕一区二区三区乱码图片 | 成人h动漫免费观看网站 | 国产精品毛片久久久久久 | 国产精品午夜在线观看 | 中文字幕第66页 | 91香蕉 | 亚洲一区在线视频 | 蜜桃视频一区 | aaaaaaa片毛片免费观看 | 国产精品久久久久久妇女6080 | 中文精品在线 | 日韩欧美在线一区 | 欧美日韩国产一级片 | 国产在视频一区二区三区吞精 | 综合色婷婷一区二区亚洲欧美国产 | 日韩不卡中文字幕 | 在线观看毛片网站 | 黄色毛片在线观看 | 欧美高清一区 | 国产一区亚洲 | 色黄视频在线 | 亚洲欧美综合精品久久成人 | 亚洲精品久久久久久下一站 | 日日噜 | 在线a电影 | 日韩av在线一区二区三区 | 国产视频亚洲 | 国产精品久久久久久久久久久久久 | 求av网址 | 色婷婷综合久久久中文字幕 | 国产精品日本欧美一区二区三区 | 成人黄色在线观看 | 波多野结衣在线网址 | 野狼在线社区2017入口 | 特黄特黄视频 | 国产欧美一区二区精品婷 | 日韩欧美一二三区 | 91亚色| 农村末发育av片四区五区 | 日韩在线播放欧美字幕 | 亚洲免费不卡视频 | 国产激情毛片 | 日韩欧美国产一区二区 | 日韩免费在线观看视频 | 看真人视频a级毛片 | 国产成人一区二区三区影院在线 | 精品国产一区二区三区日日嗨 | 久久av一区二区 | 亚洲九九| 亚洲成人一二区 | 精品久久久精品 | 99精品免费观看 | 18久久久久久 | 国产精品一区二区在线观看 | 国产精品久久久久久久一区探花 | 久热中文 | 欧美 亚洲 另类 激情 另类 | 天天操天天碰 | 欧美精品一区二区三区四区 | 蜜桃视频在线观看www社区 | 一区二区中文字幕 | 国产精品久久久久久久久久久久 | 91在线免费视频 | 一区二区三区四区在线播放 | 看片一区 | 色偷偷噜噜噜亚洲男人 | 国产精品久久久久久久久久妞妞 | 一区二区三区在线播放 | 亚洲日本欧美日韩高观看 | 亚洲一区二区三区在线 | 欧美久久久久久久久久久 | 日韩三区在线 | 色999精品 | 久久久国产精品 | 欧美成人一区二区三区片免费 | 在线播放亚洲 | 天天看天天操 | 精品国产乱码久久久久久1区2区 | 欧美日韩亚洲视频 | 99久久婷婷国产精品综合 | 香蕉av777xxx色综合一区 | 久久久国产精品视频 | 日韩在线一区二区 | 中文字幕 国产精品 | 中文字幕亚洲欧美 | 在线视频 亚洲 | 欧美一区二区久久久 | 日韩中文字幕在线 | 精品欧美一区二区在线观看视频 | 欧美日韩在线视频一区 | 精品久久国产 | 影音先锋中文字幕在线 | 成人免费小视频 | 日韩中文字幕一区二区 | 亚洲高清视频在线 | 午夜影视 | 99精品免费| 亚洲啊v在线 | 欧美 中文字幕 | 7799精品视频天天看 | 国产精品18hdxxxⅹ在线 | www.99re| 欧美一区二区三区在线视频 | 久久久999国产 | 理伦影院 | 欧美国产一区二区三区 | 欧美一级爆毛片 | 国产深夜视频在线观看 | 在线观看中文视频 | 精品自拍视频 | 亚洲一区二区三区福利 | 亚洲人成在线播放 | 国产精品二区一区二区aⅴ污介绍 | 欧美乱操 | 午夜久久久久 | 久久av一区二区三区 | 日韩在线视频一区 | 国产欧美日韩综合精品 | 国产精品国产成人国产三级 | 日韩av在线一区二区三区 | 亚洲一区二区三区中文字幕 | 蜜桃视频一区二区三区 | 风间由美一区二区三区在线观看 | 仙人掌旅馆在线观看 | 91在线视频一区 | 色玖玖 | 亚洲欧美一区二区在线观看 | 久久精品99 | 欧美福利一区 | 亚洲国产高清在线 | 成人av观看 | 欧洲精品视频一区 | 日韩成人中文字幕 | 国产精品久久久久久久 | 日本男人的天堂 | 超碰人操 | 精品国产欧美一区二区三区成人 | 久久久久一区 | 欧美日产国产成人免费图片 | 91精品国产乱码久久久久久久久 | 91免费看片网站 | 精品国产乱码一区二区三 | 一区免费看 | 极品女神高潮呻吟av久久 | 午夜精品久久久久久久久久久久 | 一区二区国产精品 | 亚洲视频综合 | 欧美一区二区三区视频 | 九九精品视频在线 | 亚洲 欧美 另类 综合 偷拍 | 亚洲人免费视频 | 久久久一区二区 | 日韩三级电影免费观看 | 欧美福利一区二区 | 国产一区91 | 免费av电影网站 | 99在线精品视频 | 日干夜干天天干 | 国产黄色免费视频 | 欧美视频在线免费 | 日韩欧美~中文字幕 | 日本午夜网 | 久草免费福利 | 亚洲精品在线观看免费 | 精品视频一区二区三区四区 | 在线观看日韩 | 精品www| 色综合久| 日韩欧美一区二区三区免费观看 | 一区二区视频 | 欧美国产精品一区 | 久久国产精品免费一区二区三区 | 欧美专区在线 | 国内精品三级 | 精品一区二区在线观看 | 欧美综合久久 | 国产日韩欧美精品 | 国产精品一区亚洲二区日本三区 | av天天网| 亚洲高清视频在线 | 色视频www在线播放国产人成 | 亚洲欧洲综合av | 欧美一级视频免费 | 国产精品自拍一区 | 91麻豆产精品久久久久久 | 久久99精品国产自在现线 | 国产97在线 | 亚洲 | 日韩精品一二三区 | 欧美激情一区二区三区在线观看 | 三区在线 | 亚洲精彩视频在线观看 | 精品视频一区二区三区四区 | 国产96在线观看 | 亚洲高清视频在线 | 亚洲 欧美 精品 | 国产精品三级久久久久久电影 | 伊人网站| 日韩av一区二区在线观看 | 欧美成人a | а天堂中文官网 | 一 级 黄 色 片免费网站 | 日韩欧美视频一区 | 亚洲精品一区久久久久久 | 91中文在线观看 | 一区二区亚洲 | 日日操综合| 日韩欧美国产一区二区 | 亚洲自拍偷拍精品 | 人人玩人人添人人澡97 | 亚洲精品美女久久 | 欧美一区永久视频免费观看 | 久久亚洲二区 | 91啦| 久草热8精品视频在线观看 黄色片网站视频 | 亚洲成人中文字幕 | 亚洲综合在线播放 | 日韩毛片免费视频一级特黄 | 在线伊人网 | 国产精品毛片久久久久久 | 毛片a片 | 国产亚洲欧美一区 | 精品免费一区 | av一区在线| av 一区二区三区 | 成人av观看 | 中文av在线免费观看 | a级在线免费视频 | 四虎免费紧急入口观看 | 亚洲精品乱码久久久久久国产主播 | a久久久久久 | 久久一本 | 视频一区 国产精品 | 香蕉久久久久久 | 中文字幕 国产精品 | 一区二区三区精品视频 | 97视频在线免费观看 | 91麻豆精品国产91久久久资源速度 | 99亚洲| 国外成人在线视频网站 | 日韩精品 电影一区 亚洲 | 午夜精品久久久久99蜜 | 精品久久久久久久久久久久久久 | 一区二区中文字幕在线观看 | 丁香婷婷在线 | 中文字幕国产一区 | 久久久久久久一区 | 免费毛片网 | 中文字幕精品一区久久久久 | 粉嫩国产精品一区二区在线观看 | 中文字幕一级 | 亚洲在线播放 | 91精品一区二区 | 日日干夜夜干 | 国产福利一区二区 | 久久av一区二区三区 | 91视频在线免费观看 | 成人超碰在线 | 欧美激情精品 | 精品久久av | 免费成人av | 欧美日韩久久久 | 一级大片免费观看 | 国产精品美女久久久久久免费 | 成人精品国产 | chinese中国真实乱对白 | 欧美a区 | 精品无码久久久久国产 | 国产欧精精久久久久久久 | 国产一区二区资源 | 国产男女爽爽爽免费视频 | 成人精品鲁一区一区二区 | 性高湖久久久久久久久 | 国产在线小视频 | 欧美激情精品久久久久久变态 | 黄片毛片| 精品在线视频观看 | 好色视频在线观看 | 国产一级一级片 | 国产精品美女久久久久久久久久久 | 国产日韩欧美 | 国产一级黄色大片 | 亚州视频在线 | 欧美一级特黄aaaaaaa在线观看 | 欧洲国产伦久久久久久久 | 亚洲成人在线观看视频 | 欧美激情 在线 | 欧美视频一级 | 久久精品视 | 久久99国产精品久久99大师 | 不卡的一区二区 | 免费色在线| 电影k8一区二区三区久久 | 亚洲欧美精品一区 | 天天操天操 | 日本一级毛片视频 | 欧美午夜一区二区三区免费大片 | 日本在线不卡视频 | 狠狠的日 | 亚洲精品久久久久久久久久久 | 亚洲无吗电影 | 91福利网址| www.久久精品视频 | 一区在线视频 | 欧美一区二区免费 | 日韩在线高清视频 | 亚洲一级毛片 | 韩国久久精品 | 国产黄色免费视频 | 国产精品久久久久久久久久久久久久 | 国产成人精品在线 | 黄色毛片视频网站 | 亚洲成人观看 | 国产成人精品一区二区三区在线 | 欧美日韩一区二区三区在线观看 | 午夜无码国产理论在线 | 国产激情网站 | 欧美在线视频播放 | 欧美一区二区三区在线观看视频 | 综合导航| 欧美精品一二三区 | av网站大全免费 | 欧美久久久久久久久久久久 | 国产 在线 | 日韩 | 黄色一级免费大片 | 国产高清美女一级a毛片久久 | 天天干天天曰天天操 | 欧美日韩在线观看中文字幕 | 欧美日韩国产一区二区三区 | 亚洲欧美精选 | 国产目拍亚洲精品99久久精品 | 免费av片网站 | 国产黄色网址在线观看 | 午夜国产精品视频 | 欧美日韩一区在线 | 免费一级片| 欧美日韩一级电影 | 亚洲成人三区 | 国产 欧美 日韩 一区 | 国产午夜精品视频 | 亚洲九九 | 日韩中文字幕在线 | 精品久久久久久国产 | 日韩精品小视频 | 久久久精品网站 | 一区二区免费在线 | 黄色一级片在线观看 | www国产精品 | 国产精品久久久久久吹潮 | 欧美精品一二三 | 国产伦精品一区二区 | 久久网日本 | 91在线免费视频 | 国产在线观看二区 | 久久亚洲欧美日韩精品专区 | 黄色毛片视频网站 | 天天狠狠操 | 欧美激情性国产欧美无遮挡 | 一级片黄片毛片 | 日韩免费视频 | 国产亚洲精品美女久久久久久久久久 | 亚洲欧美日韩电影 | 97国产免费 | 人人草视频在线观看 | 亚洲精品国产剧情久久9191 | 亚洲男人天堂2024 | 成人精品二区 | 伊人精品视频 | 看一级毛片视频 | 国产91九色 | 玖玖在线免费视频 | 亚洲伊人久久综合 | 中文字幕日韩久久 | 欧美精品欧美精品系列 | 国产一区二区视频在线播放 | 国产精品无码专区在线观看 | 天天天堂 | 久色 | 欧美日韩第一 | 亚洲欧洲一区二区三区 | 精品一二三区 | 一级毛片在线免费看 | 中文字幕 亚洲一区 | 日日夜夜av| 精品一区视频 | 久久欧美精品 | 欧洲亚洲精品久久久久 | 国产黄色在线观看 | 精品国产乱码久久久久久1区2区 | 中文字幕天天操 | 久久精品国产99国产精品 | 91视频久久 | 欧美日本国产欧美日本韩国99 | 亚洲a在线播放 | 特级av| 一区二区成人 | 欧美黄色一区 | 99热这里有 | 色综合中文 | 91精品国产乱码久久久久久久久 | av天空| 女人毛片| 亚洲精品电影网在线观看 | 高清国产午夜精品久久久久久 | 亚洲欧洲一区二区三区 | 97影院在线午夜 | 久久视频一区 | 亚洲www啪成人一区二区 | 色网站在线观看 |