小编use*_*159的帖子

使用ffmpeg生成无任何失真的视频缩略图

200x100为了从视频中获取缩略图,我这样做了ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -s 200x100 image.jpg。但是,如果源视频的宽高比与 不同200x100,则缩略图会变形(拉伸或压扁,水平或垂直),并且看起来很糟糕。

有没有一种方法ffmpeg可以找出500x200视频太宽的情况,然后从右侧和左侧100px删除,从而制作视频?并且由于与 的宽高比相同,因此缩略图不会变形。50px50px400x200400x200200x100

我知道还有其他工具可以对 生成的缩略图执行此操作ffmpeg,但我更喜欢在其中执行此操作ffmpeg,而不必再次处理缩略图。

video ffmpeg image thumbnails video-processing

4
推荐指数
1
解决办法
8187
查看次数

陷阱特定的命名唯一约束异常

我想在 plpgsql 函数中捕获一个异常,如果它违反特定的命名唯一约束,并且对于所有其他情况向客户端抛出原始错误,包括其他唯一约束(匹配不同的名称)。

我可以在手册中看到如何使用 对所有独特的约束违规执行此操作EXCEPTION WHEN unique_violation THEN,但是我如何仅针对特定的约束执行此操作?

postgresql error-handling plpgsql unique-constraint

4
推荐指数
1
解决办法
1315
查看次数

如何更改ES6箭头功能的'this'指向的内容?

traversenpm包中有这个例子

var obj = [ 5, 6, -3, [ 7, 8, -2, 1 ], { f : 10, g : -13 } ];

traverse(obj).forEach(function (x) {
    if (x < 0) this.update(x + 128);
});
Run Code Online (Sandbox Code Playgroud)

在回调函数内部,您可以调用this.update.我知道在这种情况下你应该使用常规(不是ES6箭头)样式的函数定义,如上所示.

但出于好奇,你如何使用ES6箭头函数语法使代码工作?如果我尝试如下,我得到TypeError: Cannot read property 'update' of undefined因为当然this不同于上面.

traverse(obj).forEach((x) => {
    if (x < 0) this.update(x + 128);
});
Run Code Online (Sandbox Code Playgroud)

我尝试this通过使用改变,bind但没有成功.你如何改变thisES6箭头功能?

javascript callback this node.js ecmascript-6

3
推荐指数
1
解决办法
1110
查看次数

让 postgres 显示 UTC 中的所有 TIMESTAMP WITH TIME ZONE 列

当我执行SELECT输出TIMESTAMP WITH TIME ZONE列的语句时,它在输出中不包括时区。在将其转换为我的本地时区后,它仅输出不带时区的日期和时间。

我有两个问题:

  • 如何让所有TIMESTAMP WITH TIME ZONE列始终在输出中显示其时区,而不是默认忽略它?
  • 如何让所有TIMESTAMP WITH TIME ZONE列以默认时区输出UTC?我知道有多种方法可以在每个查询的基础上执行此操作,但我希望在每种情况下都需要修改任何查询。那么服务器设置可能吗?

sql postgresql timezone timestamp

3
推荐指数
1
解决办法
5585
查看次数

如何为postgres中的每个插入行获取pg_notify通知?

我试图pg_notify在将新行插入到表中时触发a ,但是总的来说,我只收到一个通知,而不是为每个新插入的行都收到通知。

触发是

CREATE TRIGGER "testNotify"
AFTER INSERT ON mine.test
FOR EACH ROW EXECUTE PROCEDURE mine."testNotify"()
Run Code Online (Sandbox Code Playgroud)

该功能是

CREATE OR REPLACE FUNCTION mine."testNotify"()
  RETURNS TRIGGER AS $$
DECLARE
BEGIN
  PERFORM pg_notify('testNotify', 'test payload');
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

插入是

INSERT INTO mine.test (one, two, three)
SELECT one, two, three FROM temptable
ON CONFLICT DO NOTHING
Run Code Online (Sandbox Code Playgroud)

我已经以这种方式成功插入了大约100,000行,因此,如果我的应用程序这样做LISTEN "testNotify",我希望看到很多通知,但是,它只会得到1,其通道为testNotify,有效负载为test payload。我在上面做错了吗?

postgresql triggers plpgsql

3
推荐指数
1
解决办法
3077
查看次数

Postgres根据2列汇总结果

在postgres 9.6中,我有一个包含这3列的表格.

id | val1 | val2
------------------
1  | x    | 1
1  | x    | 2
1  | x    | 3
1  | y    | 4
2  | y    | 1
2  | y    | 2
Run Code Online (Sandbox Code Playgroud)

我可以使用聚合函数将其转换为此吗?

id | 
------------------------------
1  | { x: [1, 2, 3], y: [4] }
2  | { y: [1, 2] }
Run Code Online (Sandbox Code Playgroud)

或者如果我正在寻找的东西是不可能的,那么下面的东西也可以起作用.或者任何允许我在我的应用程序代码中将结果转换为上述内容的东西.

id | 
------------------------------
1  | [ {x: 1}, {x: 2}, {x: 3}, {y: 4} ]
2  | [ {y: 1}, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql select group-by

3
推荐指数
2
解决办法
304
查看次数

如何在Ansible中运行shell函数作为命令?

我正在使用nvm(https://github.com/creationix/nvm),它本质上是一个shell脚本,您可以将其导入shell,然后调用nvm install [version].但无论我如何尝试并调用该函数,ansible似乎都无法找到它.

我尝试过使用commandshell模块.我尝试过使用becomebecome_user.我尝试过sudo -iuhttps://github.com/leonidas/ansible-nvm/blob/master/tasks/main.yml中使用,但它对我不起作用.它必须是可能的,因为它在该文件中工作.

如何在Ansible中运行任何shell函数?在这种情况下source nvm.sh,我的.zshrc中有一个允许我nvm从交互式shell中执行命令.

bash shell nvm ansible ansible-playbook

2
推荐指数
1
解决办法
1797
查看次数

NodeJS获得流文件下载的字节数

在这段代码中,我从URL流式传输文件并将其保存到文件中。是否有一种方法也可以通过某种方式对它进行管道传输,以计算管道传输的字节数?(这会告诉我文件的大小。)

  request.stream(url)
    .pipe(outputFile)
Run Code Online (Sandbox Code Playgroud)

是否有一些库可以通过下载通过下载的库来做到这一点,或者我自己做一个简单的方法呢?

javascript download stream node.js

2
推荐指数
1
解决办法
3775
查看次数

仅当行数低于限制时,Postgres 才插入行

我想在 Postgres 10 中有一个 SQL 语句或函数,它允许我仅在行数少于一定数量的情况下插入一行。

select count(*) from mytable where mykey = 1
--- do the following only if the above is less than 5
insert into mytable (myvalue, mykey) values ('randomvalue', 1)
--- so there are never more than 5 rows in mytable with mykey = 1
Run Code Online (Sandbox Code Playgroud)

像这个伪代码这样的东西会在应用程序中工作吗(对 postgres 服务器的多次往返调用)?

tx = app.tx("start transaction");
count = tx.query("select count(*) from mytable where mykey = 1")
if (count < 5) {
  tx.query("insert into mytable (myvalue, mykey) values ('randomvalue', 1)")
} …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

2
推荐指数
1
解决办法
2006
查看次数

每当未成功创建缩略图时,强制ffmpeg以错误代码退出

要在100几秒钟内从图像获取缩略图,我可以做ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -s 200x100 image.jpg。但是,如果视频时间少于100几秒钟,则ffmpeg不会创建缩略图,也不会退出并显示任何错误代码,这是非常意外的。

该命令将退出,没有错误代码(退出状态为0)。它只会输出一条stderr说出的信息Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

我希望ffmpeg在未创建缩略图的任何情况下以错误代码退出。否则,在ffmpeg命令之后,我将始终必须从应用程序代码中再次进行检查,以确保已将预期数量的缩略图输出到文件系统。

是否有办法解决这个应用程序级检查,并迫使ffmpeg在未成功将缩略图写入文件系统时失败?

video ffmpeg image image-processing thumbnails

1
推荐指数
1
解决办法
1017
查看次数

向 ffprobe/ffmpeg 添加“超时”标志会导致它立即失败

如果我运行ffprobe -timeout 20 -v trace -print_format json -show_format -show_streams 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_2mb.mp4'Connection timed out即使我将超时设置为 20 秒,命令也会立即失败并显示错误。它不会在接近 20 秒的任何地方等待,只是立即退出,退出代码为 1。这是跟踪输出。

ffprobe version 3.2.2 Copyright (c) 2007-2016 the FFmpeg developers
  built with gcc 6.2.1 (GCC) 20160830
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  libavutil      55. …
Run Code Online (Sandbox Code Playgroud)

video timeout ffmpeg ffprobe

1
推荐指数
1
解决办法
5587
查看次数

JS regexp基于不带反斜杠的字符来拆分字符串

我想使用JS String split函数仅根据逗号分割此字符串,,而不是以反斜杠开头的逗号/,.我怎样才能做到这一点?

'this,is\,a,\,string'.split(/,/)
Run Code Online (Sandbox Code Playgroud)

这段代码将它拆分为所有字符串,我不知道如何让它只在不带反斜杠的逗号上拆分.

javascript regex string node.js

1
推荐指数
1
解决办法
778
查看次数

为什么这个CSS动画(变换:缩放)从错误的位置开始?

我有这个示例代码http://codepen.io/anon/pen/yaZopZ(下面的相关片段),当您单击按钮时,模态元素应该通过在屏幕中心打开并从它的全尺寸没什么.但是,它会在动画开头的右下方打开,然后在屏幕中央结束.我需要更改为该代码以使其按预期工作?

当您单击图像时,它应该与http://www.w3schools.com/w3css/tryit.asp?filename=tryw3css_modal_image中的动画类似.但与该示例不同,我的示例在您在后台单击并需要保留该功能时关闭模式.

这是动画的一部分

@keyframes animatezoom {
  from {
    transform: scale(0)
  }
  to {
    transform: scale(1)
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是动画

.modal {
  display: block;
  width: 600px;
  max-width: 100%;
  height: 400px;
  max-height: 100%;
  position: fixed;
  z-index: 100;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: white;
  box-shadow: 0 0 60px 10px rgba(0, 0, 0, 0.9);
  animation: animatezoom 0.3s;
}
Run Code Online (Sandbox Code Playgroud)

如果问题不在这里,其余的代码在我上面发布的codepen中(http://codepen.io/anon/pen/yaZopZ).

html javascript css modal-dialog css-animations

0
推荐指数
1
解决办法
110
查看次数