示例#1
0
        /// <summary>
        /// 获取路径下指定时间点对应的视频流信息
        /// </summary>
        /// <param name="path"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public static VideoStreamsPacket GetVideoStreamsPacket(string path, DateTime time)
        {
            string        indexesFileName = null;
            IndexesPacket indexesPacket   = GetIndexesPacket(path, time, ref indexesFileName);

            if (indexesPacket != null && indexesFileName != null)
            {
                string         videoFile    = GlobalProcess.GetRecFileName(indexesFileName);
                StreamPacket[] streamPacket = FileManager.GetStreamPacket(videoFile, indexesPacket.StartIndex);
                return(new VideoStreamsPacket(indexesPacket, streamPacket));
            }
            Logger.Default.Trace("{0} 未找到 {1} 对应的索引文件! {2}", path, time, indexesFileName);
            return(null);
        }
示例#2
0
        /// <summary>
        /// 获取某文件夹下某段时间内首个视频头文件
        /// </summary>
        /// <param name="folder">文件夹路径</param>
        /// <param name="beginTime">起始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <returns>视频头</returns>
        public static StreamPacket GetVideoHeader(string folder, DateTime beginTime, DateTime endTime)
        {
            StreamPacket header = null;

            string[] files = GetIndexesFiles(folder);
            if (files.Length > 0)
            {
                TimePeriodPacket   validTi = new TimePeriodPacket(beginTime, endTime);
                TimePeriodPacket[] tis     = FolderManager.GetTimePeriods(folder);
                if (TimePeriodManager.GetIntersections(tis, validTi).Length != 0)
                {
                    foreach (var file in files)
                    {
                        header = FileManager.GetVideoHeader(GlobalProcess.GetRecFileName(file));
                        if (header != null)
                        {
                            break;
                        }
                    }
                }
            }
            return(header);
        }