php - 每 10 分钟 cronjob 进行文件转换

标签 php ffmpeg cron cron-task

我添加了一个 cron 作业以在每 10 分钟后执行一个脚本,该脚本检查是否有任何新文件上传到目录,如果有新文件,则它将视频文件转换为我在命令 ..

下面是我尝试过的代码,一切正常,我也尝试添加电子邮件功能并且它可以工作,但没有执行 ffmpeg 命令

$last = (int)file_get_contents('timestamp.txt');
file_put_contents('timestamp.txt', time());
$files = glob('videos/*.mp4');
$files = array_filter($files, function($file) { 
    return filemtime($file) > $last; 
});

if ($files) {
    foreach ($files as $sfile) {
        $sfile = str_replace('videos/', '', $sfile);
        $video = 'videos/'.escapeshellcmd($sfile);
        $sixty = "videos/250/".escapeshellcmd($sfile);
        $cmdform = "ffmpeg -i $video -vf scale=250:140 $sixty";
        $do = `$cmdform`;
    }
}

另一件事是它转换具有静态名称的文件,例如如果我给出“videos/1.mp4”,那么它可以工作,但不能在 foreach 循环中工作。

和命令设置 cron 作业
*/10 * * * * wget http://mywebsite.com/coding.php

非常感谢。

最佳答案

如果你想执行外部命令,你可以使用 php bellow cmd

exec('cmd')

例如:
<?php    
echo exec('whoami');
?>

输出:你的机器名

在你的情况下,它将是
...
...
...
$cmdform = "ffmpeg -i $video -vf scale=250:140 $sixty";
$do = exec($cmdform);

我希望这是有用的

关于php - 每 10 分钟 cronjob 进行文件转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47544855/

相关文章:

php - 如何在 Laravel 中使用多个数据库

php - 从 android 连接到数据库 mySQL 失败

linux - 如何在crontab中指定每天运行的文件

php - 时区和 cron

r - 每分钟安排一个 Rscript crontab

php - IE10 jquery 未定义,也忽略 X-UA 元

php - 从 HTML5 表单获取日期 - 并发布到 MySQL

memory - FFMPEG 吃掉所有内存

Android FFmpeg 无法设置图像质量

ffmpeg - 一个关于ffmpeg输入文件列表的问题