0%

阿里云配置IPV6

注册创建IPV6通道

Hurricane Electric 是一家位于美国的全球互联网服务提供商。该公司提供IPv4和IPv6接入 以及位于美国圣荷西的数据中心服务。(维基百科)

Hurricane Electric官网

  1. 登录Hurricane Electric官网,注册账号

  2. 填写相关注册信息并且需要验证邮箱。

  3. 邮箱验证通过后,登录选择Create Regular Tunnel.

  4. IPv4 Endpoint处填写IPv4地址,选择HongKong.HK。点击Create Tunnel,创建成功。

  5. 创建成功后可以得到下面的信息

配置ECS使其支持IPv6

  • 编辑/etc/sysctl.conf,将下面三项的配置改为0。后保存退出后。然后执行sysctl -p更新配置。
    1
    2
    3
    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.lo.disable_ipv6 = 0
  • 编辑网卡配置/etc/network/interfaces,在底部添加一下内容。(替换你的IPv4地址,替换成你申请到的IPv6的地址。IPv6地址格式为2001:470:xxxx:xxxx,不包括后面的::1/64或者::2/64)
1
2
3
4
5
6
7
8
9
10
11
12
13
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <IPV6>::2
netmask 64
remote <HE 的 Server IPv4 Address>
local <IPv4>
endpoint any
ttl 255
gateway <IPv6>::1
up ip -6 route add 2000::/3 via ::<HE 的 Server IPv4 Address> dev he-ipv6
up ip -6 addr add <IPv6>::1:1/128 dev he-ipv6
up ip -6 addr add <IPv6>::2:1/128 dev he-ipv6
down ip -6 route flush dev he-ipv6
  • 重启服务器server nginx restart
  • 执行ifup he-ipv6开启IPv6
  • 然后,执行ifconig查看有没有he-ipv6的网卡

配置Nginx使其监听IPv6端口

编辑/usr/local/nginx/conf/nginx.conf

监听http请求80端口,https请求443端口

1
2
3
4
5
6
7
8
9
server {
listen 80;
listen [::]:80; // 监听 IPv6 的 80 端口
}

server {
listen 443 ;
listen [::]:443 ; // 监听 IPv6 的 443 端口
}

如果没有配置https的话,只需要监听80端口。

配置DNS使其支持IPv6解析

登录阿里云后台,添加AAAA类型的域名解析域名解析。记录值填写Client IPv6 Address的地址。去掉后面的/64。

测试IPv6配置是否成功

测试网址:

http://ipv6-test.com/validate.php

输入网址,点击测试
测试通过如下显示,说明网站支持IPv6。

不支持IPv6如下显示

HTTPS配置文档

配置前需要了解的内容

名词解释

https
超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,也被称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。(摘自维基百科)

SSL证书
SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。SSL证书遵循SSL协议,可安装在服务器上,实现数据传输加密。SSL证书实际上就是CA机构对用户公钥的认证,内容包括电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等。

CA机构:CA(数字证书认证,Certificate Authority)机构,是承担公钥合法性检验的第三方权威机构,负责指定政策、步骤来验证用户的身份,并对SSL证书进行签名,确保证书持有者的身份和公钥的所有权。CA机构为每个使用公开密钥的用户发放一个SSL证书,SSL证书的作用是证明证书中列出的个人/企业合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。

https的优势

  • 防流量劫持 — 全站Https是根治运营商、中间人流量劫持的解决方案,不仅可以杜绝网页中被插入的小广告,更可以保护用户隐私安全。
  • 提升搜索排名—采用Https可以帮忙搜索排名的提升,提高站点的可信度和品牌形象。
  • 杜绝钓鱼网站Https地址栏绿色图标可以帮助用户识别出钓鱼网站,保障用户和企业的利益不受损害,增强用户信任。

申请证书

目前腾讯云、阿里云、七牛都可以申请一年免费的赛门铁克证书。
这里用腾讯云做例子。申请一年免费的ssl证书。在同一平台下去申请证书,可以自动添加DNS解析。这里是在腾讯云申请的免费证书,ECS在阿里云上,所以需要手动添加DNS解析。

申请证书官方文档

要注意的地方:

  • 域名身份认证是手动添加DNS解析。因为我的服务器实在阿里云,所以选择手动添加DNS解析。

手动添加DNS解析参考

DNS解析官方文档

进入阿里云后台,选择云解析DNS

选择你要解析的域名,点击解析

添加一条CNAME解析

记录类型为CNAME,主机记录和记录值查看官方文档。在生成ssl证书时会生成。

  • 如果绑定的域名是www.amai8.com(一级域名)
    填写CNAME解析的时候DNS记录如下 s8s1kflls83vbfgsoakakqnzq9bgy20c.amai8.com –CName–> s20161208165641.amai8.com
  • 如果绑定的域名是api.amai8.com(二级域名)
    填写的CNAME解析的DNS记录如下

s8s1kflls83vbfgsoakakqnz9bgy20ca.api.amai8.com –CName–> s20161208165641.api.amai8.com

添加CNAME解析时,主机记录值要去掉你的域名:主机记录值为上面加粗字体。注意api.amai8.com不要丢掉后面的.api。不然添加域名解析会不正确。证书不能颁发,只有DNS添加成功,才能颁发证书。

添加解析成功后,过一段时间,证书就可以申请通过。
如果长时间没有证书都没有颁发,去检查添加的CNAME是否正确。

阿里云添加解析时。首次添加解析,生效很快,如果修改解析的话生效时间会慢很多。解析生效后证书才会颁发。

证书申请成功后,可以在腾讯云后台查看证书详情,点击下载按钮下载证书。

下载后解压得到三个文件夹:分别是Apache、IIS、Nginx 服务器的证书文件

ECS配置证书(没有负载均衡情况下)

这里服务器是Nginx,所以以Nginx为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 80;
server_name www.domain.com; #证书绑定的域名
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443;
server_name www.domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt; #证书地址 在当前目录直接写名字就可以也可以写全路径
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}

注意:http默认访问的是80端口。https访问的是443端口。
对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。

Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
rewrite ^(.*) https://$server_name$1
这样就可以实现80进来的请求,重定向为https了。

证书安装官方文档

这里服务器是Nginx,所以以Nginx为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 80;
server_name www.domain.com; #证书绑定的域名
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443;
server_name www.domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt; #证书地址 在当前目录直接写名字就可以也可以写全路径
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}

注意:http默认访问的是80端口。https访问的是443端口。
对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。

Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
rewrite ^(.*) https://$server_name$1
这样就可以实现80进来的请求,重定向为https了。

证书安装官方文档

负载均衡配置https

  1. 登录到阿里云后台,选择负载均衡:
  2. 可以创建新的负载均衡,或者修改之前的负载均衡。选择负载均衡,点击服务器,添加相关ECS。

  3. 添加监听。点击添加监听,前端端口选择HTTPS:443,后端端口选择你要监听的ECS上的端口,这里是80端口。然后选择服务器证书,选择新建证书,填写证书名称,添加证书内容,私钥内容。然后再添加一个监听,监听80端口,前端端口选择TCP或者HTTP:80,后端端口:80。确认后添加监听。

这里的证书内容是你的申请的证书中的内容,格式一定为pem编码。下载下来的证书是.crt文件。用记事本打开,复制其中的内容,这里需要注意,文件中包含两个证书内容,前面是域名证书后面是中级CA证书,复制的时候要去掉中间的空行。
私钥内容也一定要为pem编码,用记事本打开.key文件,复制里面的内容到私钥一栏中。填好检查后,点击新建。回到上一步选择你刚新建的证书。点击下一步,点击确认。

添加监听

新建证书

添加好80端口(http)、443端口(https)的监听。会显示如下,如果显示异常检查监听是否正确。

苹果ATS测试命令

1
nscurl --ats-diagnostics --verbose  https://domin.com

iOS开发Tips

TableView Cell留白问题

TableView的在iPad下横屏显示的时候右侧会有很多留白。

解决办法:

1
tableview.cellLayoutMarginsFollowReadableWidth = NO;

TableView多余的分割线

1
tableView.tableFooterView = [UIView new];

TableViewCell右侧箭头

1
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;

判断App是不是第一次启动

1
2
3
4
5
6
7
8
//   使用NSUserDefaults来判断程序是否第一次启动
NSUserDefaults *TimeOfBootCount = [NSUserDefaults standardUserDefaults];
if (![TimeOfBootCount valueForKey:@"time"]) {
[TimeOfBootCount setValue:@"sd" forKey:@"time"];
NSLog(@"第一次启动");
}else{
NSLog(@"不是第一次启动");
}

push隐藏tabbar

1
2
3
CYTeacherViewController *vc = [[CYTeacherViewController alloc]init];
[vc setHidesBottomBarWhenPushed:YES];
[self.navigationController pushViewController:vc animated:YES];

设置导航栏的返回按钮颜色

1
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

iOS上线加急申请

iOS app上传后审核通过需要一段时间,目前审核速度已经变快了,大约两天左右的时间,但是有的时候我们需要紧急修复bug就需要加急申请,这样能够很快进入审核、上架。

1、首先打开申请网址
登录上你的AppleID,登录成功后显示如下:

选择request an expedited app review这个选项,
2、继续填写下面的信息(手机号码),

3、然后填写你要申请的App的信息
4、继续填写你的bug的描述(我每次都是中英文都写的。。)
最好点击send就好了。。。

很快你的App就会进入审核了。。。
我上次申请是当天下午3点左右申请的。第二天早晨就上架了,还是很快的。。。

Mac实用Tips

Mac下查看cpu信息

打开终端输入sysctl -n machdep.cpu.brand_string命令就可以

打开文件

快捷键 Command + O

视频上传转码平台中遇到的问题与解决办法

时间 2016-09-20

想要实现能够记录转码结果与转码时间的功能。

转码使用的是在php中调用popen()开一个进程去调用命令行函数去进行转码。

想要记录转码时间和转码进度。因为开一个异步的进程没有返回值所以没办法检测转码状态,所以只能想其他思路。
转码代码如下:

1
2
3
$cmd = "转码操作命令";
//异步执行转码操作
pclose(popen($cmd, 'r'));

这里的解决办法是:

在开始转码前执行一个脚本,用来记录转码开始时间已经是否需要转码的那个操作。然后执行转操作。转码结束后在执行一个脚本用来记录此时的时间,已经转码结束。这样在数据库中就可以获得开始转码时间与转码结束的时间,就可以获得转码时间。

1
2
3
$cmd = "php -f 第一个脚本 && 转码操作命令 && php -f 第二个脚本";
//异步执行转码操作
pclose(popen($cmd, 'r'));

&&命令在命令行中用来串联两个命令所以我们这里可以记录转码时间。

时间:2016年10月09日17:41:33

问题描述:执行php脚本是传参数遇到的问题。参数中有空格 导致这个参数编成了两个参数。

1
2
3
$zcw_one = 'zcw is';
$cmd = "php -f test.php $zcw_one"
system($cmd);

这是好在test.php中通过argc取到的参数有三个 第一个是 test.php 、第二个是zcw、第三个是is。
我这里在传参数前把空格去掉
方法如下:

1
2
3
4
5
6
function trimall($str)//删除空格
{
$qian=array(" "," ","\t","\n","\r");
$hou=array("","","","","");
return str_replace($qian,$hou,$str);
}

MongoDB的进阶使用

在终端使用shell命令操作数据库

数据库操作

创建或者切换到当前数据库:

use DATABASE_NAME

使用use命令,如果当前数据库存在则是切换到对应的数据库,如果数据库不存在则是创建数据库。

查看数据库:

show dbs

删除数据库:

使用use命令进入到要删除的数据库中,然后执行删除命令:

db.dropDatabase()

就可以删除当前数据库了。

集合操作(表)

查看当前数据库中包含的集合

show collections

创建集合

db.createCollection(集合名)

删除集合

db.COLLECTION_NAME.drop()

文档操作

插入文档

db.COLLECTION_NAME.insert(document)

查询文档

db.COLLECTION_NAME.find()

使用pretty()方法格式化返回

db.COLLECTION_NAME.find().pretty()

find()中可以添加条件筛选要查询的内容

更新文档

db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

例子:

1
2
$collection->update(array("endTime"=>""),array('$set'=>array("endTime"=>time())));
$collection->update(array("isTranscoding"=>0),array('$set'=>array("isTranscoding"=>1)));

删除文档

db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

如果remove()括号中不写东西默认删除全部内容


在php中操作MongoDB数据库

连接和选择一个数据库

1
2
3
4
<?php
$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017
$db = $m->test; // 获取名称为 "test" 的数据库
?>

创建集合

1
2
3
4
5
6
<?php
$m = new MongoClient(); // 连接
$db = $m->test; // 获取名称为 "test" 的数据库
$collection = $db->createCollection("testCollection");
echo "集合创建成功";
?>

插入文档

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->test; // 选择一个数据库
$collection = $db->testCollection; // 选择集合
$document = array(
"title" => "MongoDB",
"description" => "database",
"likes" => 100,
"url" => "http://www.runoob.com/mongodb/"
);
$collection->insert($document);
echo "数据插入成功";
?>

查找文档

1
2
3
4
5
6
7
8
9
10
11
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->test; // 选择一个数据库
$collection = $db-> testCollection; // 选择集合

$cursor = $collection->find();
// 迭代显示文档标题
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

更新文档

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->test; // 选择一个数据库
$collection = $db-> testCollection; // 选择集合
// 更新文档
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));
// 显示更新后的文档
$cursor = $collection->find();
// 循环显示文档标题
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

删除文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$m = new MongoClient(); // 连接到mongodb
$db = $m->test; // 选择一个数据库
$collection = $db->testCollection; // 选择集合

// 移除文档
$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));

// 显示可用文档数据
$cursor = $collection->find();
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

Ubuntu下安装ffmpeg和依赖包以及ffmpeg的使用

多次尝试后通过廖雪峰这篇教程安装成功了。
官方文档也很详细,但是我安装失败了,原因应该是配置中路径的问题。这里不推荐使用。
使用廖雪峰老师的这篇教程安装成功环境如下:

Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

编译的时候的一些命令不要完全复制,要根据你下载的版本和压缩包类型使用不同的命令。

FFmpeg是最流行的开源视频转码工具包,在Ubuntu上可以直接通过apt-get安装,但是默认的编码器不提供x264这些non-free的编码器,所以需要自己编译。

安装过程

使用apt-get updateapt-get upgrade把系统升级到最新版,然后安装下面的安装包:

1
apt-get install autoconf automake build-essential libass-dev libfreetype6-dev  libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev

FFmpeg依赖的几个软件包有个最低版本要求:

yasm >= 1.2.0
libx264-dev >= 0.118
libmp3lame-dev >= 3.98.3
libopus-dev >= 1.1

在这几个包在Ubuntu 14.04上都符合FFmpeg的要求,所以可以直接用apt-get安装。
编译的bin目录放在/opt/目录下
先在/opt/目录下创建三个文件夹,分别为ffmpeg_sources、ffmpeg_build、bin
然后下载源码包放到/opt/ffmpeg_sources/目录下。
源码包下载地址:(请自己选择最新的版本下载)
x265:https://bitbucket.org/multicoreware/x265/downloads

fdk-aac:https://github.com/mstorsjo/fdk-aac/releases

ffmpeg:http://ffmpeg.org/download.html

编译x265
依次执行下面的命令这里你根据你下载的文件去执行,这里下载的是1.9版本)

1
2
3
4
5
6
7
cd /opt/ffmpeg_sources
tar zxvf x265_1.9.tar.gz
cd x265_1.9/build/linux
PATH="/opt/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/opt/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
make distclean

编译fdk-aac

依次执行下面的命令 (这里你根据你下载的文件去执行,这里下载的是0.1.4版本)

1
2
3
4
5
6
7
8
cd /opt/ffmpeg_sources
tar zxvf fdk-aac-v0.1.4.tar.gz
cd fdk-aac-0.1.4
autoreconf -fiv
./configure --prefix="/opt/ffmpeg_build" --disable-shared
make
make install
make distclean

编译ffmpeg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cd /opt/ffmpeg_sources
unzip FFmpeg-release-3.0.zip
cd FFmpeg-release-3.0
PATH="/opt/bin:$PATH" PKG_CONFIG_PATH="/opt/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="/opt/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I/opt/ffmpeg_build/include" \
--extra-ldflags="-L/opt/ffmpeg_build/lib" \
--bindir="/opt/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
PATH="/opt/bin:$PATH" make
make install
make distclean
hash -r

编译时间很长,成功的话会在/opt/bin目录下出现ffmpeg、ffprobe、ffserver程序。
最后,创建几个软连接,便于任意用户在任意目录下直接调用ffmpeg:

1
2
3
ln -s /opt/bin/ffmpeg /usr/bin/ffmpeg
ln -s /opt/bin/ffprobe /usr/bin/ffprobe
ln -s /opt/bin/ffserver /usr/bin/ffserver

成功后执行ffmpeg -version就可以查看到ffmpeg的版本信息。

1
2
3
4
5
6
7
8
9
10
11
12
root@iZbp1c4rg6py5h26u4210bZ:/opt/bin# ffmpeg -version
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/opt/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/opt/ffmpeg_build/include --extra-ldflags=-L/opt/ffmpeg_build/lib --bindir=/opt/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100

ffmpeg是转码程序,ffprobe可以用来分析视频文件,ffserver可以实现流媒体服务器。

使用ffmpeg

直接在终端执行

1
ffmpeg -i yanshi.flv -c:v libx264 -b:v 1024k -c:a libfdk_aac -b:a 128k -ar 16000 final.mp4

这里的yanshi.flv是要转码的文件,final.mp4是转码后的文件。

ffmpeg的常用参数详解
主要参数

  • -i ——设置输入文档名
  • -f ——设置输出格式
  • -y——若输出文件已存在时则覆盖文件
  • -fs——超过指定的文件大小时则结束转换
  • -ss——从指定时间开始转换
  • -t从-ss时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00即从00:00:01.00开始到00:00:11.00
  • -title——设置标题
  • -timestamp——设置时间戳
  • -vsync——增减Frame使影音同步

视频参数

  • -b:v——设置视频流量,默认为200Kbit/秒
  • -r——设置帧率值,默认为25
  • -s——设置画面的宽与高
  • -aspect——设置画面的比例
  • -vn——不处理视频,于仅针对声音做处理时使用
  • -vcodec( -c:v )——设置视频视频编解码器,未设置时则使用与输入文件相同之编解码器

音频参数

  • -b:a——设置每Channel(最近的SVN版为所有Channel的总合)的流量
  • -ar——设置采样率
  • -ac——设置声音的Channel数
  • -acodec ( -c:a ) ——设置声音编解码器,未设置时与视频相同,使用与输入文件相同之编解码器
  • -an——不处理声音,于仅针对视频做处理时使用
  • -vol——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推。)

注意事项

  • 以-b:v及-b:a首选项流量时,根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同。(可用ffmpeg -h显示说明来确认单位。)
    例如,单位为bits/sec的情况时,欲指定流量64kbps时需输入 -b:a 64k;单位为kbits/sec的情况时则需输入 -b:a 64。
  • 以-acodec及-vcodec所指定的编解码器名称,会根据使用的ffmpeg版本而有所不同。例如使用AAC编解码器时,会有输入aac与libfaac的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats确认输入的编解码器是否能运作。

Linux常用命令

文件

  • ls 命令 ——显示当前目录中的文件
  • ls -l 命令——查看详细信息

文件权限:

总共十位,第一位代表文件类型,后面每三位一组分别代表,文件所有者权限、所属组其他用户权限、其他人权限。

-rw-r--r--第一位-代表文件类型为文件,rw-代表文件所有者对这个文件可读可写,r--代表所属组其他用户对这个文件可读,r--代表可读。

drwxrwxrwx第一位d代表文件类型为目录,rwx代表文件所有者对这个文件可读可写可执行,后面的两个同理。

修改文件命令:

chmod修改权限

chown修改文件所有者

chgrp修改文件所有组


优雅的使用Chrome快捷键

这里只介绍Mac上Chrome上的快捷键

一直使用Chrome但是没有系统的看过他的所有快捷键的使用。之前虽然也在使用快捷键,但是并没有完全使用快捷键。
今天查看了一下Chrome的帮助文档,重新学习一些使用快捷键。并且附上我认为的使用频率。


操作 快捷键 使用频率
打开新的窗口 ⌘ + n ⭐️
跳转到下一个打开的标签页 ⌘ + Option + 向右箭头键 ⭐️⭐️
跳转到上一个打开的标签页 ⌘ + Option + 向左箭头键 ⭐️⭐️
跳转到特定标签页 ⌘ + 1 到 ⌘ + 8 ⭐️
跳转到最后一个标签页 ⌘ + 9 ⭐️
打开当前标签页浏览记录中记录的上一个页面(用手势更方便) ⌘ + [ 或 ⌘ + 向左箭头键 ⭐️
打开当前标签页浏览记录中记录的下一个页面(用手势更方便) ⌘ + ] 或 ⌘ + 向右箭头键 ⭐️
打开书签管理器 ⌘ + Option + b ⭐️⭐️⭐️
在新标签页中打开“历史记录”页 ⌘ + y ⭐️⭐️
在新标签页中打开“下载内容”页 ⌘ + Shift + j ⭐️⭐️
打开查找栏搜索当前网页 ⌘ + f ⭐️⭐️⭐️
打开“开发者工具” ⌘ + Option + i ⭐️⭐️
为网站名称添加 www. 和 .com,并在当前标签页中打开该网站 输入网站名称并按 Control + Enter 键 ⭐️
跳转到地址栏 ⌘ + l ⭐️⭐️⭐️
重新加载当前网页 ⌘ + r ⭐️⭐️⭐️⭐️
将当前网页保存为书签 ⌘ + d ⭐️⭐️⭐️⭐️⭐️
开启或关闭全屏模式 ⌘ + Ctrl + f ⭐️⭐️
放大网页上的所有内容 ⌘ 和 + ⭐️⭐️
缩小网页上的所有内容 ⌘ 和 - ⭐️⭐️
将网页上的所有内容恢复到默认大小 ⌘ + 0 ⭐️⭐️
向下滚动网页,一次一个屏幕 空格键 ⭐️⭐️
向上滚动网页,一次一个屏幕 Shift + 空格键 ⭐️⭐️

更多快捷键的使用参考Chrome官方介绍。
这里只介绍了Mac上的快捷键,Windows请查看文档。
很多系统级类似的快捷键没有介绍。

参考地址:
Chrome帮助