我正在运行几个实时视频流和ffmpeg分段的视频流。每个云服务器运行一个通道。我有一台中央的,功能更强大的服务器,用于执行各种任务,其中之一是摄取主要的m3u8播放列表,并将段名称和创建时间存储在数据库中。
目前大约每8秒钟为8个频道创建一次细分。 这意味着我每8秒钟调用一次playlist.m3u8(位于远程服务器上),并将每个段的信息存储在数据库中。
这使我可以快速创建视频(在时间和时间之间从频道1中选择)。
但是,一两次数据库似乎已停止工作,我需要对其进行修复,然后才能获取新信息。
我想知道,我打得太重了吗?有更好的方法吗?
我的语句打开一个新连接,检查该条目是否已经存在,如果不存在则将其输入,然后关闭该连接。
我每8秒对每个频道执行一次。
这感觉可能会更好,但是我不太清楚。我应该/可以保持连接打开吗?也许这根本不是问题。
有人有什么建议吗?
如果您需要更多信息,请询问。
查询:
$conn = new mysqli($servername, $username, $password, $dbname);
$eight = date('Y-m-d', strtotime("-8 day"));
$vq = "SELECT * FROM `".$channels['channels'][$id]['fo_id']."`
WHERE `segment_name` = '".$oline."'";
$query = mysqli_query($conn, $vq);
if(mysqli_num_rows($query) == 0){
$sql = "INSERT INTO `".$channels['channels'][$id]['fo_id']."`
(`segment_name`, `server`, `created`, `lenght`)
VALUES
('".$oline."', '".$channels['channels'][$id]['server']."',
'".date("Y-m-d H:i:s", $date)."', '".$otime."')";
$conn->query($sql);
}
$query = mysqli_query($conn, "DELETE FROM `".$channels['channels'][$id]['fo_id']."`
WHERE `created` < '".$eight." 00:00:00'");
$conn->close();