目录
变速moviepy.video.fx.accel_decel
黑白特效moviepy.video.fx.blackwhite
尺寸均匀moviepy.video.fx.even_size(剪裁视频像素为偶数)
淡入淡出moviepy.video.fx.fadein\fadeout
冷冻特效moviepy.video.fx.freeze_region\freeze
视频剪辑的伽玛校正moviepy.video.fx.gamma_corr
局部模糊特效moviepy.video.fx.headblur
色彩反转moviepy.video.fx.invert_colors
亮度/对比度调整moviepy.video.fx.lum_contrast
结尾逐渐淡入使自己可循环moviepy.video.fx.make_loopable
遮罩moviepy.video.fx.mask_and\mask_or\mask_color
镜像moviepy.video.fx.mirror_x\mirror_y
倒放moviepy.video.fx.time_mirror
正播倒播自动合成moviepy.video.fx.time_symmetrize
方法一:
from moviepy.editor import VideoFileClip, vfx
video = VideoFileClip('video.mp4', audio=False)
factor = 2 # 倍速播放倍数
final_duration = 1 # 倍速播放持续时间
newclip = (video.fx(vfx.speedx, factor, final_duration))
newclip.write_videofile('1.mp4')
方法二:
newclip = vfx.speedx(video, factor, final_duration)
newclip.write_videofile('1.mp4')
# def accel_decel(clip, new_duration=None, abruptness=1.0, soonness=1.0):
# 參數:
# new_duration:最后视频时长,默认是clip原时长
# abruptness:加速时间
# soonness:加速持续时间
newclip = vfx.accel_decel(video, new_duration=None, abruptness=10, soonness=10)
# def blackwhite(clip, RGB=None, preserve_luminosity=True):
# 參數:
# RGB:可选"CRT_phosphor",一组特殊值:[0.2125, 0.7154, 0.0721]
# preserve_luminosity:是否保持亮度,即preserve_luminosity是否与RGB的和保持为1
newclip = vfx.blackwhite(video)
# def blink(clip, d_on, d_off):
# 參數:
# 仅在composite clips中生效
# d_on:每d_on秒显示
# d_off:每s_off秒消失
video = VideoFileClip('video.mp4').set_opacity(.5)
newclip = vfx.blink(video, d_on=2, d_off=3)
# def colorx(clip, factor):
# 參數:
# factor:增幅系数
video = VideoFileClip('demo_video.mp4').set_opacity(.5)
newclip = vfx.colorx(video, factor=.8)
# def crop(clip, x1=None, y1=None, x2=None, y2=None, width=None, height=None, x_center=None, y_center=None,):
# 參數:
# 可以任意参数值组合完成裁剪...
# x1、y1表示裁剪区域的左上角坐标
# x2、y2表示裁剪区域的右下角坐标
# width、height表示裁剪区域宽度、高度
# x_center、y_center表示裁剪区域中心坐标
# (所有的坐标都以像素为单位,值为浮点数)
def even_size(clip): # 裁剪剪辑,使尺寸均匀
# def fadein(clip, duration, initial_color=None): # 淡入
# 參數:
# duration:变化时长
# initial_color:初始颜色(介于0和1之间的数字)
#
# def fadeout(clip, duration, final_color=None): # 淡出
# 參數:
# duration:变化时长
# final_color:终止颜色(介于0和1之间的数字)
newclip = vfx.fadein(video, duration=5, initial_color=.5)
newclip = vfx.fadeout(video, duration=3, final_color=.5)
# 局部冷冻特效
# def freeze_region(clip, t=0, region=None, outside_region=None, mask=None):
# 參數:
# t:冻结时刻
# region:冻结区域
# outside_region:非冻结区域
# mask:
# 冷冻特效
# def freeze(clip, t=0, freeze_duration=None, total_duration=None, padding_end=0):
# 參數:
# t:冻结时刻
# freeze_duration:冻结持续时间
# total_duration:总持续时间
# padding_end:
def gamma_corr(clip, gamma):
參數:
gamma:CRT的影像亮度呈现线性
# def headblur(clip, fx, fy, r_zone, r_blur=None):
# 參數:
# fx、fy:模糊原点坐标
# r_zone:模糊半径
# r_blur:模糊强度
# def invert_colors(clip):
# def loop(clip, n=None, duration=None):
# 參數:
# n:循环次数
# duration:持续时间
# def lum_contrast(clip, lum=0, contrast=0, contrast_thr=127):
# 參數:
# lum:亮度
# contrast:对比度
# contrast_thr:
# def make_loopable(clip, cross):
# 參數:
# cross:淡入持续时间
# def margin(clip, mar=None, left=0, right=0, top=0, bottom=0, color=(0, 0, 0), opacity=1.0):
# 參數:
# mar:外边框的宽度像素,mar指定了有效值,left、right、top、bottom设定不起作用
# left,right,top,bottom:边框左、右、顶和底的宽度
# color:边框颜色
# opacity:边框透明度,0完全透明,1完全不透明
# def mask_and(clip, other_clip):
# def mask_or(clip, other_clip):
# def mask_color(clip, color=None, thr=0, s=1):
# def mirror_x(clip, apply_to="mask"):
# def mirror_y(clip, apply_to="mask"):
# def painting(clip, saturation=1.4, black=0.006):
# def resize(clip, newsize=None, height=None, width=None, apply_to_mask=True):
# def rotate(clip, angle, unit="deg", resample="bicubic", expand=True):
# def scroll(clip, w=None, h=None, x_speed=0, y_speed=0, x_start=0, y_start=0, apply_to="mask"):
# def speedx(clip, factor=None, final_duration=None):
# def time_mirror(self):
# def time_symmetrize(clip):
# def supersample(clip, d, nframes): 我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer