ffmpeg change fps

With re-encoding:

ffmpeg -y -i seeing_noaudio.mp4 -vf "setpts=1.25*PTS" -r 24 seeing.mp4

Without re-encoding:

First step – extract video to raw bitstream

ffmpeg -y -i seeing_noaudio.mp4 -c copy -f h264 seeing_noaudio.h264

Remux with new framerate

ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4

ubuntu static ip

sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.17.11
netmask 255.255.255.0
network 192.168.17.0
gateway 192.168.17.254
dns-nameservers 192.168.17.254
dns-domain zeddal.com
dns-search zeddal.com

How to Limit Nginx download Speed

In my case, I used this options inside a location block… among other configurations, the main directives added are these two:

location ^~ /videos/ {

limit_rate_after 1m;
limit_rate 150k;

}
The fist one, limits the connection rate after the size you specify, in my case I wanted to have 1mb for the initial video buffering, and then after users reach 1mb, set the limit_rate to 150k per second, which is about 1.5MBits.

Be aware that this solution limits nginx download speed per connection, so, if one user opens multiple video files, it will be able to download 150k x the number of times he connected to the video files. If you need to set a limit to the connections, you should be able to do it with limit_zone and limit_conn directives. Example:

Inside your server block configuration:

limit_rate 128K; limit_zone one $binary_remote_addr 10m;
Inside your location block configuration:

limit_conn one 10;
In this example, it would allow 10 connections per IP with 1 Mbit each.

打卡流程

## 小孩学习流程

### 文档目的
明确学习流程,打到内部共识

### 详细描述(时间轴)

#### 首次使用,第一课
家长用自己的手机打开微信,通过广告页进入购买,完成后导航到产品首页(产品首页前有个集中loading页面不过不是很重要)。小孩开始学习第一课,家长会在边上看着,指导小孩使用(是否需要告知家长第一次需要指导?)。根据小孩回答问题到程度,我们可以让他过了第一课,或者选择让他重新学习第一课。我们可以设定一个指标(比如需要回答对90%的题目或者需要全部做对)达到了就让他解锁第二课,没有达到不解锁并且提示他需要重新学习。这里要设计一个页面很遗憾地告诉他你这次差一点点没有通过,再来一次吧。

#### 第二次使用,第二课 或者 如果第一课没有过,重复第一课

– 第二课
这里和第一课打卡过程类似,但是家长可以选择只观察全部让小孩自己操作。出现问题才指点。第二课也是需要达到预设的通过指标(比如需要回答对90%的题目或者需要全部做对),否则算没有过。

– 重复第一课
简单重复第一课,达到指标才能解锁第二课。

#### 重复这个过程直到解锁小测试一

简述可能的过程如下,这个过程看似复杂,其实都是我们自己算法,从小孩来看其实并不难follow

– 第一天:小孩做第一课(第一次没过),重复做第一课(还是没过),继续重复,这次过了,解锁第二课。
– 第二天:做第二课第一次没过,重复做第二课过了,解锁第三课。
– 第三天:做第三课第一次没过,重复,解锁第四课。
– 第四天:做第四课第一次没过,重复,解锁第五课。
– 第五天: 类似,最后解锁单元测试。单元测试我们会设定一个阀值。过了才算整个1-5过了。否则的话还是没过,需要提示小盆友去重复1-5课的学习过程,再来做单元测试。比如单元测试里面题一他没有做对,那我们需要记录下来,然后汇总,然后我们知道他需要再去做1-5题中的那些部份,比如他需要重新做第一课,第三课。这个时候单元测试的结算页面就会显示,很抱歉你没有通过(但是更婉转),你可以前往学习第一课第三课,立刻前往补充知识。同时这个单元测试点击被关闭他如果再次点击则显示他需要去重新复习第一课第三课。只有他过了第一课第三课。这个单元测试才能被重新激活,他才可以重新再来挑战单元测试。

#### 通过小测验一,继续下面几个单元的学习
后面其实类似单元一。不需要重复描述。

### 所需修改

– 设计课程打卡失败的界面 (目前没有)
– 制定失败的标准(比如是全部都做对才可以,还是说是一个比例,比如90%做对就可以)
– 流程重新组织页面过程,增加跳转流程判断等等

tellable nonce with 8 chars and 57 potential chars

allowed chars abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ23456789
yTjJvXRY
srZsEimN
9LAdapXK
FYu5p4kY
KYMGXcDn
PHMu8ziB
BjXb5XiG
UYfcySFF
2Qs3Htn3
BksiT5Rk
MUxZEz86
KyFucCLE
F6DpZ8ir
BzR6rgCm
p4EbJYxt
Kt5GmVY8
xNgZeZzq
WFM55gXP
jQNkSTHY
aZB74VJk
Q8eyCk57
wjIYJ6sJ
ELu36wr9
f7IJUiWg
9LHgWGcL
9jMIQUHT
uCg5CWr9
UIPe5Wge
LgXpUT5G
WBv4KZdk
Rtd3v67u
D4HJHhAG
29jjQ2rt
qVmyJpr6
qdwnrnmj
quQDugWY
CLuIkcTr
jZ7EN85n
yMeEPfTd
gcHTkMsX
s7iUXuDg
TymvJjhZ
Tq9NcfKT
mnxTqMzj
rmMd7gbb
cncipGmV
XDvAxn6i
pXgPMvQI
2ZW2iAa2
BkPwEK8p
jxEMdUcZ
PCUwCL8T
DSSB92NA
c6HVq582
j3v5BiQA
bBQHn9rc
qjHTVdkt
DhYFLP5t
88A43K9U
q7pmsb9G
WHffqsnU
ZNtBw2Et
CadSIIMg
e7phNPhN
ks5qbrDm
YR82vbit
E5ke3Atn
kNFpr2Pm
HYSigRpQ
RDEfx2Rp
KyIeBCMM
CFK6sNm3
wuqFegwj
cMWfcKsW
kVxSSsgM
ebNwxwrb
nbCr7XIc
wkuC6Ju9
YWmpv2HZ
zHF4AB99
FXQRATfN
JDifdfaS
4XDIBfi2
UjgGQpTM
pz2mKsps
7Vz3iHk4
acjkUn4S
ks29Cvhs
2BTuV4iz
t3z2zKEY
dtHX9ubx
JmywyrbQ
4LuUuzc6
Nh6iWkJQ
6gQRcpjn
yvVHKQKC
ByUsiWFe
3mm3TMmv
RAZJRzzf
cQWfPag2

postman stuff

save result in the env variables. add the following in the Tests tab

var jsonData = pm.response.json();
pm.environment.set("aliyunnlsrequestbody", JSON.stringify(jsonData));

load env var, add in the body tab

{{aliyunnlsrequestbody}}

{
"productid":"f2c57f0f2bbc4b1f8824b3561d46f50a",
"token":{{wxtoken}}
}

微信H5调用流程

  1. https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxce4cf9e541529a96&redirect_uri=http%3A%2F%2Fhangzhou.qixiangshaonian.com%2Fwxgzh%2Foauth&response_type=code&scope=snsapi_userinfo&state=thisisastateobjectlalala&connect_redirect=1#wechat_redirect   这里服务器可以得到openid返回客户端。客户端记住。
  2. 是否会需要购买?
  3. http://{{host}}/user/auth post   {
    “productid”:”f2c57f0f2bbc4b1f8824b3561d46f50a”,
    “unionid”:”odG1y52PYElXeYXMuQY8je22d50E”,
    “token”:{{wxtoken}}
    }   这里要么productid和unionid,要么用token。  token是产品授权后的产物。
  4. http://{{host}}/user/product   post {
    “productid”:”f2c57f0f2bbc4b1f8824b3561d46f50a”,
    “token”:{{wxtoken}}
    }  这里可以得到最终用户侧的产品json
  5. 数据埋点等等

vue 背景按钮绝对定位

<div style=”position: relative; width: 100%;”>
<img style=”position: absolute; left: 41%; top: 3%; -webkit-transform: translate(-50%,-50%); width: 10%;” src=”../assets/logo.png” />
<img style=”width: 100%;” src=”../assets/bg.jpg” /></div>