視訊流媒體播放器EasyPlayer-RTSP原始錄影檔案被新錄影檔案覆蓋是什麼原因?
阿新 • • 發佈:2020-08-06
流媒體播放器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); }