1. 程式人生 > 實用技巧 >視訊流媒體播放器EasyPlayer-RTSP原始錄影檔案被新錄影檔案覆蓋是什麼原因?

視訊流媒體播放器EasyPlayer-RTSP原始錄影檔案被新錄影檔案覆蓋是什麼原因?

流媒體播放器EasyPlayer有很多版本,其中EasyPlayer-RTSP就是能夠輸出RTSP視訊流的版本,由於RTSP的需求眾多,因此RTSP版本的使用者也是很廣泛。

EasyPlayer-RTSP錄影檔案被覆蓋

EasyPlayer-RTSP是可以進行錄影的,在錄製錄影檔案時會出現開始錄影後產生一個錄影檔案,停止錄影後,錄影檔案被儲存下來,然後再次開啟錄影的時候,我們發現之前的錄影檔案會被刪除掉,然後重新開始錄製一個新的錄影檔案。

分析問題

跟蹤程式碼到錄影函式位置時發現,在建立錄影檔案時,是按照通道號加年月日時的規律儲存的,這樣在同一個小時內儲存兩次的話,檔名實質上是一致的,就是這裡出現了問題。

我們把程式碼糾一下,如下:

//建立新的mp4檔案
		if (p_file == NULL)
		{
			m_nCurMediaFirstDTS = dts;
			unsigned int timestamp = (unsigned int)time(NULL);
			time_t tt = timestamp;
			struct tm *_time = localtime(&tt);
			char szTime[64] = {0,};

			//strftime(szTime, 32, "%Y%m%d%H0000", _time);//【23/06/2020  Seven】
			strftime(szTime, 32, "%Y%m%d%H%M%S", _time);
			char szStreamCacheName[512] = { 0 };
			sprintf(szStreamCacheName, "%s_%s.mp4", m_strMediaName.c_str(), szTime);
			string strFilePath = m_strWholeDir + szStreamCacheName;
			CreateMP4File((char*)strFilePath.c_str(), ZOUTFILE_FLAG_FULL);
		}