FFplay文檔解讀-39-視頻過(guò)濾器十四

前言

Github地址:Github
簡(jiǎn)書(shū)地址:簡(jiǎn)書(shū)
專(zhuān)輯地址:FFplay專(zhuān)輯

29.130 prewitt

應(yīng)用prewitt運(yùn)算符輸入視頻流伴找。

過(guò)濾器接受以下選項(xiàng):

planes

設(shè)置要處理的平面斟赚,將復(fù)制未處理的平面。 默認(rèn)值為0xf咖刃,將處理所有平面互站。

scale

設(shè)定值將與過(guò)濾結(jié)果相乘。

delta

設(shè)置將添加到篩選結(jié)果的值僵缺。

29.131 program_opencl

使用OpenCL程序過(guò)濾視頻。

source

OpenCL程序源文件踩叭。

kernel

程序中的內(nèi)核名稱(chēng)磕潮。

inputs

過(guò)濾器的輸入數(shù)量。 默認(rèn)為1容贝。

size, s

輸出幀的大小自脯。 默認(rèn)值與第一個(gè)輸入相同。

程序源文件必須包含具有給定名稱(chēng)的內(nèi)核函數(shù)斤富,該函數(shù)將針對(duì)輸出的每個(gè)平面運(yùn)行一次膏潮。 平面上的每次運(yùn)行都會(huì)作為單獨(dú)的2D全局NDRange排隊(duì),每個(gè)像素都會(huì)生成一個(gè)工作項(xiàng)满力。 因此焕参,每個(gè)工作項(xiàng)的全局ID偏移量是目標(biāo)圖像中像素的坐標(biāo)。

內(nèi)核函數(shù)需要采用以下參數(shù):

  • 目標(biāo)圖像油额,__ write_only image2d_t叠纷。

??這個(gè)圖像將成為輸出; 內(nèi)核應(yīng)該寫(xiě)出所有內(nèi)容。

  • 幀索引潦嘶,unsigned int涩嚣。

??這是一個(gè)從零開(kāi)始的計(jì)數(shù)器,每幀增加一個(gè)。

  • 源圖像航厚,__ read_only image2d_t顷歌。

??這些是每個(gè)輸入的最新圖像。 內(nèi)核可以從它們讀取以生成輸出幔睬,但是它們無(wú)法寫(xiě)入眯漩。

示例程序如下:

  • 將輸入復(fù)制到輸出(輸出必須與輸入的大小相同)。

      __kernel void copy(__write_only image2d_t destination,
                 unsigned int index,
                 __read_only  image2d_t source)
      {
      const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
    
      int2 location = (int2)(get_global_id(0), get_global_id(1));
    
      float4 value = read_imagef(source, sampler, location);
    
      write_imagef(destination, location, value);
      }
    
  • 應(yīng)用簡(jiǎn)單的轉(zhuǎn)換溪窒,使用索引計(jì)數(shù)器增加一個(gè)量的輸入坤塞。 采樣器對(duì)像素值進(jìn)行線(xiàn)性插值,輸出的尺寸不必與輸入相同澈蚌。

      __kernel void rotate_image(__write_only image2d_t dst,
                         unsigned int index,
                         __read_only  image2d_t src)
      {
      const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                             CLK_FILTER_LINEAR);
    
      float angle = (float)index / 100.0f;
    
      float2 dst_dim = convert_float2(get_image_dim(dst));
      float2 src_dim = convert_float2(get_image_dim(src));
    
      float2 dst_cen = dst_dim / 2.0f;
      float2 src_cen = src_dim / 2.0f;
    
      int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
    
      float2 dst_pos = convert_float2(dst_loc) - dst_cen;
      float2 src_pos = {
      cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
      sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
      };
      src_pos = src_pos * src_dim / dst_dim;
    
      float2 src_loc = src_pos + src_cen;
    
      if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
      src_loc.x > src_dim.x || src_loc.y > src_dim.y)
      write_imagef(dst, dst_loc, 0.5f);
      else
      write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
      }
    
  • 將兩個(gè)輸入混合在一起摹芙,每個(gè)輸入的使用量隨索引計(jì)數(shù)器而變化。

      __kernel void blend_images(__write_only image2d_t dst,
                         unsigned int index,
                         __read_only  image2d_t src1,
                         __read_only  image2d_t src2)
      {
      const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                             CLK_FILTER_LINEAR);
    
      float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
    
      int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
      int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
      int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
    
      float4 val1 = read_imagef(src1, sampler, src1_loc);
      float4 val2 = read_imagef(src2, sampler, src2_loc);
    
      write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
      }
    

29.132 pseudocolor

用偽彩色改變視頻中的幀顏色宛瞄。

此過(guò)濾器接受以下選項(xiàng):

c0

設(shè)置像素第一組件表達(dá)式浮禾。

c1

設(shè)置像素第二組件表達(dá)式。

c2

設(shè)置像素第三組件表達(dá)式份汗。

c3

設(shè)置像素第四個(gè)組件表達(dá)式盈电,對(duì)應(yīng)于alpha組件。

i

設(shè)置組件以用作改變顏色的基礎(chǔ)杯活。

它們中的每一個(gè)都指定用于計(jì)算相應(yīng)像素分量值的查找表的表達(dá)式匆帚。

表達(dá)式可以包含以下常量和函數(shù):

w
h

輸入的寬度和高度。

val

像素組件的輸入值旁钧。

ymin吸重,umin,vmin歪今,amin

允許的最小組件值嚎幸。

ymax,umax寄猩,vmax嫉晶,amax

允許的最大組件值。

所有表達(dá)式默認(rèn)為val田篇。

29.132.1 示例

  • 將太高的亮度值更改為漸變:

      pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
    

29.133 psnr

獲取兩個(gè)輸入視頻之間的平均替废,最大和最小PSNR(峰值信噪比)。

此過(guò)濾器輸入兩個(gè)輸入視頻泊柬,第一個(gè)輸入被視為"main"源舶担,并且不變地傳遞到輸出。 第二輸入用作用于計(jì)算PSNR"reference"視頻彬呻。

兩個(gè)視頻輸入必須具有相同的分辨率和像素格式才能使此濾鏡正常工作衣陶。 此外柄瑰,它假設(shè)兩個(gè)輸入具有相同的幀數(shù),逐個(gè)進(jìn)行比較剪况。

通過(guò)測(cè)井系統(tǒng)打印獲得的平均PSNR教沾。

濾波器存儲(chǔ)每幀的累積MSE(均方誤差),并且在處理結(jié)束時(shí)译断,它在所有幀上均等地平均授翻,并且應(yīng)用以下公式來(lái)獲得PSNR

PSNR = 10*log10(MAX^2/MSE)

其中MAX是圖像每個(gè)分量的最大值的平均值。

接下來(lái)的參數(shù)的描述如下孙咪。

stats_file堪唐,f

如果指定,則過(guò)濾器將使用指定的文件來(lái)保存每個(gè)幀的PSNR翎蹈。當(dāng)filename等于-時(shí)淮菠,數(shù)據(jù)被發(fā)送到標(biāo)準(zhǔn)輸出。

stats_version

指定要使用的stats文件格式的版本荤堪。每種格式的詳細(xì)信息如下合陵。默認(rèn)值為1

stats_add_max

確定是否將最大值輸出到統(tǒng)計(jì)日志澄阳。默認(rèn)值為0拥知。需要stats_version> = 2。如果設(shè)置且stats_version <2碎赢,則過(guò)濾器將返回錯(cuò)誤低剔。

此過(guò)濾器還支持framesync選項(xiàng)。

如果選擇了stats_file肮塞,則打印的文件包含表單鍵的鍵/值對(duì)序列:每個(gè)比較的幀對(duì)的值襟齿。

如果指定了stats_version大于1,則標(biāo)題行位于每幀對(duì)統(tǒng)計(jì)數(shù)據(jù)列表之前峦嗤,其中鍵值對(duì)遵循幀格式,并帶有以下參數(shù):

psnr_log_version

日志文件格式的版本屋摔。將匹配stats_version烁设。

fields

日志中包含的每幀對(duì)參數(shù)的逗號(hào)分隔列表。

每個(gè)所示的每幀對(duì)參數(shù)的描述如下:

n

輸入幀的序號(hào)钓试,從1開(kāi)始

mse_avg

均方誤差在所有圖像分量上平均的比較幀的逐像素平均差異装黑。

mse_y,mse_u弓熏,mse_v恋谭,mse_r,mse_g挽鞠,mse_b疚颊,mse_a

均值平方誤差由后綴指定的組件的比較幀的逐像素平均差異狈孔。

psnr_y,psnr_u材义,psnr_v均抽,psnr_r,psnr_g其掂,psnr_b油挥,psnr_a

由后綴指定的組件的比較幀的峰值信噪比。

max_avg款熬,max_y深寥,max_u,max_v

每個(gè)通道的最大允許值贤牛,以及所有通道的平均值惋鹅。

例如:

movie = ref_movie.mpg,setpts = PTS-STARTPTS [main];
[main] [ref] psnr =“stats_file = stats.log”[out]

在此示例中盔夜,正在處理的輸入文件與參考文件ref_movie.mpg進(jìn)行比較负饲。每個(gè)幀的PSNR存儲(chǔ)在stats.log中。

29.134 pullup

下拉式反轉(zhuǎn)(反轉(zhuǎn)電視電影)過(guò)濾器喂链,能夠處理混合的硬電視電影返十,24000/1001 fps漸進(jìn)和30000/1001 fps漸進(jìn)內(nèi)容。

上拉濾波器旨在利用未來(lái)的背景來(lái)做出決策椭微。 此過(guò)濾器在沒(méi)有鎖定到要跟隨的模式的意義上是無(wú)狀態(tài)的洞坑,但它反過(guò)來(lái)期待以下字段以識(shí)別匹配并重建漸進(jìn)幀。

要生成具有均勻幀率的內(nèi)容蝇率,請(qǐng)?jiān)谏侠蟛迦?code>fps濾波器迟杂,如果輸入幀速率為29.97fps,則使用fps = 24000/1001本慕,對(duì)于30fps使用fps = 24排拷,使用(稀有)電視電影25fps輸入。

過(guò)濾器接受以下選項(xiàng):

jl
jr
jt
jb

這些選項(xiàng)分別在圖像的左側(cè)锅尘,右側(cè)监氢,頂部和底部設(shè)置要忽略的"junk"量。 左和右以8像素為單位藤违,而頂部和底部以2行為單位浪腐。 默認(rèn)值是每邊8像素。

sb

設(shè)置嚴(yán)格的休息時(shí)間顿乒。 將此選項(xiàng)設(shè)置為1將減少濾波器生成偶然不匹配幀的機(jī)會(huì)议街,但也可能導(dǎo)致在高運(yùn)動(dòng)序列期間丟棄過(guò)多幀。 相反璧榄,將其設(shè)置為-1將使過(guò)濾器匹配字段更容易特漩。 這可以幫助處理視頻吧雹,其中字段之間存在輕微模糊,但是也可能導(dǎo)致輸出中存在交錯(cuò)幀拾稳。 默認(rèn)值為0吮炕。

mp

設(shè)置要使用的度量標(biāo)準(zhǔn)平面。 它接受以下值:

解釋
l 使用luma plane
u 使用chroma blue plane
v 使用chroma red plane

可以將此選項(xiàng)設(shè)置為使用色度平面而不是默認(rèn)亮度平面來(lái)進(jìn)行濾波器的計(jì)算访得。 這可以提高非常干凈的源材料的準(zhǔn)確度龙亲,但更有可能降低精度,尤其是在存在色度噪聲(彩虹效應(yīng))或任何灰度視頻的情況下悍抑。 將'mp'設(shè)置為色度平面的主要目的是減少CPU負(fù)載并使上拉在慢速機(jī)器上實(shí)時(shí)可用鳄炉。

為獲得最佳結(jié)果(輸出文件中沒(méi)有重復(fù)的幀),必須更改輸出幀速率搜骡。 例如拂盯,要反轉(zhuǎn)電視電影NTSC輸入:

ffmpeg -i input -vf pullup -r 24000/1001 ...

29.135 qp

更改視頻量化參數(shù)(QP)。

過(guò)濾器接受以下選項(xiàng):

qp

設(shè)置量化參數(shù)的表達(dá)式记靡。

表達(dá)式通過(guò)eval API進(jìn)行評(píng)估谈竿,并且可以包含以下常量:

known

如果index不是129則為1,否則為0摸吠。

qp

順序索引從-129128空凸。

29.135.1 示例

  • 一些方程如下:

    qp=2+2sin(PIqp)

29.136 random

將幀內(nèi)部緩存中的視頻幀刷新為隨機(jī)順序。 沒(méi)有幀被丟棄寸痢。 靈感來(lái)自frei0r神經(jīng)過(guò)濾器呀洲。

frames

設(shè)置內(nèi)部緩存幀數(shù)的大小,范圍為2512啼止。默認(rèn)值為30道逗。

seed

為隨機(jī)數(shù)生成器設(shè)置種子,必須是0UINT32_MAX之間的整數(shù)献烦。 如果未指定滓窍,或者顯式設(shè)置為小于0,則過(guò)濾器將嘗試在盡力而為的基礎(chǔ)上使用良好的隨機(jī)種子巩那。

29.137 readeia608

從視頻幀的頂行讀取隱藏式字幕(EIA-608)信息吏夯。

此過(guò)濾器為lavfi.readeia608.X.cclavfi.readeia608.X.line添加幀元數(shù)據(jù),其中X是具有EIA-608數(shù)據(jù)的標(biāo)識(shí)行的編號(hào)(從0開(kāi)始)拢操。每個(gè)元數(shù)據(jù)值的描述如下:

lavfi.readeia608.X.cc

這兩個(gè)字節(jié)存儲(chǔ)為EIA-608數(shù)據(jù)(以十六進(jìn)制打咏跻唷)舶替。

lavfi.readeia608.X.line

識(shí)別和讀取EIA-608數(shù)據(jù)的行號(hào)令境。

此過(guò)濾器接受以下選項(xiàng):

scan_min

設(shè)置該行以開(kāi)始掃描EIA-608數(shù)據(jù)。默認(rèn)值為0顾瞪。

scan_max

將行設(shè)置為結(jié)束掃描EIA-608數(shù)據(jù)舔庶。默認(rèn)值為29抛蚁。

mac

設(shè)置同步碼檢測(cè)的最小可接受幅度變化。默認(rèn)值為0.2惕橙。允許范圍為[0.001 - 1]瞧甩。

spw

設(shè)置為同步代碼檢測(cè)保留的寬度比率。默認(rèn)值為0.27弥鹦。允許范圍為[0.01 - 0.7]肚逸。

mhd

設(shè)置同步代碼檢測(cè)的最大峰高差。默認(rèn)值為0.1彬坏。允許范圍是[0.0 - 0.5]朦促。

mpd

設(shè)置同步代碼檢測(cè)的最大峰值周期差。默認(rèn)值為0.1栓始。允許范圍是[0.0 - 0.5]务冕。

msd

設(shè)置前兩個(gè)最大起始碼位差異。默認(rèn)值為0.02幻赚。允許范圍是[0.0 - 0.5]禀忆。

bhd

設(shè)置與第3個(gè)起始碼位相比的位高度的最小比率。默認(rèn)值為0.75落恼。允許范圍為[0.01 - 1]箩退。

th_w

設(shè)置白色閾值。默認(rèn)值為0.35领跛。允許范圍是[0.1 - 1]乏德。

th_b

設(shè)置黑色閾值。默認(rèn)值為0.15吠昭。允許范圍是[0.0 - 0.5]喊括。

chp

啟用檢查奇偶校驗(yàn)位。如果出現(xiàn)奇偶校驗(yàn)錯(cuò)誤矢棚,則過(guò)濾器將為該字符輸出0x00郑什。默認(rèn)值為false

29.137.1 示例

  • 輸出具有顯示時(shí)間的csv和識(shí)別的EIA-608字幕數(shù)據(jù)的前兩行蒲肋。

      ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pkt_pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
    

29.138 readvitc

從視頻幀的頂行讀取垂直間隔時(shí)間碼(VITC)信息蘑拯。

如果檢測(cè)到有效時(shí)間碼,則過(guò)濾器將幀元數(shù)據(jù)密鑰lavfi.readvitc.tc_str與時(shí)間碼值相加兜粘。 根據(jù)是否已找到時(shí)間碼數(shù)據(jù)申窘,將進(jìn)一步的元數(shù)據(jù)鍵lavfi.readvitc.found設(shè)置為0/1

此過(guò)濾器接受以下選項(xiàng):

scan_max

設(shè)置要掃描VITC數(shù)據(jù)的最大行數(shù)孔轴。 如果該值設(shè)置為-1剃法,則掃描完整的視頻幀。 默認(rèn)值為45路鹰。

thr_b

設(shè)置黑色的亮度閾值贷洲。 接受[0.0,1.0]范圍內(nèi)的浮點(diǎn)數(shù)收厨,默認(rèn)值為0.2。 該值必須等于或小于thr_w优构。

thr_w

設(shè)置白色的亮度閾值诵叁。 接受[0.0,1.0]范圍內(nèi)的浮點(diǎn)數(shù),默認(rèn)值為0.6钦椭。 該值必須等于或大于thr_b拧额。

29.138.1 示例

  • 檢測(cè)VITC數(shù)據(jù)并將其繪制到視頻幀上; 如果沒(méi)有檢測(cè)到有效的VITC,請(qǐng)繪制--:--:--:--作為占位符:

      ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
    

29.139 remap

使用2nd:Xmap3rd:Ymap輸入視頻流重新映射像素彪腔。

將從源(x势腮,y)位置拾取位置(X,Y)處的目標(biāo)像素漫仆,其中x = Xmap(X捎拯,Y)并且y = Ymap(X,Y)盲厌。 如果映射值超出范圍署照,則像素的零值將用于目標(biāo)像素。

XmapYmap輸入視頻流必須具有相同的尺寸吗浩。 輸出視頻流將具有Xmap / Ymap視頻流尺寸建芙。 XmapYmap輸入視頻流是16bit深度,單通道懂扼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末禁荸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阀湿,更是在濱河造成了極大的恐慌赶熟,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陷嘴,死亡現(xiàn)場(chǎng)離奇詭異映砖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)灾挨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)邑退,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人劳澄,你說(shuō)我怎么就攤上這事地技。” “怎么了秒拔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵莫矗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)趣苏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任梯轻,我火速辦了婚禮食磕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喳挑。我一直安慰自己彬伦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布伊诵。 她就那樣靜靜地躺著单绑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曹宴。 梳的紋絲不亂的頭發(fā)上搂橙,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音笛坦,去河邊找鬼区转。 笑死,一個(gè)胖子當(dāng)著我的面吹牛版扩,可吹牛的內(nèi)容都是我干的废离。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼礁芦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蜻韭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起柿扣,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肖方,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后未状,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體窥妇,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年娩践,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了活翩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翻伺,死狀恐怖材泄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨岭,我是刑警寧澤拉宗,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響旦事,放射性物質(zhì)發(fā)生泄漏魁巩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一姐浮、第九天 我趴在偏房一處隱蔽的房頂上張望谷遂。 院中可真熱鬧,春花似錦卖鲤、人聲如沸第晰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至盆昙,卻和暖如春坎拐,著一層夾襖步出監(jiān)牢的瞬間束铭,已是汗流浹背炭分。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亏钩,地道東北人条摸。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像铸屉,于是被迫代替她去往敵國(guó)和親钉蒲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容