zoukankan      html  css  js  c++  java
  • H265播放器EasyPlayer中如何实现录像检查磁盘空间的功能?

    大部分的视频安防监控项目都是需要对录像进行存储的,以便于后来进行追源回溯,录像对磁盘存储空间的要求比较高,要保持30天的录像文件不丢失,就要保证磁盘有足够的空间来存储视频。

    在做客户端软件的时候,经常遇到有开发者咨询:假如客户端做录像功能,如何来判断磁盘存储空间的问题,EasyPlayer播放器在设计之初就考虑过这个问题,因此我们在代码中加入了检查磁盘空间的代码。

    部分代码如下:

    BOOL EasyMP4Writer::CheckDiskSpacePlenty(const char* strPath, float fSpace)
    {
    	//CreateDirectory(strPath, NULL);
    	BOOL bSuccess = FALSE;
    	//检查磁盘空间
    	ULARGE_INTEGER nFreeBytesAvailable;
    	ULARGE_INTEGER nTotalNumberOfBytes;
    	ULARGE_INTEGER  ulFree;
    	float  fTempFree = 0.0f;
    	ULONG  lTempFree = 0;
    	bSuccess = ::GetDiskFreeSpaceExA(strPath, &nFreeBytesAvailable, &nTotalNumberOfBytes, &ulFree);
    	if (!bSuccess)
    	{
    		printf("GetDiskFreeSpaceEx %s Failed!
    ", strPath);
    		return 2;
    	}
    	lTempFree = (ULONG)(ulFree.QuadPart / 1024);
    	fTempFree = (float)lTempFree;
    	fTempFree = fTempFree / 1024 / 1024; //GB
    	if (fTempFree <= fSpace)
    	{
    		printf("磁盘空间剩余 %f GB,不足 %f GB!
    ", fTempFree, fSpace);
    		return FALSE;
    	}
    	return TRUE;
    }

    检测磁盘是否满足剩余的要求,fSpace表示磁盘剩余多少为满(单位:GB)

    以下代码是在判断磁盘空间是否足够时可以给出提醒:

    //判断磁盘空间是否足够
    	BOOL bIsDiskSpacePlenty = CheckDiskSpacePlenty(m_strWholeDir.c_str(), m_nFreeDisk);
    	if (!bIsDiskSpacePlenty)
    	{
    		printf("请重新设置录像存放路径!");
    		return  -1;
    	}

    我们开发的EasyPlayer播放器系列项目底层采用了高性能的EasyRTSPClient组件,其低延时控制在行业处于领先位置,并提供了非常简单易用的SDK及API接口,用户通过API调用就可以非常快速地开发出属于自己的应用程序,进行二次开发。

  • 相关阅读:
    在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware
    03-nginx虚拟主机配置
    解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
    02-nginx信号量
    RedHat Linux设置yum软件源为本地ISO
    01-nginx介绍及编译安装
    Linux.负载均衡
    01-MySQL优化大的思路
    10 华电内部文档搜索系统 search02
    10 华电内部文档搜索系统 search03
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/15075823.html
Copyright © 2011-2022 走看看