- 博客(83)
- 收藏
- 关注

原创 ffmpeg对视频实现高斯模糊,给视频上下加模糊背景
ffmpeg -i input.mp4 -vf “split[a][b];[a]scale=1080:1920,boxblur=10:5[1];[b]scale=1080:ih*1080/iw[2];[1][2]overlay=0:(H-h)/2” -c:v libx264 -crf 18 -preset veryfast -aspect 9:16 -f mp4 output.mp4 -y
2021-03-09 10:34:02
2012

转载 Linux下配置ffmpeg完整流程(包括Linux缺失的X264)
请按照顺序一步步执行#!/usr/bin/env bash# 源码编译ffmpeg静态库以及可执行文件# 需要root权限# 本脚本的最新版本请访问 https://pengrl.com/p/20029/set -x# 编译yasm,ffmpeg依赖的汇编优化的库wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar xvf yasm-1.3.0.tar.gzcd yasm-1.3.0/./co
2020-11-11 15:07:01
377
2

原创 python实现字幕挂载,将字幕文件与视频合并。
其实超简单超简单!python好现成的库,一下子省略了好多步骤!本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置!需要用到的环境python(基本上只要不是很老的就行)pip(这个其实python版本>2.8.9或者>3.4的都自带了),可以通过cmd命令pip -V查询是否安装了,没有的话就输入命令需要用到的工具:我用的是pycharm,用来写python代码的。Flie->setting->Project:Test->
2020-10-19 13:44:06
2926
8

原创 Redis设置密码,查看密码,修改密码,忘记密码。
首先Redis中没用用户名的说法,自己或者他人登录访问都是通过IP+端口号,端口号一般都是6379.方法一:通过命令行:图一:config set requirepass password.图二:输入刚设置的密码,才可以进行增删改查,访问Redis。图三:查看自己所设置的密码。方法二:直接修改redis.config文件中修改:找到这一行,去掉前面的注释符号#,然后将foobared改成你想设置的密码就ok啦。如果忘记了自己设置的密码,同样在这个位置可以看到,或者修改。...
2020-10-12 11:11:18
23297

原创 PHP如何引用word模板生成word文件
一个PHP小白的苦逼之路,PHP接口大家想必只要有点其他语言的基础,都能很快上手,并且能够将数据成功返回给前端。但是只会写接口的程序员不是好程序员,但是PHP的后端小白除了写接口还能干嘛呢?正好公司要求生成word形式的合同,而且是以模板的形式。这下子就不能用纯生的PHP去写了,网上也有很多纯生PHP去写,但是流程很多,代码也很多,小白的我肯定是能偷懒则偷懒,找到了一个通用的三方库(用composer自动导入PHPoffice/phpword),引用很方便,就想着po出来给和我一样的小白去偷懒。进入正题
2020-08-27 10:42:12
1446

原创 Modbus协议、事务处理、常用功能码、异常码的简明概述
五、Modbus协议Modbus 是OSI 模型第七层应用层上的报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。Modbus 按照国家标准《基于 Modbus 协议的工业自动化网络规范》分为三个部分: 第1部分: Modbus 应用协议(GB/T 19582.1-2008)Modbus是一个请求/应答协议,这部分描述了 Modbus 事物处理框架内使用的功能码。第2部分: Modbus 协议在串行链路上的实现指南(GB/T 19582.2-2008) 这部分描述了串行链路
2020-08-12 16:29:22
5985
1

原创 OSI七层模型结构、TCP/IP五层模型
一、OSI七层模型结构OSI七层模型,由顶置底依次为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。应用层:为应用程序提供服务,为计算机用户提供应用接口,同时也为客户直接提供各种网络服务。(常见的应用层的网络协议有HTTP/HTTPS/FTP/POP3/SMTP等)。表示层:数据格式的转化、数据的加密,确保一个系统的应用层发送的数据能够被另一个系统的应用层识别,同时也对传输的数据起到了保密的作用。会话层:建立、管理和维护会话。该层的同学呢由不同设备中的应用程序之间的服务请求和响应组成。
2020-08-10 14:54:37
708

原创 在Navicat中插入表数据的时候,显示1366错误。如何解决
在Navicat中插入表数据的时候,显示1366错误。主要是因为中文字符在数据库中不允许使用。解决方法:在新建表或者数据库的时候,选择utf-8字符集。
2020-04-26 13:51:06
5108

原创 数据库创建表时提示1171,如何解决。
在Navicat中创建表的时候,显示1171错误。原因是因为主键为空问题。主键那里Not null必须打钩。(有的版本是允许为空,此时不需要打勾)
2020-04-26 13:38:56
3137
原创 golang 多字段排序
以下代码实现了根据level字段降序,再根据value字段降序,类似order by level desc, value desctype TestArr struct { Level int64 `json:"level"` Value int64 `json:"value"`}func Test() { arr := make([]TestArr, 0, 3) arr = append(arr, TestArr{Level: 1, Value: 1}) arr = append(ar
2022-01-19 13:12:38
2076
原创 go生成指定位数随机数
fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))上面是生成6位数的随机数,想要多少位%v中间就写几,同时后面的0就有多少个
2021-07-13 17:36:38
846
原创 如何解决Your requirements could not be resolved to an installable set of packages.
看了一些文章,各种要求什么版本控制,切换master之类的都是扯淡,看不下去了。明明直接运行composer install --ignore-platform-reqs或者composer update --ignore-platform-reqs
2021-06-29 15:46:52
656
2
原创 golang数组去重
func uniqueArr(arr []int64) []int64 { newArr := make([]int64, 0) tempArr := make(map[int64]bool, len(newArr)) for _, v := range arr { if tempArr[v] == false { tempArr[v] = true newArr = append(newArr, v) } } return newArr}
2021-06-10 17:31:58
2588
原创 PHP多维数组转一维数组
function reduce_array($array) { $return = []; array_walk_recursive($array, function ($x) use (&$return) { $return[] = $x; }); return $return;}
2021-04-30 18:31:50
247
1
原创 PHP字符串数组转为int数字类型数组
$new_array = json_decode(’[’ . join(’,’, $old_array) . ‘]’, true);
2021-04-22 11:05:26
1087
转载 PHP 解析JSON字符串以及数组的转换
一、json_encode()<?php$arr =array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);echo json_encode($arr);?>输出{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}再看一个对象转换的例子:$obj->body = ‘another post’;$obj->id = 21;$obj->approve
2021-04-13 10:15:32
742
原创 Go中[]string字符串相加
var data []stringline := [1]data = append(line, data...)
2021-03-31 17:23:14
1238
原创 go分割字符串,按照多个字符分割。
func main() { s := '196:廊坊市-199:固安县' fmt.Print(splitStringChar(s))}func splitString(r rune) bool { return r == ':' || r == '-'}func splitStringChar(s string) []string { a := strings.FieldsFunc(s, splitString) return a}
2021-03-31 17:01:55
3913
原创 golang读取txt文件,获取每行文字。
package mainimport ( "bufio" "fmt" "io" "os" "time")func main() { t := time.Now() // 记录当前时长 openTxt("d:/Desktop/area.txt") elapsed := time.Since(t) // 记录最后时长 fmt.Println("app elapsed:", elapsed)}func openTxt(txt string) string { filePath
2021-03-31 16:47:00
4117
原创 python读物网络资源,request和with open区别。
request 是通过套接字获取远程网络上的资源with open 是通过文件指针读写文件io流
2021-03-25 14:24:45
236
原创 python对保留小数的四舍五入(精确)
输入三个浮点数,求它们的平均值并保留 1 位小数,对小数后第二位数进行四舍五入,最后输出结果import decimalnumbers = list(map(decimal.Decimal, input().split(',')))修改舍入方式为四舍五入decimal.getcontext().rounding = "ROUND_HALF_UP"计算平均数result = decimal.Decimal(sum(numbers) / numbers.__len__())使用字符串来储存小
2021-03-24 15:37:02
898
原创 python获取英文字母、英文标点符号、中文标点符号
english_alphabet = string.ascii_lowercase // 英文字母 import stringenglish_punctuation = string.punctuation //英文标点 import stringchinese_punctuation = punctuation //中文标点 from zhon.hanzi import punctuation
2021-03-24 14:27:22
1890
原创 Java创建多线程的俩种方式继承Thread类与实现Runnable接口
多线程的创建有俩种方式:一、继承Thread类;二、实现Runnable接口。一、继承Thread类继承Thread类本质上是实现了一个继承Runnable接口的一个实例,它代表一个线程的实例,并且启动由这种方法创建的线程方法只有一种,就是通过start实例方法,并执行run的方法,start是一个原生方法。这种方式实现多线程简单,通过自己的类直接extend Thread,并重写run方法,就可以自定义线程的方法。二、实现Runnable接口当我们的类以及extend一个其他类后,再想开启线程,就
2021-03-10 11:25:37
547
原创 Android开发中layout属性参数
android:layout_above="@id/xxx" --将控件置于给定ID控件之上android:layout_below="@id/xxx" --将控件置于给定ID控件之下android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐android:layout_alignLeft="@id/xxx" --将控件的左
2021-02-23 10:07:50
434
原创 AndroidStudio占用C盘内存,修改AndroidStudio中.android和.gradle配置位置。
由于第一次进行Android开发,避免不了用到Google推出的ide->Android Studio,虽然idea也能进行安卓开发,但是idea中的配置总会报一些Google API的问题。在“C:/用户/username”目录下发现了.android和.gradle两个文件夹。这俩个文件夹是在安装Android Studio的时候默认再c盘创建的,就算你创建的时候选择了其他盘,也会在c盘创建,尤其是你用Android Studio的时候需要创建一个虚拟的安卓手机,这个时候一个安卓手机avd文件就
2021-02-07 10:04:52
2446
1
原创 python正则获取字符串中的Key-Value
data为上图中的字符串信息//获取videoid对应的字段videoids_list = re.findall(r'\"videoId\":\".*?\"', data)//获取videoids对应的字段videoid_list = re.findall(r'\"videoIds\":\[\".*?\"\]', data)
2021-02-02 17:28:26
1989
1
原创 ERROR: Could not find a version that satisfies the requirement BeautifulSoup
改成pip install bs4
2021-02-01 16:56:07
2917
4
原创 python根据不同字体字号获取字符串的像素长度和高度
line = '希望有一天变成大牛'font = ImageFont.truetype(font_family, font_size, 0)width, height = font.getsize(line)上面的font_family参数必须为字符串比如’arial’/‘arial.ttf’最后一位0是字体的粗度
2020-12-30 16:58:03
2840
2
原创 python递归实现查找字符串中不重复的最长字符串
def lengthOfLongestSubstring(s): """ :type s: str :rtype: int """ if s is not None: temp = s[0] num = 1 for i, ch in enumerate(s[1:]): if ch in temp: result.setdefault(temp, num)
2020-12-28 15:26:04
318
原创 如何使用python批量生成原比例缩略图
我用的python3.7,但是只要2里面支持image库的话一样可以用,话不多说直接上代码from PIL import Imagedef smallPic(): for i in range(1,51): filename = "D:/Desktop/pic (" + str(i) + ").jpg" im = Image.open(filename) print(im.format, im.size, im.mode, filename)
2020-12-23 20:22:36
343
原创 pip安装flask报WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
pip install flask -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
2020-12-21 18:10:11
693
原创 MySQL多字段模糊查询
SELECT * FROM magazine WHERE CONCAT(title,tag,description) LIKE ‘%关键字%’
2020-12-17 10:36:36
431
原创 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
升级后,我获得了拒绝的权限。执行“ mkb”安装后步骤的步骤没有任何更改,因为我的用户已经在“ docker”组中;我重试两次,但均未成功。经过一个小时的搜索,以下解决方案最终生效了:sudo chmod 666 /var/run/docker.sock然后重新构建镜像...
2020-11-30 21:00:02
81
原创 docker查看容器内部目录结构
首先你得有一个容器,并且保持这个容器是开启的状态。不开启的话是进入不了的。一、docker ps -a: 查看所有的容器。二、docker exec -it 容器id /bin/bash三、ls四、查看某个文件夹cat 文件名
2020-11-30 16:01:35
3631
原创 python自动生成和安装requirements.txt,用来自动安装依赖。
生成requirements.txt文件(如果只有一个py文件需要打包,就在同级目录下运行;如果要给整个项目打包,就在项目目录下)pip freeze > requirements.txt安装requirements.txt依赖pip install -r requirements.txt...
2020-11-11 18:52:45
3649
原创 运行django项目的时候:django.db.utils.OperationalError: (1050, “Table ‘表名‘ already exists
原因是因为数据库被手动修改了,然而django项目没有能自动同步:解决方案:python manage.py migrate myapp --fake
2020-11-02 11:32:22
699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人