FFplay文档解读-30-视频过滤器五

前言

Github地址:Github
简书地址:简书
专辑地址:FFplay专辑

29.40 detelecine

应用电视电影操作的精确倒数。 它需要使用pattern选项指定的预定义模式,该模式选项必须与传递给电视电影过滤器的模式选项相同。

此过滤器接受以下选项:

first_field
选项 解释
top, t top field first
bottom, b 底部字段优先默认值为top
pattern

一串数字,表示希望应用的下拉模式。 默认值为23

start_frame

表示第一帧相对于电视电影图案的位置的数字。 如果要切割流,则使用此选项。 默认值为0

29.41 dilation

将扩张效果应用于视频。

此过滤器将像素替换为本地(3x3)最大值。

它接受以下选项:

threshold0
threshold1
threshold2
threshold3

限制每个平面的最大变化,默认为65535.如果为0,则平面将保持不变。

coordinates

指定要参考的像素的标志。 默认值为255,即使用所有八个像素。

标志到本地3x3坐标映射如下:

1 2 3 4 5 6 7 8

29.42 displace

移位由第二和第三输入流指示的像素。

它需要三个输入流并输出一个流,第一个输入是源,第二个和第三个输入是位移图。

第二个输入指定沿x轴移动像素的程度,而第三个输入指定沿y轴移动像素的程度。 如果位移图流之一终止,则将使用来自该置换图的最后一帧。

请注意,一旦生成,位移贴图可以反复重复使用。

接下来的选项的描述如下:

edge

设置超出范围的像素的置换行为。

可用值包括:

解释
blank 丢失的像素被黑色像素替换
smear 相邻像素将展开以替换丢失的像素
wrap 超出范围的像素被包裹,因此它们指向另一侧的像素
mirror 超出范围的像素将替换为镜像像素

默认值是:smear

29.42.1 示例

  • rgb输入的视频大小hd720添加涟漪效果:

      ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
    
  • wave效果添加到视频大小为hd720rgb输入中:

      ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
    

29.43 drawbox

在输入图像上绘制一个彩色框。

它接受以下参数:

x
y

指定框左上角坐标的表达式。 它默认为0

width, w

height, h

指定框的宽度和高度的表达式; 如果为0,则将它们解释为输入宽度和高度。 它默认为0

color, c

指定要写入的框的颜色。 有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。 如果使用特殊值反转,则框边缘颜色与具有反转亮度的视频相同。

thickness, t

设置框边缘厚度的表达式。 填充值将创建一个填充框。 默认值为3

请参阅下面的可接受常数列表。

replace

如果输入具有alpha,则适用。 值为1时,绘制框的像素将覆盖视频的颜色和alpha像素。 默认值为0,它将框组合到输入上,使视频的alpha保持不变

x,y,wht的参数是包含以下常量的表达式:

dar

输入显示宽高比,与(w/h)* sar相同。

hsub
vsub

水平和垂直色度子样本值。 例如,对于像素格式yuv422phsub2vsub1

in_h, ih
in_w, iw

输入的宽度和高度

sar

输入样本宽高比。

x
y

绘制框的xy偏移坐标。

w
h

绘制框的宽度和高度。

t

拉框的厚度。

这些常量允许x,y,w,ht表达式相互引用,因此可以指定y = x / darh = w / dar

29.43.1 示例

  • 在输入图像的边缘周围绘制一个黑框:

      drawbox
    
  • 画一个红色和不透明度为50%的box

      drawbox=10:20:200:60:red@0.5 
    
  • 前面的示例可以指定为:

      drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    
  • 用粉红色填充box

      drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
    
  • 画一个2像素的红色2.40:1面具:

      drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    

29.44 drawgrid

在输入图像上绘制网格。

它接受以下参数:

x
y

指定网格交叉点某些点的坐标的表达式(用于配置偏移量)。 两者都默认为0

width, w

height, h

指定网格单元格的宽度和高度的表达式,如果为0,它们分别被解释为输入宽度和高度减去厚度,因此图像被加框。 默认为0

color, c

指定网格的颜色。 有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。 如果使用特殊值反转,则网格颜色与具有反转亮度的视频相同。

thickness, t

设置网格线粗细的表达式。 默认值为1

请参阅下面的可接受常数列表。

replace

如果输入具有alpha,则适用。 使用1时,绘制网格的像素将覆盖视频的颜色和alpha像素。 默认值为0,它将网格合成到输入上,使视频的alpha保持不变。

x,y,wht的参数是包含以下常量的表达式:

dar

输入显示宽高比,与(w / h)* sar相同。

hsub
vsub

水平和垂直色度子样本值。 例如,对于像素格式yuv422phsub2vsub1

in_h, ih
in_w, iw

输入网格单元的宽度和高度。

sar

输入样本宽高比。

x
y

网格交叉点某些点的xy坐标(用于配置偏移量)。

w
h

绘制单元格的宽度和高度。

t

拉伸细胞的厚度。

这些常量允许xywht表达式相互引用,因此可以指定y = x / darh = w / dar

29.44.1 示例

  • 绘制一个网格,单元格为100x100像素,厚度为2像素,红色为红色,不透明度为50%

      drawgrid=width=100:height=100:thickness=2:color=red@0.5
    
  • 绘制白色3x3网格,不透明度为50%

      drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    

29.45 drawtext

使用libfreetype库从视频顶部的指定文件中绘制文本字符串或文本。

要启用此过滤器的编译,需要使用--enable-libfreetype配置FFmpeg。 要启用默认字体回退和字体选项,需要使用--enable-libfontconfig配置FFmpeg。 要启用text_shaping选项,需要使用--enable-libfribidi配置FFmpeg

29.45.1 语法

它接受以下参数:

box

用于使用背景颜色在文本周围绘制一个框。该值必须为1(启用)或0(禁用)。 box的默认值为0

boxborderw

使用boxcolor设置要在框周围绘制的边框宽度。 boxborderw的默认值为0

boxcolor

用于在文本周围绘制框的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

boxcolor的默认值为white

line_spacing

使用框设置要在框周围绘制的边框的行间距(以像素为单位)。 line_spacing的默认值为0

borderw

使用bordercolor设置要在文本周围绘制的边框宽度。 borderw的默认值为0

 bordercolor

设置用于在文本周围绘制边框的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

bordercolor的默认值为black

expansion

选择文本的展开方式。可以是nonestrftime(不建议使用)或normal(默认)。有关详情,请参阅下面的文本扩展部分。

basetime

设置计数的开始时间。值以微秒为单位。仅适用于弃用的strftime扩展模式。要在正常扩展模式下模拟,请使用pts函数,以第二个参数的形式提供开始时间(以秒为单位)。

fix_bounds

如果为true,请检查并修复文本坐标以避免剪裁。

fontcolor

用于绘制字体的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

fontcolor的默认值为black

fontcolor_expr

以与文本相同的方式展开的字符串,以获取动态fontcolor值。默认情况下,此选项具有空值,不会被处理。设置此选项后,它将覆盖fontcolor选项。

font

用于绘制文本的字体系列。默认为Sans

fontfile

用于绘制文本的字体文件。必须包含路径。如果禁用了fontconfig支持,则此参数是必需的。

alpha

绘制应用alpha混合的文本。该值可以是介于0.01.0之间的数字。表达式也接受相同的变量xy。默认值为1。请参阅fontcolor_expr

fontsize

用于绘制文本的字体大小。 fontsize的默认值为16

text_shaping

如果设置为1,则在绘制之前尝试对文本进行整形(例如,反转从右到左文本的顺序并加入阿拉伯字符)。否则,只需按照给定的方式绘制文本。默认为1(如果支持)。

ft_load_flags

用于加载字体的标志。

标志映射libfreetype支持的相应标志,并且是以下值的组合:

default
no_scale
no_hinting
render
no_bitmap
vertical_layout
force_autohint
crop_bitmap
pedantic
ignore_global_advance_width
no_recurse
ignore_transform
monochrome
linear_design
no_autohint

默认值是:default

有关更多信息,请参阅FT_LOAD_ * libfreetype标志的文档。

shadowcolor

用于在绘制文本后面绘制阴影的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

shadowcolor的默认值为black

shadowx
shadowy

文本阴影位置相对于文本位置的xy偏移量。它们可以是正值或负值。两者的默认值均为0

start_number

n/frame_num变量的起始帧号。默认值为0

tabsize

用于呈现选项卡的空格数量的大小。默认值为4

timecode

将初始时间码表示设置为hh:mm:ss[:;.]ff格式。它可以与或不与文本参数一起使用。必须指定timecode_rate选项。

timecode_rate,rate,r

设置时间码帧速率(仅限时间码)。值将四舍五入为最接近的整数。最小值为1。帧速率3060支持丢帧时间码。

tc24hmax

如果设置为1,则时间码选项的输出将在24小时后回滚。默认值为0(禁用)。

text

要绘制的文本字符串。文本必须是UTF-8编码字符序列。如果未使用参数textfile指定文件,则此参数是必需的。

textfile

包含要绘制的文本的文本文件。文本必须是UTF-8编码字符序列。

如果未使用参数文本指定文本字符串,则此参数是必需的。

如果同时指定了texttextfile,则会引发错误。

reload

如果设置为1,则将在每个帧之前重新加载文本文件。请务必以原子方式更新,或者可以部分读取,甚至失败。

x
y

用于指定在视频帧内绘制文本的偏移的表达式。它们相对于输出图像的顶部/左侧边框。

xy的默认值为0

请参阅下面的可接受常量和函数列表。

xy的参数是包含以下常量和函数的表达式:

dar

输入显示宽高比,与(w / h) * sar相同

hsub
vsub

水平和垂直色度子样本值。例如,对于像素格式yuv422phsub2vsub1

line_h,lh

每个文本行的高度

main_h,h,H

输入高度

main_w,w,W

输入宽度

max_glyph_a,ascent

对于所有渲染的字形,从基线到用于放置字形轮廓点的最高/上部网格坐标的最大距离。这是一个正值,因为网格的方向是y轴向上。

 max_glyph_d, descent

对于所有渲染的字形,从基线到用于放置字形轮廓点的最低网格坐标的最大距离。这是一个负值,由于网格的方向,y轴向上。

max_glyph_h

最大字形高度,即渲染文本中包含的所有字形的最大高度,相当于上升 - 下降。

max_glyph_w

最大字形宽度,即渲染文本中包含的所有字形的最大宽度

n

输入帧的数量,从0开始

rand(min, max)

返回minmax之间包含的随机数

sar

输入样本宽高比。

t

时间戳以秒表示,如果输入时间戳未知,则为NAN

text_h,th

渲染文本的高度

text_w,tw

渲染文本的宽度

x
y

绘制文本的xy偏移坐标。

这些参数允许xy表达式相互引用,因此可以指定y=x/dar

29.45.2 文字扩展

如果expansion设置为strftime,则过滤器会识别提供的文本中的strftime()序列并相应地展开它们。查看strftime()的文档。此功能已弃用。

如果expansion设置为none,则逐字打印文本。

如果expansion设置为normal(默认值),则使用以下扩展机制。

反斜杠字符'\',后跟任何字符,始终扩展为第二个字符。

形式%{...}的序列被扩展。大括号之间的文本是函数名称,可能后跟以':'分隔的参数。如果参数包含特殊字符或分隔符(':'或'}'),则应对其进行转义。

请注意,它们可能也必须作为filter参数字符串中'text'选项的值进行转义,并作为filtergraph描述中的filter参数进行转义,也可能对shell进行转义,最多可以转义为四个级别;使用文本文件可以避免这些问题。

可以使用以下功能:

expr, e

表达评估结果。

它必须使用一个参数来指定要计算的表达式,它接受与xy值相同的常量和函数。请注意,并非所有常量都应该使用,例如,在计算表达式时,文本大小是未知的,因此常量tex​​t_wtext_h将具有未定义的值。

expr_int_format,eif

将表达式的值和输出计算为格式化整数。

第一个参数是要计算的表达式,就像expr函数一样。第二个参数指定输出格式。允许的值为xXdu。它们的处理方式与printf函数完全相同。第三个参数是可选的,它设置输出所占的位置数。它可用于从左侧添加带零的填充。

gmtime

过滤器运行的时间,以UTC表示。它可以接受一个参数:strftime()格式字符串。

localtime

过滤器运行的时间,以本地时区表示。它可以接受一个参数:strftime()格式字符串。

metadata

帧元数据。需要一个或两个参数。

第一个参数是必需的,并指定元数据键。

第二个参数是可选的,它指定一个默认值,在找不到元数据键或空时使用。

n,frame_num

帧号,从0开始。

pict_type

当前图片类型的1个字符描述。

pts

当前帧的时间戳。它最多可能需要三个参数。

第一个参数是时间戳的格式;它默认以十进制数表示为十进制数,精确到微秒; hms代表格式化的[-]HH:MM:SS.mmm时间戳,精度为毫秒。 gmtime代表格式化为UTC时间的帧的时间戳; localtime代表格式化为本地时区时间的帧的时间戳。

第二个参数是添加到时间戳的偏移量。

如果格式设置为localtimegmtime,则可以提供第三个参数:strftime()格式字符串。默认情况下,将使用YYYY-MM-DD HH:MM:SS格式。

29.45.3 示例

  • 使用FreeSerif字体绘制Test Text,使用可选参数的默认值。

      drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    
  • 使用大小为24的字体FreeSerif在位置x = 100y = 50(从屏幕的左上角开始计数)绘制’Test Text’,文本为黄色,周围有一个红色框。 文本和框的不透明度均为20%

      drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
        x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    

  请注意,如果参数列表中未使用空格,则不需要双引号。

  • 在视频帧的中心显示文本:

      drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
    
  • 在随机位置显示文本,每30秒切换到一个新位置:

      drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
    
  • 在视频帧的最后一行显示从右到左滑动的文本行。 假设文件'LONG_LINE'包含一行而没有换行符。

      drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    
  • 在框架底部显示文件“CREDITS”的内容并向上滚动。

      drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    
  • 在输入视频的中心绘制一个绿色字母g。 字形基线位于半屏高度。

      drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    
  • 3秒显示1秒钟的文字:

      drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    
  • 使用fontconfig设置字体。 请注意,冒号需要转义。

      drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    
  • 打印实时编码的日期(参见strftime(3)):

      drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
    
  • 显示文本淡入淡出(出现/消失):

      #!/bin/sh
      DS=1.0 # display start
      DE=10.0 # display end
      FID=1.5 # fade in duration
      FOD=5 # fade out duration
      ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
    
  • 水平对齐多个单独的文本。 请注意,'max_glyph_a''fontsize'值包含在'y'偏移中。

      drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
      drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
    

有关libfreetype的更多信息,请访问:http://www.freetype.org/

有关fontconfig的更多信息,请访问:http://freedesktop.org/software/fontconfig/fontconfig-user.html

有关libfribidi的更多信息,请访问:http://fribidi.org/

29.46 edgedetect

检测并绘制边缘。 过滤器使用Canny边缘检测算法。

过滤器接受以下选项:

low
high

设置Canny阈值算法使用的低和高阈值。

高阈值选择"strong"边缘像素,然后通过8连接与由低阈值选择的"weak"边缘像素连接。

必须在[0,1]范围内选择低阈值和高阈值,低值应小于或等于高。

low的默认值是20/255high的默认值是50/255

mode

定义绘图模式。

绘图模式 解释
wires 在黑背景画白色/灰色导线
colormix 混合颜色以创建油漆/卡通效果

默认值是:wires

29.46.1 示例

  • 使用滞后阈值的自定义值进行标准边沿检测:

      edgedetect=low=0.1:high=0.4
    
  • 没有阈值的绘画效果:

      edgedetect=mode=colormix:high=0
    

29.47 eq

设置亮度,对比度,饱和度和近似伽玛调整。

过滤器接受以下选项:

contrast

设置对比度表达式。该值必须是-2.02.0范围内的浮点值。默认值为1

brightness

设置亮度表达式。该值必须是-1.01.0范围内的浮点值。默认值为0

saturation

设置饱和度表达式。该值必须是0.03.0范围内的浮点数。默认值为1

gamma

设置gamma表达式。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_r

gamma表达式设置为红色。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_g

gamma表达式设置为绿色。该值必须是0.110.0范围内的浮点数。默认值为“1”。

gamma_b

gamma表达式设置为蓝色。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_weight

设置gamma权重表达式。它可以用于降低高伽马值对明亮图像区域的影响,例如,防止它们变得过于简单,只是白色。该值必须是0.01.0范围内的浮点数。值0.0gamma校正完全降低,而1.0使其保持全部强度。默认值为1

eval

设置亮度,对比度,饱和度和gamma表达式的表达式时进行设置。

它接受以下值:

解释
init 仅在过滤器初始化期间或处理命令时评估表达式
frame 计算每个传入帧的表达式

默认值是:init

表达式接受以下参数:

n

0开始的输入帧的帧数。

pos

输入文件中相应数据包的字节位置,如果未指定则为NAN

r

输入视频的帧速率,如果输入帧速率未知,则为NAN

t

时间戳以秒表示,如果输入时间戳未知,则为NAN

29.47.1 命令行

该过滤器支持以下命令:

contrast

设置对比度表达式。

brightness

设置亮度表达式。

saturation

设置饱和度表达式。

gamma

设置gamma表达式。

gamma_r

设置gamma_r表达式。

gamma_g

设置gamma_g表达式。

gamma_b

设置gamma_b表达式。

gamma_weight

设置gamma_weight表达式。

该命令接受相应选项的相同语法。

如果指定的表达式无效,则保持其当前值。

29.48 erosion

对视频应用侵蚀效果。

此过滤器将像素替换为本地(3x3)最小值。

它接受以下选项:

threshold0
threshold1
threshold2
threshold3

限制每个平面的最大变化,默认为65535。如果为0,则平面将保持不变。

coordinates

指定要参考的像素的标志。 默认值为255,即使用所有八个像素。

标志到本地3x3坐标映射如下:

1 2 3 4 5 6 7 8

29.49 extractplanes

将输入视频流中的颜色通道组件提取到单独的灰度视频流中。

过滤器接受以下选项:

planes

设置要提取的平面。

planes的可用值为:

‘y’
‘u’
‘v’
‘a’
‘r’
‘g’
‘b’

选择输入中不可用的平面将导致错误。 这意味着无法同时选择具有yuv平面的rgb平面。

29.49.1 示例

  • 将输入视频帧中的lumauv颜色通道分量提取为3个灰度输出:

      ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,365评论 0 5
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 25,963评论 5 19
  • 1.大小孩了,会自己当心 今天和妈妈一起在炕上玩,萌宝很开心,一会躲到窗帘后面,一会钻到被子里面,一会又站到窗台上...
    小多媛媛阅读 252评论 0 0
  • 泊松试验 泊松试验是具有以下性质的试验: 1、每次试验的结果是成功或者失败; 2、在指定区域中,平均的成功次数已知...
    data_x阅读 2,291评论 0 1