Web音视频开发

Web音视频入门系列——音视频基础知识

Web 视频播放的那些事儿

音视频播放过程中的问题解决(播放质量优化)

Media container formats

HDR和SDR的区别

关于H.264的码率,720P、1080P输出比特率设置

mp4视频转换格式,使用H.264编码,比特率512-1024可以比较好的在大小和画面质量上取得平衡。其他编码或使用自动比特率,将导致mp4视频在页面中只有声音,没有画面。

文件的扩展名

MIME类型

容器格式

编码方式

视频基础概念

分辨率

1280×720 (720p) 1920×1080 (1080p) 2560×1440(2k) 3840×2160 (4k)

帧率

25fps,30fps,60fps

比特率(码率)

比特率是单位时间播放连续的媒体如压缩后的音频或视频的比特数量。

在这个意义上讲,它相当于术语数字带宽消耗量,或吞吐量。比特率规定使用“比特每秒”(bit/s或bps)为单位,经常和国际单位制词头关联在一起,如“千”(kbit/s或kbps),“兆”(百万)(Mbit/s或Mbps),“吉”(Gbit/s或Gbps)和“太”(Tbit/s或Tbps)
虽然经常作为“速度”的参考,比特率并不测量“‘距离’/时间”,而是被传输或者被处理的“‘二进制码数量’/时间”,所以应该把它和传播速度区分开来,传播速度依赖于传输的介质并且有通常的物理意义

视频格式&编码格式

MP4、AVI、WebM、MOV、WMV、RMVB、FLV

AVCH.264,H.265 VP8,VP9

音频基础概念

采样率

比特率(码率)

音频编码&&音频格式

MP3 AAC WAV FLAC

PHP安装PECL扩展

查看模块是否安装

phpinfo(); 页面调用函数
php -m 查看已安装模块
php –ini 查看php.ini的位置
php –ri gd 查看模块信息

GD

查看是否支持webp

php --ri gd | grep WebP

Imagick

举例,查看imagick是否安装webp支持

 php --ri imagick | grep WEBP

安装imagick支持webp php处理

模块安装

php安装 pear 文档

wget http://pear.php.net/go-pear.phar
#指定php目录安装pear
sudo /usr/local/php/bin/php go-pear.phar

安装之后可以使用pear 和pecl命令安装扩展

方式一 使用pear相关命令

PEAR命令 安装扩展文档

pear install extension_name
pear upgrade extension_name
pear install --onlyreqdeps html_page2

参数
-onlyreqdeps (install required dependencies (依赖) only) 安装需要依赖
–alldeps (install all dependencies (依赖) ) 安装全部依赖

方式二

pecl命令文档

方式三

phpize源码编译安装 (共享/动态 扩展) 以redis为例

上https://pecl.php.net/下载好扩展的源码包 redis-6.2.7.tar.gz

tar -zxvf redis-6.2.7.tar.gz
cd redis-6.2.7
/usr/local/php/bin/phpize 
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install 
#写入配置
 echo 'extension=redis.so' > /usr/local/php/etc/php.d/redis.ini

扩展静态编译到php中

参考文章

PHP PECL 使用

计算机图像处理知识体系

图像文件类型与格式指南


类型 优点 缺点 相同图片大小比较 背景能否透明
BMP 无损压缩,图质最好 文件太大,不利于网络传输 152K 不可以
GIF 动画存储格式 最多256色,画质差 53K 可以
PNG 可保存透明背景的图片 画质中等 202K 可以
JPG 文件小,利于网络传输 画质损失 84K 不可以

浅谈数字图像处理之图像在计算机中的表现形式

图像如何存储在计算机中?

计算机只认识0和1但是怎么表示图像和影视等等众多应用的?

【计算机视觉处理二】图像的基础知识

图像处理基础知识——图片存储形式、色域、图片文件格式

WebP 相对于 PNG、JPG 有什么优势?

如何生成webp动图

几种 WebP 动态图制作方法

动态 WebP 图片 Chrome 版本32+ 才支持.

mysql skip-name-resolve

错误描述

[Warning] IP address ‘192.168.0.110’ could not be resolved: Name or service not known

解决方案

配置文件添加

skip-name-resolve

原因描述

mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。
如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。

添加skip-name-resolve以后就跳过着一个过程了。

相关文章

mysql skip-name-resolve 的解释

mySQL 错误日志分析

MySQL网络原因导致的连接失败

Kafka常用笔记

安装

安装Kafka

1.安装openjdk 配置环境变量

https://github.com/yangliuan/ubuntu-development-start/blob/master/include/language/java/jdk/openjdk-11.sh

2.下载kafka二进制包,创建kafka用户,修改配置文件和权限,创建systemd启动文件

https://github.com/yangliuan/ubuntu-development-start/blob/master/include/message-queue/kafka.sh

3.启动和使用

PHP中使用kafka

编译安装librdkafka repo

RdKafka extension requires » librdkafka >= 0.11.x (most Linux distributions have a package for this library)

https://github.com/yangliuan/ubuntu-development-start/blob/master/include/system-lib/librdkafka.sh

#仓库直接安装方式
apt install librdkafka-dev
yum install librdkafka-devel

编译安装pecl RdKafka

https://github.com/yangliuan/ubuntu-development-start/blob/master/include/language/php/extension/pecl_rdkafka.sh

composer包

https://github.com/swoole/phpkafka/ 原生PHP Kafka 客户端,支持 PHP-FPM、Swoole 环境使用

https://github.com/mateusjunges/laravel-kafka 为laravel框架的封装 基于rdkafka

https://github.com/chenpeng78/laravel-kafka 为laravel框架的封装 基于rdkafka

https://github.com/kwn/php-rdkafka-stubs IDE提示工具

使用场景和案例

参考:

Linux下安装zookeeper

Linux安装Kafka

Linux 安装 kafka

Linux下安装kafka

Kafka 不再需要 ZooKeeper

Ubuntu安装JDK

「Kafka应用」PHP实现生产者与消费者

laravel,Lumen 使用Kafka队列

Laravel 扩展推荐:Apache Kafka

Zookeeper 教程

PHP XML操作FAQ

加载h5标签报错

Tag xxx invalid in Entity

$html_dom = new DOMDocument();
//关闭h5标签可能的报错
libxml_use_internal_errors(true);
$html_dom->loadHTML($html5);

DOMDocument 保存 xml时中文出现乱码

$html_dom = new DOMDocument();
$html_dom->loadHTML('<?xml encoding="UTF-8">'.$html);

PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了.

对不包含<meta>标签和<body>标签的富文本字符串处理特别有用

Go开发生态 常用笔记

环境搭建

gvm 开发环境推荐使用版本管理脚本

你有同时使用多版本 Go 语言的需求吗,那就快使用多版本管理利器 GVM 吧!

环境准备:如何安装和配置一个基本的 Go 开发环境?

 工作区和GOPATH

软件生态

Go中文文档

开发工具

awesome-go

go的一些常用包

参考文章

为什么很多公司都转型go语言开发?Go语言能做什么

Go 语言的整洁架构之道 —— 一个使用 gRPC 的 Go 项目整洁架构例子