1
This commit is contained in:
parent
daf91cb542
commit
e95d98f983
@ -37,6 +37,9 @@ class RecordManager
|
||||
// 根据 segmentId 获取可播放文件列表
|
||||
RecordSegment getSegment(const std::string& segmentId);
|
||||
|
||||
static int64_t toMsTimestamp(const std::string& s);
|
||||
static std::string toReadable(int64_t ms);
|
||||
|
||||
// 调试打印全部索引
|
||||
void dumpIndex() const;
|
||||
|
||||
|
||||
@ -51,15 +51,12 @@ int main()
|
||||
// 测试一次查询:你可以换成真实时间戳
|
||||
std::cout << "\n=== 测试 querySegments() ===\n";
|
||||
|
||||
// 用你的 AHD1_main 做示例
|
||||
std::string stream = "AHD1_main";
|
||||
|
||||
// 随便选一个时间区间,比如 2025-11-13 10:23:00 ~ 11:00:00
|
||||
// 你可以换成真实值
|
||||
long long t1 = 1731464600000;
|
||||
long long t2 = 1731467400000;
|
||||
int64_t start = RecordManager::toMsTimestamp("2025-11-13 10:00:00");
|
||||
int64_t end = RecordManager::toMsTimestamp("2025-11-13 14:30:00");
|
||||
|
||||
auto segments = rm.querySegments(stream, t1, t2);
|
||||
auto segments = rm.querySegments("AHD1_main", start, end);
|
||||
|
||||
std::cout << "找到录像段数量 = " << segments.size() << "\n";
|
||||
|
||||
|
||||
@ -194,6 +194,26 @@ RecordSegment RecordManager::getSegment(const std::string& segmentId)
|
||||
return {};
|
||||
}
|
||||
|
||||
int64_t RecordManager::toMsTimestamp(const std::string& s)
|
||||
{
|
||||
std::tm tm = {};
|
||||
char* ret = strptime(s.c_str(), "%Y-%m-%d %H:%M:%S", &tm);
|
||||
if (!ret) return -1;
|
||||
|
||||
time_t t = mktime(&tm); // local time (UTC+8)
|
||||
return static_cast<int64_t>(t) * 1000;
|
||||
}
|
||||
|
||||
std::string RecordManager::toReadable(int64_t ms)
|
||||
{
|
||||
time_t t = ms / 1000;
|
||||
std::tm* tm = localtime(&t);
|
||||
|
||||
char buf[32];
|
||||
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm);
|
||||
return buf;
|
||||
}
|
||||
|
||||
void RecordManager::dumpIndex() const
|
||||
{
|
||||
std::cout << "\n=== dumpIndex() ===\n";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user