日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

瀏覽:55日期:2022-07-07 15:58:54
安裝

官網下載

http://ffmpeg.org/

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

選擇需要的版本

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

在這個網址下載ffmpeg,https://github.com/BtbN/FFmpeg-Builds/releases

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

將解壓后得到的以下幾個文件放置在E:FFmpeg下

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

環境變量

此電腦--屬性--高級系統設置--環境變量在系統變量(也就是下面那一半)處找到新建,按如下所示的方法填寫

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

再將%FFMPEG_HOME%以及%FFMPEG_HOME%bin寫入系統變量的Path中然后一路確定即可

驗證

win+R,cmd輸入ffmpeg -version

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

ffmpeg的使用

對于我將B站PC端緩存的音頻mp4和視頻mp4文件合并的需求,需要用到的命令為:ffmpeg.exe -i audio1.mp4 -i video.mp4 -acodec copy -vcodec copy output.mp4可以把mp4的文件設置成絕對路徑,這樣就可以轉換指定路徑的文件以及保存到指定路徑了,比如這樣:ffmpeg.exe -i 'E:嗶哩嗶哩視頻ss27993774137031audio1.mp4' -i 'E:嗶哩嗶哩視頻ss27993774137031video.mp4' -acodec copy -vcodec copy 'E:B站導出視頻Dr.STONE石紀元第22話寶物.mp4通過PC端緩存的未合并的視頻和音頻,全都是命名為video.mp4和audio.mp4PS:有些兄弟是導出的手機端緩存的視頻和音頻,是m4s格式的,方法也一樣但光有這條命令還不夠,需要自己手動一個個操作,太麻煩了因此我還需要使用Python來自動幫我完成工作

Python實現自動處理

雖然Python可以實現自動化,減少時間的浪費,但最快的還是以后記得緩存時勾選自動合并

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

文件結構

PC端緩存的視頻保存的文件結構有很多種,我只是根據我碰到的情況寫的,但大同小異,修改起來也不麻煩,只是再加個if和else罷了

番劇緩存結構

緩存的番劇是這種結構:

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

上面舉的例子是Dr.stone石紀元,我緩存的鬼滅之刃也是如此特點是在一個以視頻ID號名稱的文件夾(ss27993)后,跟著許多子文件夾(57983089等),然后在這些子文件夾中又有一個或多個子文件夾(比如1),然后緩存的視頻保存在這個文件夾里,里面有一個info文件(就是json格式),還有audio1.mp4和video.mp4。PS:還有一個xml文件,是彈幕信息,暫時我不知道怎么處理

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

常規緩存結構

除了番劇,一般的視頻緩存的結構是這樣的

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

不難看出,這比番劇要少一個層級

文件信息

文件信息主要由info文件和dvi文件來記錄這兩種文件都可以直接以json文件來處理,也就是,首先open函數打開文件,然后用json.load轉成字典。。。然后我還發現了一個特點是,視頻和音頻所在的目錄下是info文件,而它的上一層目錄下是dvi文件雖然文件格式基本是一致的,但是里面的鍵-值關系卻不一致,單集視頻的名稱在番劇中對應的是鍵Description,在其他視頻中對應的是PartName視頻總的名稱保存在外層的目錄下的info文件或dvi文件中,番劇中對應的鍵是SeasonTitle,在其他視頻中對應的是Title

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

具體問題具體分析,首先由于我實踐得較少,這樣的總結不一定對,然后以后也許也會有新的格式、新的變化

代碼具體代碼

以下是我的Python代碼,你可以先試試能不能用,用不了的話,可以在理解的基礎上修改。理解不了的話可以看我的后面的解釋,以及代碼中的注釋,對于運行過程中一些變量的值,我都把它放在注釋中了,方便你理解。

# -*- coding = utf-8 -*-# @time:2020/10/17/017 23:09# Author:cyx# @File:main.py.py# @Software:PyCharm# 從.info文件中獲得了Title信息,但是如果其中有某些特殊字符,保存時可能出現問題def get_correct_title(title): error_set = [’/’, ’’, ’:’, ’*’, ’?’, ’'’, ’|’, ’<’, ’>’, ’b’, ’ ’, ’.’] correct_title = title # print(title) for c in correct_title: if c in error_set: correct_title = correct_title.replace(c, ’’) return correct_titledef popen(cmd): # https://blog.csdn.net/qq_41451161/article/details/82901235 try: popen = subprocess.Popen(cmd, stdout=subprocess.PIPE) popen.wait() lines = popen.stdout.readlines() return [line.decode(’gbk’) for line in lines] except BaseException as e: return -1if __name__ == ’__main__’: import os import json import subprocess # ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a aac -strict experimental output.mp4 # ffmpeg.exe -i audio1.mp4 -i video.mp4 -acodec copy -vcodec copy output.mp4 AVhao = input('請輸入視頻AV號:') superPath = 'E:嗶哩嗶哩視頻' + '' + AVhao partDirs = [] # 保存每P視頻所在的文件夾路徑 paths = os.listdir(superPath) # 獲取當前路徑下所有的文件(包括文件夾)名稱 # paths = [’8’,’9’] # 有時候,會莫名其妙的少了幾個視頻,可以通過重載來重新加載缺失的視頻 # print(paths) # paths # [’27993.info’, ’57983089’, ’58612211’, ’59811008’, ’60862133’, ’61898240’, ’62925012’, ’64005445’, ’65020725’, ’66013155’, ’66808912’, ’67587875’, ’68398229’, ’69175748’, ’70021307’, ’70873680’, ’71617211’, ’73379440’, ’74051851’, ’74974157’, ’75746600’, ’76619409’, ’77413703’, ’78266594’, ’79070874’, ’cover.jpg’, ’desktop.ini’] # 獲取每P視頻所在的文件夾路徑 savePos = ’’ seq = [] # 鑒于有些up主命名時毫無規律,導出后無法正常排序,只能手動排序了 # 根據AV號名文件夾下的子文件夾的名稱進行排序,但是番劇的話不是這樣排序,不過番劇單集的名稱很規范,不需要這樣 for p in paths: if ’.’ not in p: seq.append(p) if ’info’ in p: # print(p) # p: # 27993.info info = superPath + '' + p with open(info, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)projectTitle = load_dict[’SeasonTitle’]projectTitle = get_correct_title(projectTitle)savePos = ’E:B站導出視頻’ + projectTitleprint(’savePos: ’, savePos) if ’dvi’ in p: # print(p) # P: # 328738595.dvi dvi = superPath + '' + p with open(dvi, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)projectTitle = load_dict[’Title’]projectTitle = get_correct_title(projectTitle)savePos = ’E:B站導出視頻’ + projectTitleprint(’savePos: ’, savePos) # 防止文件存在時再次生成該文件夾出現錯誤 try: os.mkdir(savePos) break except: pass subDir = superPath + '' + p if os.path.isdir(subDir): # print(subDir) # 所有子文件夾的路徑保存在partDirs中 partDirs.append(subDir) # print('partDirs: ',partDirs) # partDirs: [’E:嗶哩嗶哩視頻ss2799357983089’, ’E:嗶哩嗶哩視頻ss2799358612211’, ’E:嗶哩嗶哩視頻ss2799359811008’, ’E:嗶哩嗶哩視頻ss2799360862133’, ’E:嗶哩嗶哩視頻ss2799361898240’, ’E:嗶哩嗶哩視頻ss2799362925012’, ’E:嗶哩嗶哩視頻ss2799364005445’, ’E:嗶哩嗶哩視頻ss2799365020725’, ’E:嗶哩嗶哩視頻ss2799366013155’, ’E:嗶哩嗶哩視頻ss2799366808912’, ’E:嗶哩嗶哩視頻ss2799367587875’, ’E:嗶哩嗶哩視頻ss2799368398229’, ’E:嗶哩嗶哩視頻ss2799369175748’, ’E:嗶哩嗶哩視頻ss2799370021307’, ’E:嗶哩嗶哩視頻ss2799370873680’, ’E:嗶哩嗶哩視頻ss2799371617211’, ’E:嗶哩嗶哩視頻ss2799373379440’, ’E:嗶哩嗶哩視頻ss2799374051851’, ’E:嗶哩嗶哩視頻ss2799374974157’, ’E:嗶哩嗶哩視頻ss2799375746600’, ’E:嗶哩嗶哩視頻ss2799376619409’, ’E:嗶哩嗶哩視頻ss2799377413703’, ’E:嗶哩嗶哩視頻ss2799378266594’, ’E:嗶哩嗶哩視頻ss2799379070874’] videoPos = ’’ i = 0 for p in partDirs: # print(p) # 列出子文件夾中的所有文件 sublist = os.listdir(p) # 檢查info文件是否在當前子文件夾中 for file in sublist: # print(file) # file: # 1 # 57983089. # dvi # cover.jpg # desktop.ini if ’info’ in file:infoPos = p + '' + filevideoPos = p else:subsubDir = p + '' + fileif os.path.isdir(subsubDir): # print(subsubDir) # subsubDir: E:嗶哩嗶哩視頻ss27993579830891 subsubList = os.listdir(subsubDir) for subsubFile in subsubList: if ’info’ in subsubFile: infoPos = subsubDir + '' + subsubFile videoPos = subsubDir break with open(infoPos, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)if ’ss’ in AVhao: videoTitle = load_dict[’Description’]else: videoTitle = load_dict[’PartName’]videoTitle = get_correct_title(videoTitle)print(’videoTitle: ’, videoTitle)videoDir = videoPos + '' + ’video.mp4’audioDir = videoPos + '' + ’audio1.mp4’# print(’videoDir: ’, videoDir)# print(’audioDir: ’, audioDir)# videoDir: E:嗶哩嗶哩視頻ss27993740518511video.mp4# audioDir: E:嗶哩嗶哩視頻ss27993740518511audio1.mp4if ’ss’ in AVhao: outDir = savePos + '' + videoTitle + ’.mp4’else: outDir = savePos + '' + seq[i] + ’_’ + videoTitle + ’.mp4’ i += 1# 對于那些命名很規范的視頻,可以不用自己再排序,進行一下重載,不規范的視頻再把這句注釋掉就好outDir = savePos + '' + videoTitle + ’.mp4’# command = ’cd ’ + superPath + ’64 && ’ # && 多名命令# command = ’cd ’ + ’E:ProgramFilesffmpeg’ + ’ && ’command = ’E:FFmpegbinffmpeg.exe -i ’ + ’'’ + audioDir + ’'’ ’ -i ’ + ’'’ + videoDir + ’'’+ ’ -acodec copy -vcodec copy ’ + ’'’ + outDir + ’'’# print('保存地址',outDir)# 保存地址 E:B站導出視頻[Lynda視頻]音頻錄制錄音技巧教程(中英雙語字幕)全集130課時AudioRecordingTechniques混音錄音棚音樂工作室歌曲調音98錄制獨奏薩克斯演奏技巧二.mp4# print(command)# command = ’E:FFmpegbinffmpeg.exe -i 'E:嗶哩嗶哩視頻ss27993774137031audio1.mp4' -i 'E:嗶哩嗶哩視頻ss27993774137031video.mp4' -acodec copy -vcodec copy 'E:B站導出視頻Dr.STONE石紀元第22話寶物.mp4’# os.system(command)popen(command)# ffmpeg.exe -i audio1.mp4 -i video.mp4 -acodec copy -vcodec copy output.mp4break代碼說明

如你所見我的編程水平不高,模塊化做的很差,不便于理解,所以有必要進行說明。直接從main開始看起吧。

AVhao = input('請輸入視頻AV號:') superPath = 'E:嗶哩嗶哩視頻' + '' + AVhao partDirs = [] # 保存每P視頻所在的文件夾路徑 paths = os.listdir(superPath) # 獲取當前路徑下所有的文件(包括文件夾)名稱

首先是用input接收AV號或BV號的輸入,放入AVhao變量中。然后用superPath變量存放你需要合并的視頻的根目錄。比如我在B站緩存的所有視頻存放在E:嗶哩嗶哩視頻下,注意程序中要有兩條,然后superPath就是E:嗶哩嗶哩視頻AVhao。os.listdir(),括號中的參數必須是一個真實的路徑,這個函數可以得到這個路徑下所有的文件和文件夾的名稱。我用paths來存放E:嗶哩嗶哩視頻AVhao路徑下所有的文件名稱和文件夾名稱。為了防止我的表達能力有限帶來的理解上的不便,你可以看圖,paths對應的是下圖中的內容:

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

這個變量的類型是列表,所以可以用for循環來遍歷。

savePos = ’’ seq = [] for p in paths: if ’.’ not in p: seq.append(p) if ’info’ in p: # print(p) # p: # 27993.info info = superPath + '' + p with open(info, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)projectTitle = load_dict[’SeasonTitle’]projectTitle = get_correct_title(projectTitle)savePos = ’E:B站導出視頻’ + projectTitleprint(’savePos: ’, savePos) if ’dvi’ in p: # print(p) # P: # 328738595.dvi dvi = superPath + '' + p with open(dvi, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)projectTitle = load_dict[’Title’]projectTitle = get_correct_title(projectTitle)savePos = ’E:B站導出視頻’ + projectTitleprint(’savePos: ’, savePos) # 防止文件存在時再次生成該文件夾出現錯誤 try: os.mkdir(savePos) break except: pass subDir = superPath + '' + p if os.path.isdir(subDir): # print(subDir) # 所有子文件夾的路徑保存在partDirs中 partDirs.append(subDir)

我設置了一個savePos變量,用來表示合并后的視頻保存的位置,因為我希望將視頻保存在一個我自己指定的文件夾下,同時這個文件夾的名稱是這個視頻的名稱,比如Dr.stone石紀元。因為想自動化操作,所以我通過緩存文件夾中的info文件和dvi文件來找到視頻的名稱。使用open函數打開這兩個文件中的一個,因為不確定文件結構是什么樣的,所以我用了兩個if語句。然后再用json.load函數將其加載為字典,并根據對應的鍵讀取對應的值,從而可以拼接處對應的保存地址savePos。由于創建已經存在的同名文件夾會發生錯誤,為避免這種可能,我將創建目錄的操作放在了try語句下。創建目錄用的是os.mkdir()函數,括號中是一個絕對路徑。然后我用subDir來表示子文件夾的名稱,注意!是子文件夾,而不是文件。我用os.path.isdir(subDir)來進行判斷,如果是文件夾而不是文件的話,就加到partDirs列表中,partDirs.append(subDir)這個列表中的每個元素都是一個子文件夾的絕對路徑,比如:E:嗶哩嗶哩視頻ss2799357983089而這個名為seq的顯得很突兀,這個其實我也是后來加的,這個列表的作用在于記錄當前子文件夾的名稱,也就是在AVhao文件夾的下一層,如果不是番劇的話,應當有許多個文件夾分別是1、2、3等等,這些其實對應的是播放列表中的順序。

ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼

而之所以使用if ’.’ not in p,因為這一層的文件夾全都是用來表示播放順序的,因此不存在后綴名,從而也就沒有“.”。

videoPos = ’’ i = 0 for p in partDirs: # print(p) # 列出子文件夾中的所有文件 sublist = os.listdir(p) # 檢查info文件是否在當前子文件夾中 for file in sublist: # print(file) # file: # 1 # 57983089. # dvi # cover.jpg # desktop.ini if ’info’ in file:infoPos = p + '' + filevideoPos = p else:subsubDir = p + '' + fileif os.path.isdir(subsubDir): # print(subsubDir) # subsubDir: E:嗶哩嗶哩視頻ss27993579830891 subsubList = os.listdir(subsubDir) for subsubFile in subsubList: if ’info’ in subsubFile: infoPos = subsubDir + '' + subsubFile videoPos = subsubDir break with open(infoPos, ’r’, encoding=’utf-8’) as load_f:load_dict = json.load(load_f)if ’ss’ in AVhao: videoTitle = load_dict[’Description’]else: videoTitle = load_dict[’PartName’]videoTitle = get_correct_title(videoTitle)print(’videoTitle: ’, videoTitle)videoDir = videoPos + '' + ’video.mp4’audioDir = videoPos + '' + ’audio1.mp4’# print(’videoDir: ’, videoDir)# print(’audioDir: ’, audioDir)# videoDir: E:嗶哩嗶哩視頻ss27993740518511video.mp4# audioDir: E:嗶哩嗶哩視頻ss27993740518511audio1.mp4if ’ss’ in AVhao: outDir = savePos + '' + videoTitle + ’.mp4’else: outDir = savePos + '' + seq[i] + ’_’ + videoTitle + ’.mp4’ i += 1# 對于那些命名很規范的視頻,可以不用自己再排序,進行一下重載,不規范的視頻再把這句注釋掉就好outDir = savePos + '' + videoTitle + ’.mp4’# command = ’cd ’ + superPath + ’64 && ’ # && 多名命令# command = ’cd ’ + ’E:ProgramFilesffmpeg’ + ’ && ’command = ’E:FFmpegbinffmpeg.exe -i ’ + ’'’ + audioDir + ’'’ ’ -i ’ + ’'’ + videoDir + ’'’+ ’ -acodec copy -vcodec copy ’ + ’'’ + outDir + ’'’# print('保存地址',outDir)# 保存地址 E:B站導出視頻[Lynda視頻]音頻錄制錄音技巧教程(中英雙語字幕)全集130課時AudioRecordingTechniques混音錄音棚音樂工作室歌曲調音98錄制獨奏薩克斯演奏技巧二.mp4# print(command)# command = ’E:FFmpegbinffmpeg.exe -i 'E:嗶哩嗶哩視頻ss27993774137031audio1.mp4' -i 'E:嗶哩嗶哩視頻ss27993774137031video.mp4' -acodec copy -vcodec copy 'E:B站導出視頻Dr.STONE石紀元第22話寶物.mp4’# os.system(command)popen(command)# ffmpeg.exe -i audio1.mp4 -i video.mp4 -acodec copy -vcodec copy output.mp4break

這一部分是我用來實現合并特定路徑的視頻和音頻,并最終導出到指定目錄的。videoPos是待合并的視頻的路徑,音頻文件也在這一目錄下。for p in partDirs:,在這個for循環中遍歷的是partDirs列表,這個列表由前面的步驟得到,其中的每個元素都是一個路徑。接下來的這個if-else是用來區別番劇和普通視頻合集的,因為它們有不同的目錄結構。infoPos用來記錄包含單集視頻名稱的info文件的路徑,然后用open函數打開這個info文件,根據AVhao中是否有ss,判斷是否是番劇,如果有ss,則表明是番劇,對應的視頻名稱為Description鍵對應的值。否則的話,對應的視頻名稱為PartName鍵對應的值,但是如果是要保存為文件的話,當然不能直接以這個名稱命名,否則極有可能發生錯誤,因此我用了一個get_correct_title函數來對標題進行重載,以確保格式正確。videoDir和audioDir分別是待合并的視頻和音頻的絕對路徑。然后我根據AVhao中是否有ss,來判斷是否是番劇。因為番劇的單集視頻名稱通常會有序號,所以我可以將輸出視頻的保存路徑設置為保存目錄加視頻名.mp4。許多up主的視頻名稱沒有體現視頻的先后順序,這樣帶來的問題是導出后順序播放時產生跳集現象。因此我用seq加下劃線的方式來為視頻排序。比如“1_簡介.mp4”。而對于視頻名稱本身有排序的情況1_1簡介.mp4,這樣有些奇怪,所以我們碰到這種情況時,可以直接在下面添加一個outDir = savePos + '' + videoTitle + ’.mp4’,其他情況不用時注釋掉就好。最后是用Python程序執行Dos命令,我將命令設為command變量,通過for循環,會自動生成不同的命令,然后執行命令行有兩種方法,一種是導入os庫,使用os.system(command),另一種是我在https://blog.csdn.net/qq_41451161/article/details/82901235借用的popen函數,這個也可以用,但需要導入subprocess庫。使用命令行上,有兩個比較坑的地方,一是前面必須給出ffmpeg.exe的絕對路徑,也就是E:FFmpegbinffmpeg.exe,在Python中用是這樣的,但直接在命令行中,只要輸入ffmpeg.exe即可(前提是你設置好了環境變量)。第二個坑是,command賦值時,一定給路徑加上引號,否則的話識別命令時會發生錯誤。

到此這篇關于ffmpeg+Python實現B站MP4格式音頻與視頻的合并示例代碼的文章就介紹到這了,更多相關Python音頻與視頻的合并內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久美女精品| 午夜在线一区二区| 日韩精品中文字幕第1页| 尤物精品在线| 色在线中文字幕| 欧美日韩精品免费观看视完整| 国产欧美日韩在线观看视频 | 久久亚洲图片| 日韩精品91亚洲二区在线观看| 亚洲少妇一区| 国产三级精品三级在线观看国产| 久久中文字幕一区二区三区| 日韩在线欧美| 国产精品欧美三级在线观看 | 日韩一区二区三区在线看| 女同性一区二区三区人了人一| 日韩另类视频| 国产伊人精品| 蜜乳av另类精品一区二区| 亚洲三级网站| 日韩欧美三区| 国产亚洲精aa在线看| 麻豆国产欧美一区二区三区| 综合视频一区| 亚洲先锋成人| av高清一区| 国产一区二区三区黄网站| 欧美日韩 国产精品| 在线综合视频| 欧美一区二区三区免费看| 91精品观看| 国产欧美日韩在线观看视频 | 色8久久久久| 无码日韩精品一区二区免费| 欧美精品三级在线| 日本午夜精品久久久| 日韩精品午夜视频| 中文字幕一区日韩精品| 欧美日本久久| 另类中文字幕国产精品| 国产一区二区三区天码| 国产精品日韩| 免费在线观看日韩欧美| 亚洲一区成人| 97精品一区| 久久亚洲一区| 好吊一区二区三区| 最新国产精品| 欧美二三四区| 九色porny丨国产首页在线| 麻豆视频观看网址久久| 91免费精品国偷自产在线在线| 精品一区二区三区中文字幕视频| 男人的天堂久久精品| 国产欧美在线| 免费在线观看视频一区| 欧美日本不卡| 久久国产影院| 蜜臀久久99精品久久久久宅男| 欧美日本二区| 国产精品xvideos88| 国产精品v亚洲精品v日韩精品| 欧美综合二区| 国产夫妻在线| 99久久久久国产精品| 日韩精品1区| 中文字幕在线视频网站| 天堂成人国产精品一区| 欧美另类综合| 欧美 日韩 国产精品免费观看| 亚洲激情中文在线| 日本不卡视频在线观看| 国产欧美视频在线| 日本欧美国产| 国产精品尤物| 亚洲资源网站| 国产中文在线播放| 精品在线91| 日韩在线短视频| 噜噜噜久久亚洲精品国产品小说| 国产麻豆精品| 国产午夜精品一区二区三区欧美 | 精品九九在线| 日韩天堂av| 在线天堂资源www在线污| 国产精品久久久久久久免费软件| 亚洲乱码视频| 青草国产精品| 国产精品不卡| 99精品在线免费在线观看| 国产一区日韩| 最近高清中文在线字幕在线观看1| 亚洲一区有码| 欧美黄色网页| 美女网站久久| 欧美a在线观看| 免费中文字幕日韩欧美| 国产成人精品亚洲线观看| 麻豆精品网站| 群体交乱之放荡娇妻一区二区| 欧美在线看片| 美女尤物久久精品| 欧美成人综合| 国产传媒在线观看| 天堂av一区| 在线观看一区| 在线视频观看日韩| 国产成人久久精品麻豆二区| 国产一区观看| 美女一区网站| 国产另类在线| 在线亚洲国产精品网站| 91精品蜜臀一区二区三区在线| 久久亚洲黄色| 国产精品18| 日韩综合精品| 不卡av一区二区| 日韩视频一区| 在线午夜精品| 久久狠狠婷婷| 狠狠干成人综合网| 亚洲久久在线| 欧美中文一区| 亚洲精品极品少妇16p| 国产一区日韩| 91精品综合| 视频一区视频二区中文字幕| 老司机精品久久| 日本午夜免费一区二区| 1024精品一区二区三区| 亚洲黄页一区| 欧美xxxx中国| 国产在线观看www| 色欧美自拍视频| 一区二区三区四区日本视频| 久久女人天堂| 黄色成人精品网站| 六月丁香综合| 欧美91在线|欧美| 国产成人精品亚洲线观看| 亚洲精品1区2区| 久久av超碰| 亚洲欧美日本视频在线观看| 青青伊人久久| 国户精品久久久久久久久久久不卡| 日韩中文av| 日韩av福利| 日韩不卡一区二区三区| 亚洲午夜精品久久久久久app| 老鸭窝亚洲一区二区三区| 久久视频国产| 91综合久久爱com| 九色porny丨国产首页在线| 亚洲四虎影院| 黄色成人91| zzzwww在线看片免费| 国产欧美二区| 国产欧美三级| 亚洲国产福利| 久久精品卡一| 制服诱惑一区二区| 日韩中出av| 久久只有精品| 久久国产主播| 亚洲一级大片| 欧美91在线| 伊人久久大香线蕉av不卡| 欧美偷窥清纯综合图区| 精品丝袜在线| 人人爱人人干婷婷丁香亚洲| 欧美午夜精品一区二区三区电影| 国产视频欧美| 欧美激情91| 免费观看久久久4p| 亚洲欧洲另类| 在线一区视频观看| 香蕉成人久久| 久久国产免费| 亚洲一级大片| 精品一区二区三区视频在线播放| 久久亚洲精精品中文字幕| 欧美va亚洲va日韩∨a综合色| 亚洲精品一二三**| 精品久久电影| 日韩不卡免费高清视频| 久久国产精品99国产| 国产精品久久免费视频| 久久国产中文字幕| 日韩和欧美一区二区三区| 欧美aa在线观看| 亚洲精选91| 水蜜桃久久夜色精品一区| 日韩成人免费| 久久久久久夜| 91亚洲人成网污www| 免费美女久久99| 日韩高清欧美| 91亚洲精品在看在线观看高清| 久久精品网址| 欧美国产免费|