yt-dlp 下载youtube视频

yt-dlp 下载youtube视频


xiang 发布于  2024-7-20 10:27 

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

xiang 发布于  2024-7-18 22:18 

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 当前运行的协程数量


xiang 发布于  2024-7-13 12:16 

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";
}

xiang 发布于  2024-7-13 12:14 

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

是一样的


xiang 发布于  2024-7-12 18:29 

把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。


xiang 发布于  2024-7-12 10:58 

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


xiang 发布于  2024-7-5 08:54 

看英语字幕视频学英语app开发日记 php

产品介绍

这是一款通过看视频看英语字幕来学习英语的app,根据的外语学习理论是可理解性输入。进行大量的可以理解性的英语内容输入,可以实现有效的外语学习,不需要枯燥的背单词,学语法。

网址:https://eng.devxiang.com/videoDetail/10
(仅支持手机端浏览器访问。)

笔者是一个后端程序员和这个产品的发起人,和我一起合作的还有一名vuejs前端开发者。



6月26日

  1. 完成了单词词库的构建,有49000多个英语单词。使用了github上的开源词库。导进mysql数据表。写成接口,现在打算开放给大家免费使用,如果有需要的话,欢迎使用。

单词查询接口文档
https://apifox.com/apidoc/shared-9931ba6d-69fc-471c-a874-aff60ee3bbcb

  1. 完成了视频详情接口,前端完全了字幕独立加载,按时间展示,支持分词点击查询单词中文意思。但目前只支持手机浏览器访问,pc端浏览器还没有做兼容。

按敏捷开发原则,快速开发出产品原型,最小可使用的版本。第一版已经支持视频播放,字幕独立展示,可以点击查询。算是可以使用的了。

3.未来功能安排,
3.1 通过ai接口 视频的音频识别生成英语字幕。
3.2 用户单词表功能,生词可以加入单词表学习。
3.3 背单词功能。


xiang 发布于  2024-6-26 13:57 

下载youtube字幕

[该文章已加密,请点击标题输入密码访问]


xiang 发布于  2024-6-25 17:55 

linux微信

http://archive.ubuntukylin.com/ubuntukylin/pool/partner/weixin_2.1.1_amd64.deb

亲测可用。

腾讯这公司,就是不肯出linux版微信。


xiang 发布于  2024-5-24 09:24