HMI屏支持H264\H265硬解码,其他为软件码,推荐RTSP流的分辨率及帧率如下
优先选择H265,其次H264,再是其他。
1. 若摄像头只支持MJPEG格式,推荐分辨率640*480,帧率15;注意这个是软件,会占用较大CPU
2.若摄像头能支持H264,推荐分辨率640*480,帧率10;
3.若摄像头能支持H265,推荐分辨率1920*1080以下,帧率20;
仅供参考,实际的延时情况,需用户自行试验。
案例一:
某无品牌摄像头,同时接入三路rtsp,主码流1080P,子码流CIF,仅H支持265格式,可进行如下设置
1. 一般子码流为stream=1,如不确定,可在指定rtsp流时,检测一下分辨率
rtsp://192.168.1.243:554/user=admin&password=&channel=1&stream=1.sdp?
2. 摄像头设置子码流分辨率为CIF (352×288)、帧率为20 (帧率并非越小延迟越少,需自行尝试)
3. 多路摄像头,建议不要直接指定rtsp,而是在onload里延时启动
AsynWorker *worker = new AsynWorker(getRuntime()->getAppInstance(this_thread::get_id()));
//如需传入局部变量,可在网上搜索lambda表达式的用法
worker->invoke([this]() {
std::this_thread::sleep_for(std::chrono::milliseconds(200));//延时200ms
})->onFinished([this]() {
wMVideo1->setMainArg(99, 0, 462, 300, "rtsp://192.168.1.243:554/user=admin&password=&channel=1&stream=1.sdp?");
wMVideo1->play(1000);
wMVideo2->setMainArg(560, 0, 466, 300, "rtsp://192.168.1.244:554/user=admin&password=&channel=1&stream=1.sdp?");
wMVideo2->play(3000);
wMVideo3->setMainArg(308, 299, 466, 300, "rtsp://192.168.1.245:554/user=admin&password=&channel=1&stream=1.sdp?");
wMVideo3->play(5000);
})->start();