ffmpeg TS加密切片

新建一个记事本,取名enc.key(名字可以随便取)添加16个字节的秘钥,如

1234567890qwdcvf

新建一个文件,enc.keyinfo,添加如下内容

http://localhost:8080/enc.key
enc.key

改文件是告诉FFMPEG需要加密的文件位置,以及文件名
这里需要把enc.key和enc.keyinfo放在同一目录下

`ffmpeg -y \

-i test.mp4 \

-hls_time 12 \ # 将test.mp4分割成每个小段多少秒

-hls_key_info_file enc.keyinfo \

-hls_playlist_type vod \ # vod 是点播,表示PlayList不会变
-hls_segment_filename “file%d.ts” \ # 每个小段的文件名

playlist.m3u8 # 生成的m3u8文件`

播放时候 需要导入m3u8和相对应的enc.key 就可以播放了

ubuntu下selenium Firefox环境搭建

在命令行下的Ubuntu系统需要使用Selenium来爬取网页。

首先
apt update

apt install firefox

pip3 install selenium

cd /usr/bin

下载firefox的驱动 geckodriver https://github.com/mozilla/geckodriver/releases

wget https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-linux64.tar.gz

tar -xzvf geckodriver-v0.29.1-linux64.tar.gz

chmod +x geckodriver

python下交互
切记 命令行下务必设置无头模式

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("-headless") #设置无头模式
options.add_argument('window-size=1600x900') #设置分辨率
#options.add_argument('blink-settings=imagesEnabled=false')  # 设置不加载图片, 提升速度
d=webdriver.Firefox(executable_path='/usr/bin/geckodriver',firefox_options=options)
d.get("http://google.com")
d.get_screenshot_as_file("cc.png") #保存网页为图片cc.png

php遗漏点

之前一直用Thinkphp导致都不会原生的PHP了,有个小点遗漏了。
PHP获取POST的原始数据:

$post=file_get_contents("php://input");

这句就是获取原始数据格式,是字符串形式的。
如果是JSON格式的话可以使用
$poa=json_decode($post,true);
来吧string转换为array

tips|MiniO拓展及安装

启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

注意

分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
分布式Minio使用的磁盘里必须是干净的,里面没有数据。
下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
在Windows下运行分布式Minio处于实验阶段,请悠着点使用。
示例1: 启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令。

GNU/Linux 和 macOS
Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://192.168.1.11/export1 http://192.168.1.12/export2 \
http://192.168.1.13/export3 http://192.168.1.14/export4 \
http://192.168.1.15/export5 http://192.168.1.16/export6 \
http://192.168.1.17/export7 http://192.168.1.18/export8
Windows
Copyset MINIO_ACCESS_KEY=
set MINIO_SECRET_KEY=
minio.exe server http://192.168.1.11/C:/data http://192.168.1.12/C:/data ^
http://192.168.1.13/C:/data http://192.168.1.14/C:/data ^
http://192.168.1.15/C:/data http://192.168.1.16/C:/data ^
http://192.168.1.17/C:/data http://192.168.1.18/C:/data
分布式Minio,8节点,每个节点一块盘

示例2: 启动分布式Minio实例,4节点,每节点4块盘,需要在4个节点上都运行下面的命令。

GNU/Linux 和 macOS
Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://192.168.1.11/export1 http://192.168.1.11/export2 \
http://192.168.1.11/export3 http://192.168.1.11/export4 \
http://192.168.1.12/export1 http://192.168.1.12/export2 \
http://192.168.1.12/export3 http://192.168.1.12/export4 \
http://192.168.1.13/export1 http://192.168.1.13/export2 \
http://192.168.1.13/export3 http://192.168.1.13/export4 \
http://192.168.1.14/export1 http://192.168.1.14/export2 \
http://192.168.1.14/export3 http://192.168.1.14/export4
Windows
Copyset MINIO_ACCESS_KEY=
set MINIO_SECRET_KEY=
minio.exe server http://192.168.1.11/C:/data1 http://192.168.1.11/C:/data2 ^
http://192.168.1.11/C:/data3 http://192.168.1.11/C:/data4 ^
http://192.168.1.12/C:/data1 http://192.168.1.12/C:/data2 ^
http://192.168.1.12/C:/data3 http://192.168.1.12/C:/data4 ^
http://192.168.1.13/C:/data1 http://192.168.1.13/C:/data2 ^
http://192.168.1.13/C:/data3 http://192.168.1.13/C:/data4 ^
http://192.168.1.14/C:/data1 http://192.168.1.14/C:/data2 ^
http://192.168.1.14/C:/data3 http://192.168.1.14/C:/data4
分布式Minio,4节点,每节点4块盘

扩展现有的分布式集群
例如我们是通过区的方式启动MinIO集群,命令行如下:

Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://host{1…32}/export{1…32}
MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式),命令行如下:

Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://host{1…32}/export{1…32} http://host{33…64}/export{1…32}
现在整个集群就扩展了1024个磁盘,总磁盘变为2048个,新的对象上传请求会自动分配到最少使用的集群上。通过以上扩展策略,您就可以按需扩展您的集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个区,新增集群看做另一个区,新对象按每个区域中的可用空间比例放置在区域中。在每个区域内,基于确定性哈希算法确定位置。

MC (mc)命令

ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。

http://docs.minio.org.cn/docs/master/distributed-minio-quickstart-guide