H5适配

以整个网页500px为基准进行布局。

阅读更多

Golang请求pixabay API下载视频

因为需要用到一些视频素材,加上最近在学Golang,所以就想着能不能写个 Golang 程序 实现简单的下载视频的需求。

免版权网站:https://pixabay.com/

API 文档:https://pixabay.com/api/docs/

思路:传递关键字 -> 请求视频搜索接口 -> 获取相对应的视频Url,保存到 map 中 -> 批量下载

阅读更多

使用ffmpeg的循环

将新音频与视频重复视频合并,直到音频结束:

1
2
3
4
5
6
7
ffmpeg  -stream_loop -1 -i input.mp4 -i input.mp3 -shortest -map 0:v:0 -map 1:a:0 -y out.mp4

ffmpeg -y -stream_loop -1 -i video -i audio.mp3 -fflags +shortest -max_interleave_delta 50000 -c copy output.mp4

ffmpeg -y -stream_loop -1 -i video -i audio.mp3 -fflags +shortest -max_interleave_delta 50000 -c copy output.mp4

ffmpeg -stream_loop -1 -i 1.mp4 -c copy -v 0 -f nut - | ffmpeg -thread_queue_size 10K -i - -i 1.mp3 -c copy -map 0:v -map 1:a -shortest -y out.mp4

使用 -stream_loop -1 表示无限循环 input.mp4,-shortest 表示在最短的输入流结束时完成编码。这里最短的输入流将是 input.mp3。

阅读更多

对称二叉树

##对称二叉树

PHP:

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
26
27
28
29
30
31
32
33
// @lc code=start
/**
* Definition for a binary tree node.
* class TreeNode {
* public $val = null;
* public $left = null;
* public $right = null;
* function __construct($val = 0, $left = null, $right = null) {
* $this->val = $val;
* $this->left = $left;
* $this->right = $right;
* }
* }
*/
class Solution {

/**
* @param TreeNode $root
* @return Boolean
*/
function isSymmetric($root) {
return $this->check($root,$root);
}
function check($q, $p){
if($q == null && $p == null){
return true;
}
if($q == null || $p == null){
return false;
}
return $q->val == $p->val && $this->check($q->left,$p->right) && $this->check($q->right,$p->left);
}
}

Golang:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSymmetric(root *TreeNode) bool {
return check(root, root)
}

func check(p, q *TreeNode) bool {
if p == nil && q == nil {
return true
}
if p == nil || q == nil {
return false
}
return p.Val == q.Val && check(p.Left, q.Right) && check(p.Right, q.Left)
}

使用AWS Plloy API 将文本合成语言并保存为MP3

官方文档:https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/using-polly-with-go-sdk.html

申请一个 AWS 账号

首先进入 https://aws.amazon.com/cn/polly/ 申请一个 AWS 账号

申请一个 AWS 账号中要求填写真实的地址(主要对应上就可以),因为AWS那边会对你申请的账户进行验证,验证不通过账户会被停用。

创建IAM用户 获取 密钥信息

阅读更多

使用Golang实现视频流

准备:go环境, FFMPEG,一个视频

使用命令:

1
ffmpeg -i code.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8

使用ffmpeg命令将视频分为一个.m3u8和多个.ts文件

并将文件放在目录assets\media1\hls

文件 main.go 代码:

阅读更多

关于linux:Python进程,OSError[Errno 12]无法分配内存

在一台Linux服务器下运行 Python 脚本,报了如下错误:

1
sp.Popen self.pid = _posixsubprocess.fork_exec( OSError: [Errno 12] Cannot allocate m

于是尝试 用 free -m ,查看服务器内存情况

1
2
watch -n 2 free -m
全程监视电脑CPU、GPU,以及物理内存、交换区内存的变化情况
阅读更多

Python自动上传视频到YouTube

这边有个需求就是实现,自动上传视频到youtube上,我这次试用的语言是Python,网上找了一些资料,选择了github上的一个项目:https://github.com/tokland/youtube-upload

先贴下谷歌开发者文档:https://developers.google.com/youtube/registering_an_application

https://developers.google.com/apis-explorer

阅读 youtube-upload 上的说明,按照以下步骤进行实现:

安装 依赖包:

1
pip3 install --upgrade google-api-python-client oauth2client progressbar2
阅读更多