RM新时代网站

C++ 錄制示例代碼-Recorder

# 錄制示例-Recorder

 

功能描述:連接設備開(kāi)流 , 錄制當前視頻流到文件,并通過(guò)ESC_KEY鍵退出程序

> 本示例基于C++ High Level API進(jìn)行演示

 

首先需要創(chuàng )建一個(gè)Pipeline,通過(guò)Pipeline可以很容易的打開(kāi)和關(guān)閉多種類(lèi)型的流并獲取一組幀數據

ob::Pipeline pipe;

 

獲取深度相機的流配置

depthProfile = std::const_pointer_cast<ob::StreamProfile>(profiles->getProfile(OB_PROFILE_DEFAULT))->as<ob::VideoStreamProfile>();

 

通過(guò)創(chuàng )建Config來(lái)配置Pipeline要啟用或者禁用哪些流,這里將啟用深度流

//配置Pipeline打開(kāi)的流類(lèi)型
std::shared_ptr<ob::Config> config = std::make_shared<ob::Config>();
config->enableStream(depthProfile);

 

啟動(dòng)在Config中配置的流,如果不傳參數,將啟動(dòng)默認配置啟動(dòng)流,啟動(dòng)錄制開(kāi)關(guān)

pipe.start(config);
pipe.startRecord("./OrbbecPipeline.bag");

 

以阻塞的方式等待一幀數據,該幀是一個(gè)復合幀,里面包含配置里啟用的所有流的幀數據,并設置幀的等待超時(shí)時(shí)間

auto frameSet = pipe.waitForFrames(100);    //設置等待時(shí)間為100ms

 

停止Pipeline,將不再產(chǎn)生幀數據

pipe.stop();

 

程序正常退出后會(huì )釋放資源


RM新时代网站