如何将 aviglitch 脚本应用于文件夹中的每个文件?

本尼

我正在努力在文件夹中的每个文件上使用 aviglitch 脚本。我需要它 1. 打开每个文件并执行更改 2. 导出每个新文件,并在原始文件名前添加一个前置的 glitch_

以下是相关的代码行:

Dir.glob("*.avi") do |filename|

a = AviGlitch.open '#{filename}'

o.output 'glitch_#{filename}'

end

该脚本给了我以下错误:

"C:\Users\Admin\Documents\Projects\VIDEO\0000_BLENDER SCRIPT RENDER\cig_fast_2frames\8frames>cig_fast_2frames_glitch.rb 回溯(最近一次调用):7:来自 C:/Users/Admin/Documents/Projects/VIDEO/0000000 SCRIPT RENDER / cig_fast_2frames / 8frames / cig_fast_2frames_glitch.rb:6:在<main>' 6: from C:/Users/Admin/Documents/Projects/VIDEO/0000_BLENDER SCRIPT RENDER/cig_fast_2frames/8frames/cig_fast_2frames_glitch.rb:6:in水珠'5:从C:/用户/管理员/文件/项目/ VIDEO / 0000_BLENDER SCRIPT RENDER / cig_fast_2frames / 8frames / cig_fast_2frames_glitch.rb:8:block in <main>' 4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/aviglitch-0.1.5/lib/aviglitch.rb:46:in开放式' 3 : 来自 C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/aviglitch-0.1.5/lib/aviglitch.rb:46:in new' 2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/aviglitch-0.1.5/lib/aviglitch/base.rb:18:ininitialize' 1: 来自 C:/Ruby25-x64/lib/ ruby/gems/2.5.0/gems/aviglitch-0.1.5/lib/aviglitch/base.rb:18:in open' C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/aviglitch-0.1.5/lib/aviglitch/base.rb:18:ininitialize': 没有这样的文件或目录@rb_sysopen - #{filename} (Errno::ENOENT)"

如果我在手动输入文件名的情况下运行脚本,它会起作用。我究竟做错了什么?

这是整个代码:

require 'aviglitch'

Dir.glob("*.avi") do |filename|

a = AviGlitch.open '#{filename}'       # Rewrite this line for your file.
rep = 3
inc_rep = 0
inc_fr = 1
framecount = 0
d = []
a.frames.each_with_index do |f, i|
  d.push(i) if f.is_deltaframe?     # Collecting non-keyframes indices.
end
q = a.frames[0, 5]                  # Keep first key frame.

6.times do
  x = a.frames[d[framecount], 1]  # Select a certain non-keyframe.
  q.concat(x * rep)            # Repeat the frame n times and concatenate with q.
framecount = framecount + inc_fr
rep = rep + inc_rep
end
o = AviGlitch.open q                # New AviGlitch instance using the frames.
o.mutate_keyframes_into_deltaframes!(range = nil)
o.output 'glitch_#{filename}'

end

谢谢

本尼

于尔基

您正在尝试在单引号字符串 ( ')内进行字符串插值,这不起作用,因为它们不允许字符串插值或转义序列(例如\n)。

使用双引号字符串 ( ") 代替:

Dir.glob("*.avi") do |filename|
  a = AviGlitch.open(filename)  # no string interpolation needed here, just passing the filename is enough
  o.output "glitch_#{filename}"
end

另见双引号与单引号

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何仅将conftest.py中的Fixture应用于内部文件夹

如何将意图应用于整个文件

如何将ItemAdd事件应用于自定义文件夹?Outlook 2010 VBA

如何将标签应用于Ansible任务文件中的每个命令?

将现有的VBS文件夹搜索应用于子文件夹?

如何将yapf应用于目录下的每个python文件?

Google脚本应用-将文件保存在特定文件夹中

如何将此脚本应用于Google表格中的整个列?

Matlab代码将转换应用于文件夹中的每个文件

如何将cat(UNIX)命令分别应用于文件夹中的所有文件?

将gawk脚本应用于文件夹中的多个文件

如何将dos2unix递归应用于文件夹的所有内容?

如何将布局和模板应用于其他控制器文件夹?

如何将Google Apps脚本应用于gmail屏幕上的gmail邮件

将补丁文件夹应用于Linux内核

如何将.patch文件应用于项目?

如何将自动消息过滤器也应用于子文件夹?

如何将正则表达式应用于包含.txt文件的文件夹?

如何使用循环将awk脚本应用于一个文件夹中的多个文件

如何将browserify应用于gulp文件?

将bash操作应用于文件夹的第一级子文件夹

Google 应用程序脚本 如何将多个文件移动到一个文件夹中?

如何将文件批量移动到与每个文件名对应的文件夹中?

如何将此 html 脚本应用于 jQuery?

如何将引导程序类应用于 css 文件中的每个相同的 HTML 元素?

如何将脚本应用于所有模态弹出窗口

如何将 Unity 脚本应用于多个图层?

如何将谷歌脚本应用于交替行?

如何将 Praat 脚本应用于音频文件?