.sh文件内容例如musicformat.sh文件
#!/bin/sh
ps -fe|grep run_format_process.php |grep -v grep
if [ $? -ne 0 ]
then
php /home/wwwroot/handleformatmusic/run_format_process.php
else
echo "runing....."
fi
run_format_process.php文件内容
<?php
require 'php-sdk/autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
$accessKey = 'EsmnzabqcE4NVh77MZ7HgzZse77Lg5AjrvaAST-k';
$secretKey = 'xkY-fN4bqtH4-3V4DAH_d51XWAuolUQPTei_ZbzD';
$mysqli = mysqli_connect('rm-4mdthodg.mysql.rds.aliyuncs.com','root','vfineRoot','broad');
// $sql_find_music='SELECT id,excel_import,file_url,UUID,center_id FROM vf_music where UUID!="" and file_url!="" and file_url like "%wav"';
$sql_find_music='SELECT id,excel_import,file_url,UUID,center_id FROM vf_music where UUID!="" and file_url!="" and file_url like "%wav" and id=737';
$result_music = $mysqli->query($sql_find_music);
$one_res=array();
if($result_music!=null){
$one_res=mysqli_fetch_assoc($result_music);
}
if(!empty($one_res)){
$id=$one_res['id'];
$file_url=$one_res['file_url'];
$UUID=$one_res['UUID'];
$old_save_path='/home/wwwroot/handleformatmusic/oldmusic/';//原音乐保存项目目录
$new_save_path='/home/wwwroot/handleformatmusic/newmusic/';//格式转换后音乐保存项目目录
$fileName =$id.'.wav';
$fileNewName =$id.'.mp3';
download($file_url,$old_save_path.$fileName);
$re=file_exists($old_save_path.$fileName);
if($re==0){
echo '音乐id:'.$id.'下载原文件失败';die;
}else{
//将wav格式转换为mp3格式
// $cmd="ffmpeg -i {$old_save_path}{$fileName} {$new_save_path}{$fileNewName}";
$cmd="ffmpeg -i {$old_save_path}{$fileName} -acodec libmp3lame {$new_save_path}{$fileNewName}";
$commandOutput = shell_exec($cmd);
// $commandOutput =exec($cmd);
echo '格式转换后结果';
var_dump($commandOutput);die;
if(empty($commandOutput)){
//格式转换成功
//删除原音乐文件
unlink($old_save_path.$fileName);
// 初始化签权对象
$auth = new Auth($accessKey, $secretKey);
$bucket='broad';
$qiniuUploadToken=$auth->uploadToken($bucket);
$uploadManager=new UploadManager();
$res=$uploadManager->putFile($qiniuUploadToken,$fileNewName,$new_save_path.$fileNewName);
if(empty($res)){
//上传七牛失败
$time=time();
$desc='上传七牛失败';
$sql_insert_fail = "INSERT into vf_music_fail(`music_id`,`created_at`,`desc`) values('{$id}','{$time}','{$desc}')";
$insertRes=$mysqli->query($sql_insert_fail);
$mysqli->query($sql_insert_fail);
echo '音乐id:'.$id.'上传七牛失败';
}else{
//删除转换后文件
unlink($new_save_path.$fileNewName);
$file_host ='https://brofile.vfinemusic.com/';
$format_url=$file_host.$fileNewName;
// $sql_up_music="UPDATE `vf_music` SET `file_url` = '{$format_url}', `format_url` ='{$file_url}' WHERE `id` ='{$id}'";
$sql_up_music="UPDATE `vf_music` SET `format_url` = '{$format_url}' WHERE `id` ='{$id}'";
$upRes=$mysqli->query($sql_up_music);
if($upRes>0){
echo '音乐id:'.$id.'记录成功';
}else{
echo '音乐id:'.$id.'记录失败';
}
}
}
}
}else{
echo '暂无需要转换的音乐';die;
}
/**
* @param $url
* @param $filename
* @param int $timeout
*/
function download($url,$filename,$timeout = 180)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
$fp = fopen ($filename, 'w+');
$options = [
CURLOPT_FOLLOWLOCATION => 1, //使用自动跳转
CURLOPT_TIMEOUT => $timeout, //超时
CURLOPT_HEADER => 0,
CURLOPT_NOBODY => 0,
];
curl_setopt($curl, CURLOPT_FILE, $fp);
curl_setopt_array($curl,$options);
curl_exec($curl);
curl_close($curl);
fclose($fp);
}
?>
定时任务crontab -e增加musicformat.sh脚本每分钟执行一次
* * * * * su - root -c "(cd /home/wwwroot/handleformatmusic/;sh -x musicformat.sh)" >> /dev/null 2>&1