ffmepg命令
ffmpeg -i 2KNg9BKbVJE.mp4 -vf "pad=iw:2*trunc(iw*16/18):(ow-iw)/2:(oh-ih)/2,setsar=1" output.mp4
9比16比例
ffmpeg -i output2.mp4 -vf "subtitles=2KNg9BKbVJE.vtt:force_style='FontSize=20,Alignment=2,FontName=Arial,MarginV=50'" -c:a copy output3.mp4
swoole hyperf 指定最多创建100个协程。
应用场景
异步队列消费,大量创建协程序会导致mysql连接数用完,mysql压力大增,所以控制协程数跟mysql连接池数量相约。可以有效控制mysql的写入压力。
public function handle()
{
$num=100;
Co::set(['max_coroutine'=>$num]);
for ($i=0;$i<1000;$i++) {
$status=Co::stats();
if($status['coroutine_num']<$num){
go(function () {
Coroutine::sleep(1);
print_r($coroutineId = Coroutine::getuid()."\n");
});
}else{
$this->main();
}
}
}
public function main()
{
print_r("no coroutine"."\n");
}
Co::set(['max_coroutine'=>$num]);
设置最大协程数
$status=Co::stats();
$status['coroutine_num']
获取协程状态。
coroutine_num 当前运行的协程数量
php swoole.当前代码是否在协程内。怎么判断
use Swoole\Coroutine;
try {
// 尝试获取协程ID
$coroutineId = Coroutine::getuid();
if ($coroutineId != -1) {
echo "当前代码正在协程内执行,协程ID为:" . $coroutineId . "\n";
} else {
echo "当前代码不在协程内执行。\n";
}
} catch (\Throwable $e) {
// 如果在非协程环境中调用getuid(),会抛出异常
echo "当前代码不在协程内执行,因为抛出了异常:" . $e->getMessage() . "\n";
}
unixtime时间戳,不同时区
date_default_timezone_set("America/New_York");
$vl=time();
print_r($vl."\n");
date_default_timezone_set("Asia/Shanghai");
$v2=time();
print_r($v2."\n");
结果
1720780223
1720780223
是一样的
把340万个单词的csv文件写进redis队列
<?php
declare(strict_types=1);
namespace App\Command;
use Hyperf\Command\Command as HyperfCommand;
use Hyperf\Command\Annotation\Command;
use Hyperf\Context\ApplicationContext;
use League\Csv\Reader;
use Psr\Container\ContainerInterface;
#[Command]
class FooCommand extends HyperfCommand
{
public function __construct(protected ContainerInterface $container)
{
parent::__construct('demo:command');
}
public function configure()
{
parent::configure();
$this->setDescription('Hyperf Demo Command');
}
public function handle()
{
$stime = microtime(true);
$reader = Reader::createFromPath('/var/www/html/hyperf/hyperf-csv/stardict.csv', 'r');
$reader->setHeaderOffset(0);
$records = $reader->getRecords();
foreach ($records as $record) {
if (count($record) == 1 && $record[0] === '') {
return;
}
$word = preg_replace('/[^\w\s]/u', '', $record['word']);
$_insert['word'] = $word;
$_insert['phonetic'] = $record['phonetic'];
$_insert['definition'] = $record['definition'];
$_insert['translation'] = $record['translation'];
$key = "dict";
$value = json_encode($_insert);
$container = ApplicationContext::getContainer();
$redis = $container->get(\Hyperf\Redis\Redis::class);
$redis->lPush($key, $value);
print_r($word."\n");
}
$etime = microtime(true);
$total = $etime - $stime;
print_r($total);
}
}
耗时176秒,内存400多MB。
My Resume,PHP backend programmer
Expert knowledge in PHP 7 and 8
Expert knowledge in Laravel ,Thinkphp,Yii2,Hyperf,Swoole
Expert knowledge in API design and development,Websocket,Http,TCP
Expert knowledge in Rabbitmq,Linux,Redis
Expert knowledge in Test Driven Development where tests are used to drive feature completeness and correctness. A strong understanding of Laravel testing best practices using Facades, Database assertions and JSON validation.
Solid knowledge of SQL relational databases, schema design and query optimization
Solid knowledge of web application security best practices (XSS, SQL Injection, etc)
Solid knowledge of utilizing queues and caching
Experience working with Agile SCRUM based teams
The types of applications I have developed include online video education applications, IoT (Internet of Things) servers, online shopping malls, English learning applications, and ERP (Enterprise Resource Planning) systems.
Good English reading and listening skills
If you are looking for an experienced and affordable PHP backend programmer, please email me at 1124557724#qq.com
看英语字幕视频学英语app开发日记 php
产品介绍
这是一款通过看视频看英语字幕来学习英语的app,根据的外语学习理论是可理解性输入。进行大量的可以理解性的英语内容输入,可以实现有效的外语学习,不需要枯燥的背单词,学语法。
网址:https://eng.devxiang.com/videoDetail/10
(仅支持手机端浏览器访问。)
笔者是一个后端程序员和这个产品的发起人,和我一起合作的还有一名vuejs前端开发者。
6月26日
- 完成了单词词库的构建,有49000多个英语单词。使用了github上的开源词库。导进mysql数据表。写成接口,现在打算开放给大家免费使用,如果有需要的话,欢迎使用。
单词查询接口文档
https://apifox.com/apidoc/shared-9931ba6d-69fc-471c-a874-aff60ee3bbcb
- 完成了视频详情接口,前端完全了字幕独立加载,按时间展示,支持分词点击查询单词中文意思。但目前只支持手机浏览器访问,pc端浏览器还没有做兼容。
按敏捷开发原则,快速开发出产品原型,最小可使用的版本。第一版已经支持视频播放,字幕独立展示,可以点击查询。算是可以使用的了。
3.未来功能安排,
3.1 通过ai接口 视频的音频识别生成英语字幕。
3.2 用户单词表功能,生词可以加入单词表学习。
3.3 背单词功能。
linux微信
http://archive.ubuntukylin.com/ubuntukylin/pool/partner/weixin_2.1.1_amd64.deb
亲测可用。
腾讯这公司,就是不肯出linux版微信。