最近在工作中窝革,出現(xiàn)音頻轉(zhuǎn)碼程序總是重復(fù)轉(zhuǎn)碼的問(wèn)題,分析原因后宋梧,發(fā)現(xiàn)在音頻適配程序中會(huì)判斷目標(biāo)音頻文件時(shí)長(zhǎng)和源音頻文件時(shí)長(zhǎng)是否一致,如果不一致史简,會(huì)判定為轉(zhuǎn)碼失敗乃秀,下次訪問(wèn)該音頻時(shí)肛著,會(huì)再次轉(zhuǎn)碼。但是今天發(fā)現(xiàn)音頻獲取慢跺讯,登上服務(wù)器枢贿,發(fā)現(xiàn)好多ffmpeg進(jìn)程,但是轉(zhuǎn)碼文件都指向了同一個(gè)刀脏。后來(lái)就分析轉(zhuǎn)碼程序局荚,對(duì)比了一下源文件和目標(biāo)文件的時(shí)長(zhǎng),發(fā)現(xiàn)有1到2秒的誤差愈污。原因找到了耀态,那么在判斷時(shí)長(zhǎng)時(shí)就不能做精確比對(duì),而需要做模糊比對(duì)暂雹,可是php的約等于只是對(duì)小數(shù)起作用首装,整數(shù)的話還是得自己寫(xiě)函數(shù),函數(shù)如下
function?duration_approximately($num1,$num2,$allowance){
????$max?=?max($num1,$num2);
????$min?=?min($num1,$num2);
????if(($max?-?$min)?<=?$allowance){
????????return?TRUE;
????}else{
????????return?FALSE;
????}
}