扫码关注官方订阅号
认证高级PHP讲师
视频转码,耗时较长,不应该阻塞PHP-FPM进程,所以应该另开一个进程异步处理:pclose(popen('php /path/to/task.php &', 'r'));脚本task.php里调用Linux命令mencoder/ffmpeg/imagemagick(convert)处理多媒体文件,并在数据库任务表里插入一条数据,用来记录任务的状态进度,供前端AJAX检查.
pclose(popen('php /path/to/task.php &', 'r'));
mencoder/ffmpeg/imagemagick(convert)
1、转码服务是一个进程,提供2个接口功能(a:接受转码请求并处理,b:查询转码进度)2、前端调用这2个接口即可。
针对这两种。后台进行执行的,我所了解到的就是创建一张数据表,比如视频转码,发送邮件等,要执行对应的操作的时候向数据库插入数据,然后编写一个定时任务去后台完成相关操作
在前台执行并显示进度条,将每一次的操作当成一步,算出共多少步,涉及到的就比较多了
后台异步可以用Swoole扩展。至于进度可以用数据库或者redis之类的进行通信,比如进度每过5%,更新一下数据库/redis, 前台则是每10秒查询一次最新状态,这样的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
视频转码,耗时较长,不应该阻塞PHP-FPM进程,所以应该另开一个进程异步处理:
pclose(popen('php /path/to/task.php &', 'r'));脚本task.php里调用Linux命令
mencoder/ffmpeg/imagemagick(convert)处理多媒体文件,并在数据库任务表里插入一条数据,用来记录任务的状态进度,供前端AJAX检查.
1、转码服务是一个进程,提供2个接口功能(a:接受转码请求并处理,b:查询转码进度)
2、前端调用这2个接口即可。
针对这两种。后台进行执行的,我所了解到的就是创建一张数据表,比如视频转码,发送邮件等,要执行对应的操作的时候向数据库插入数据,然后编写一个定时任务去后台完成相关操作
在前台执行并显示进度条,将每一次的操作当成一步,算出共多少步,涉及到的就比较多了
后台异步可以用Swoole扩展。
至于进度可以用数据库或者redis之类的进行通信,比如进度每过5%,更新一下数据库/redis, 前台则是每10秒查询一次最新状态,这样的。