Parade Series - Web Streamer Low Latency

在这里插入图片描述
在这里插入图片描述

Parade Series - FFMPEG (Stable X64)
在这里插入图片描述
延时测试秒表计时器

ini/config.ini

[system]
home=server
store=store\nvr.db
version=V20240312001
verbose=false
[monitor]
list=rtsp00,rtsp01,rtsp02
timeout=30000
[rtsp00]
type=local
device=Surface Camera Front
schema=rtsp
ip=127.0.0.1
port=8554
usr=
pwd=
context=/cam081101
[rtsp01]
type=remote
device=
schema=rtsp
ip=10.10.20.231
port=554
usr=admin
pwd=password
context=
[rtsp02]
type=remote
device=
schema=rtsp
ip=10.10.20.235
port=554
usr=admin
pwd=password
context=

com-cam-to-rtsp.cmd

:: ===========================================================================
:: PLEASE DO NOT EDIT THIS FILE
:: ===========================================================================
@ECHO OFF
:: ===========================================================================

@SET DSK=%~d0
@SET PWD=%~dp0

@%DSK%
@CD %PWD%

:: ===========================================================================

@SET ARG-DEVICE=%1

@SET NVRHOME=nginx-rtmp\html
FOR /F %%x IN ('linux_date +"%%s%%N"') DO (
    SET TTSS=%%x
)
@SET TMPLOG=%NVRTMP%\tmp-%TTSS%.log

:: ===========================================================================

@SET CAM-DEVICE=Surface Camera Front
@SET CAM-LINK=-f dshow -i video="%CAM-DEVICE%"

@SET ALPHA=-vcodec libx264 -preset:v ultrafast -tune:v zerolatency
@SET BETA=-an
@SET GAMMA=-rtsp_transport tcp
@SET DELTA=-f rtsp
@SET CAM-TARGET=

@SET ARGS=%ALPHA% %BETA% %GAMMA% %DELTA%
@SET ARGS=%ARGS%

@SETLOCAL ENABLEDELAYEDEXPANSION

@ECHO.
FOR /F %%a IN (' com-get-ini.cmd monitor list ') DO @(
    @SET cmd_out=%%a
    @SET MESSAGE=%MESSAGE%!cmd_out!
)
FOR %%a IN ( %MESSAGE% ) DO @(
    @SET cmd_aaa=%%a

    @SET cmd_type=
    @SET cmd_device=
    @SET cmd_rtsp=
    @SET cmd_ip=

    @SET cmd_key=type
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
    )
    @SET cmd_type=!cmd_bbb!

    @SET cmd_key=device
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F "tokens=1,2,3,4" %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b %%c %%d %%e
    )
    @IF "!cmd_bbb:~-1!"==" " @SET cmd_bbb=!cmd_bbb:~0,-1!
    @SET cmd_device=!cmd_bbb!

    @SET cmd_key=schema
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!!cmd_bbb!://
    )

    @SET cmd_key=usr
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!!cmd_bbb!
    )

    @SET cmd_key=pwd
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!:!cmd_bbb!
    )

    @SET cmd_key=ip
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!@!cmd_bbb!
    )
    @SET cmd_ip=!cmd_bbb!

    @SET cmd_key=port
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!:!cmd_bbb!
    )

    @SET cmd_key=context
    @SET cmd_line=!cmd_aaa! !cmd_key!
    FOR /F %%b IN (' com-get-ini !cmd_line! ') DO @(
        @SET cmd_bbb=%%b
        @SET cmd_rtsp=!cmd_rtsp!!cmd_bbb!
    )

    @IF "!cmd_type!" == "local" @(
        @SET CAM-LINK=-f dshow -i video="!cmd_device!"
        @HideExec @ffmpeg !CAM-LINK! %ARGS% !cmd_rtsp!
    ) ELSE @(
        @ECHO !cmd_rtsp!
    )
)
@ECHO.

:__END__
@CD %PWD%
paths:
    cam0801:
        runOnInit: ffmpeg -f dshow -i video="Surface Camera Rear" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -an -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/cam081101

    rtsp081101:
        source: rtsp://127.0.0.1:8554/cam081101

在这里插入图片描述

ffplay -window_title cam081101 rtsp://127.0.0.1:8554/cam081101

在这里插入图片描述

http://127.0.0.1:8889/rtsp081101/

在这里插入图片描述
HideExec.exe

void HideExec( )
{
	PTSTR pszCmdLine = GetCmdLine();

	if (pszCmdLine && *pszCmdLine) {
		PROCESS_INFORMATION pi;
		STARTUPINFO si;
		BOOL fSuccess;

		ZeroMemory(&si, sizeof(si));
		si.cb = sizeof(si);
		si.dwFlags = STARTF_USESHOWWINDOW;
		si.wShowWindow = SW_HIDE;

		fSuccess = CreateProcess(
			NULL,
			pszCmdLine,
			NULL,
			NULL,
			FALSE,
			CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW,
			NULL,
			NULL,
			&si,
			&pi
		);

		if (fSuccess) {
			DWORD dwExitCode = 0;
			WaitForSingleObject(pi.hProcess, INFINITE);
			GetExitCodeProcess(pi.hProcess, &dwExitCode);
			CloseHandle(pi.hProcess);
			CloseHandle(pi.hThread);
			ExitProcess(dwExitCode);
		}
	}

	ExitProcess(0x100);
}
PTSTR WINAPI GetCmdLine( )
{
	PTSTR pszCmdLine = GetCommandLine();

	if (pszCmdLine) {
		BOOL fInQuotes = FALSE;
		while (*pszCmdLine > TEXT(' ') || (*pszCmdLine && fInQuotes)) {
			if (*pszCmdLine == TEXT('\"'))
				fInQuotes = ~fInQuotes;

			++pszCmdLine;
		}
		while (*pszCmdLine && *pszCmdLine <= TEXT(' '))
			++pszCmdLine;
	}
	return (pszCmdLine);
}

PresetControl

/
// dwPTZPresetCmd
//     [in] SET_PRESET   8 设置预置点 
//          CLE_PRESET   9 清除预置点 
//          GOTO_PRESET 39 转到预置点 
/
BOOL PresetControl(DWORD dwPTZPresetCmd, DWORD dwPresetIndex);

INT parsePresetCommand(CString cmdString) {
	INT result = 0;

	if (0 == cmdString.CompareNoCase(_T("SET-PRESET"))) {
		result = SET_PRESET;
	}
	if (0 == cmdString.CompareNoCase(_T("CLE-PRESET"))) {
		result = CLE_PRESET;
	}
	if (0 == cmdString.CompareNoCase(_T("GOTO-PRESET"))) {
		result = GOTO_PRESET;
	}

	return result;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/464469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp,导航栏(切换项)有多项,溢出采取左滑右滑的形式展示

一、实现效果 当有多项的导航&#xff0c;或者说切换项&#xff0c;超出页面的宽度&#xff0c;我们采取可滑动的方式比较好一些&#xff01;并且在页面右边加个遮罩&#xff0c;模拟最右边有渐变效果&#xff01; 二、实现代码 html代码&#xff1a; <!-- 头部导航栏 --…

Linux:系统初始化,内核优化,性能优化(3)

优化系统的文件句柄数&#xff08;全局&#xff09; 也就是系统的最大文件数量 查看最大数量 cat /proc/sys/fs/file-max 当我们的服务器有非常大的一个数据并发的时候十几二十万的文件需要去配置&#xff0c;可能这个是远远不够的&#xff0c;我们就要去修改 vim /etc/sy…

【系统架构师】-第4章-信息安全技术

1、基础知识 五要素&#xff1a; (1)机密性&#xff1a;确保信息不暴露给未授权的实体或进程。 (2)完整性&#xff1a;只有得到允许的人才能修改数据&#xff0c;并且能够判别出数据是否已被篡改。 (3)可用性&#xff1a;得到授权的实体在需要时可访问数据&#xff0c;即攻击…

DFL《384底丹 430万》 wf/df-udt/448/96/96/32预训练模型

384底丹430万迭代&#xff1a;点击下载 训练素材19万张来自于以下数据集&#xff1a; 【更新】DST全角度训练图集V3.1 WF512【2.6W张 6GB 】【人脸混合_WF】FFHQ女性人脸数据&#xff0c;预训练炼丹专用【金鱼基础模型库】用于补全SRC极限角度香港中文大学CelebA预训练集-WF5…

【web前端】<meta>标签

meta元素可以提供有关页面的元信息&#xff08;meta-information&#xff09; meta标签位于文档的头部&#xff0c;是空元素 meta元素的属性 属性值描述http-equiv expires refresh X-UA-compatible 定义HTTP协议的头部元信息名称。其中&#xff0c;expires设置网页在缓存区的…

docker引擎

目录 一、Docker引擎发展历程 二、docker引擎架构 三、docker引擎分类 四、docker引擎安装 4.1安装条件 4.2 使用rpm存储库安装 4.2.1设置存储库 4.2.2安装docker引擎 4.2.3启动docker,并设置docker开机自启动 五、卸载docker引擎 5.1.卸载 Docker 引擎、CLI、conta…

如何使用人工智能打造超用户预期的个性化购物体验

回看我的营销职业生涯&#xff0c;我见证了数字时代如何重塑客户期望。从一刀切的方法过渡到创造高度个性化的购物体验已成为企业的关键。在这个客户期望不断变化的新时代&#xff0c;创造个性化的购物体验不再是奢侈品&#xff0c;而是企业的必需品。人工智能 &#xff08;AI&…

Acwing-基础算法课笔记之动态规划(计数类DP)

Acwing-基础算法课笔记之动态规划&#xff08;计数类DP&#xff09; 一、整数划分1、定义2、完全背包的做法代码示例&#xff08;1&#xff09;过程模拟&#xff08;2&#xff09;代码示例 3、计数类DP的做法&#xff08;1&#xff09;过程模拟&#xff08;2&#xff09;闫氏DP…

页面侧边栏顶部固定和底部固定方法

顶部固定用于侧边栏低于屏幕高度----左侧边栏 底部固定用于侧边栏高于屏幕高度----右侧边栏 vue页面方法 页面布局 页面样式&#xff0c;因为内容比较多&#xff0c; 只展示主要代码 * {margin: 0;padding: 0;text-align: center; } .head {width: 100%;height: 88px;back…

Language models scale reliably with over-training and on downstream tasks

Language models scale reliably with over-training and on downstream tasks 相关链接&#xff1a;arxiv 关键字&#xff1a;语言模型、过度训练、下游任务、可扩展性、性能预测 摘要 本文探讨了语言模型在过度训练和下游任务中的可扩展性。尽管现有的扩展研究通常集中在计算…

【Linux】基础 IO(文件描述符)-- 详解

一、前言 1、文件的宏观理解 文件在哪呢&#xff1f; 从广义上理解&#xff0c;键盘、显示器、网卡、声卡、显卡、磁盘等几乎所有的外设都可以称之为文件&#xff0c;因为 “Linux 下&#xff0c;一切皆文件”。 从狭义上的理解&#xff0c;文件在磁盘&#xff08;硬件&#…

虚拟机 VMware下载及安装

centos官网&#xff1a;CentOS Mirror 虚拟机vmware官网&#xff1a;VMware 官网 一直点下一步就好了&#xff0c;有些配置按需修改即可 创建新的虚拟机 处理内核总数不能大于自己主机的逻辑处理器 安装操作系统&#xff1a;引入centos镜像 然后就可以点击开启此虚拟机&#xf…

软考76-上午题-【面向对象技术3-设计模式】-创建型设计模式01

一、创建型设计模式一览 二、创建型设计模式 2-1、创建型设计模式的概念 一个类创建型模式使用继承改变被实例化的类&#xff1b; 一个对象创建型模式将实例化委托给另一个对象。 对应java的new一个对象。 2-2、简单工厂模式&#xff08;静态工厂方法&#xff09; 简单工厂…

Python电梯楼层数字识别

程序示例精选 Python电梯楼层数字识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Python电梯楼层数字识别》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应…

第四篇 - 环境:移动设备、台式设备和联网电视 - IAB视频广告标准《数字视频和有线电视广告格式指南》

第四篇 - 环境&#xff1a;移动设备、台式设备和联网电视 - IAB视频广告标准《数字视频和有线电视广告格式指南》 --- 我为什么要翻译介绍美国人工智能科技公司IAB系列技术标准&#xff08;2&#xff09; ​​​​​​​翻译计划 第一篇序言第二篇简介和目录第三篇概述- IAB…

linux解析域名指令 nslookup 或者 host

host www.baidu.com 第二种方法 nslookup www.baidu.com 注意&#xff1a;ns是name server之意

纯 CSS 实现文字换行环绕效果

实现效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

前端学习之css样式 背景样式、字体样式、列表样式、边框样式、内外边距元素属性的转换

背景样式 html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景样式</title><link rel"stylesheet" href"../css/3.1背景样式.css"> </head> <bo…

基于springboot+vue实现员工信息管理系统项目【项目源码+论文说明】

基于springbootvue实现员工信息管理系统演示 引言 随着计算机技术的飞速发展&#xff0c;计算机在企业管理中应用的普及&#xff0c;利用计算机在实现企业人事档案的管理势在必行。当今社会正快速向信息化社会前进&#xff0c;信息自动化的作用也越来越大。从而使我们从繁杂的…

蓝桥杯第 6 场 小白入门赛 2.猜灯谜(for + 数组)

思路&#xff1a;注意是环形排列的灯笼&#xff0c;它的谜底是相邻两个灯笼的数字之和。这道题要用到两个数组&#xff0c;ans存答案&#xff0c;a存原数据。数据读入部分就不用说了&#xff0c;重点就是单独写明ans[0]和ans[n-1]两个取值&#xff0c;其他的用for循环数组就可以…