精华内容
下载资源
问答
  • OBS推工具下载及配置可以参见:OBS推工具 ##第二步:安装媒体服务 免费获得试用安装包,加入QQ群 615081503 群文件里有试用安装包,极速安装,下载解压一键启动即可,支持Windows和Linux双系统。 ##第三步:...

    第一步:准备工具

    OBS推流工具下载及配置可以参见:OBS推流工具

    第二步:安装流媒体服务

    Windows/Linux系统环境中搭建直播流媒体服务

    极速安装,下载解压一键启动即可,支持Windows和Linux双系统。
    在这里插入图片描述
    在这里插入图片描述

    第三步:创建直播间

    选择 【云直播服务】-》鉴权直播 ,点击 【创建直播】

    创建直播间

    第四步:获取推流地址

    点击复制获得推流地址: rtmp://192.168.1.11:10085/hls/pce_Bw9mR?sign=t5e_fQrigz

    获取推流地址

    第五步:配置OBS推流

    将上一步获得的推流地址分为两段
    URL 输入: rtmp://192.168.1.11:10085/hls/
    流名称输入: pce_Bw9mR?sign=t5e_fQrigz

    OBS设置
    流地址设置

    第六步:推流及播放

    OBS点击 【开始推流】

    开始推流

    后台页面点击【播放】

    播放

    获取更多信息

    安防流媒体互联直播-QQ交流群:615081503

    国标GB28181无插件LiveGBS-QQ交流群:947137753

    WEB:https://www.liveqing.com

    Copyright © LiveQing.com 2016-2019

    展开全文
  • RTMP推服务的搭建1、媒体服务搭建2、推工具准备3、创建鉴权直播间4、获取推地址5、配置OBS推6、推及播放7、获取播放地址7.1 页面查看视频源地址7.2 接口查询 1、媒体服务搭建 Windows/Linux系统环境中...

    1、流媒体服务搭建

    Windows/Linux系统环境中搭建直播流媒体服务
    极速安装,下载解压一键启动即可,支持Windows和Linux双系统。
    在这里插入图片描述

    2、推流工具准备

    OBS推流工具下载及配置可以参见:OBS推流工具下载及相关配置说明

    3、创建鉴权直播间

    选择 【云直播服务】-》鉴权直播 ,点击 【创建直播】

    在这里插入图片描述

    4、获取推流地址

    点击复制获得推流地址: rtmp://192.168.1.11:10085/hls/pce_Bw9mR?sign=t5e_fQrigz

    获取推流地址

    5、配置OBS推流

    将上一步获得的推流地址分为两段
    URL 输入: rtmp://192.168.1.11:10085/hls/
    流名称输入: pce_Bw9mR?sign=t5e_fQrigz

    OBS设置
    流地址设置

    6、推流及播放

    OBS点击 【开始推流】

    开始推流

    后台页面点击【播放】

    播放

    7、获取播放地址

    7.1 页面查看视频源地址

    在这里插入图片描述

    7.2 接口查询

    云直播-鉴权直播接口 - 05 获取单条/多条直播流信息
    在这里插入图片描述

    展开全文
  • WinCE 驱动一步一步来(理论基础) 在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的接口的驱动。 ...
     WinCE 流驱动一步一步来(理论基础)

    在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的流接口的驱动。

    对于这样一类驱动程序,我们只需要按一种特定的规则实现一个动态库,其中实现对所有的硬件功能的调用,再将这个动态库加入系统中,然后设置相关的注册表项,使得在系统启动时设备管理器能识别并且加载这个设备即可。

    1.  实现动态链接库

    此动态链接库与应用程序层所用的库并不很大差别,源文件可以是C、C++、甚至汇编,只是它要实现以下函数。

    u       DllEntry(HINSTANCE DllInstance, INT Reason, LPVOID Reserved )

    这个函数是动态链接库的入口,每个动态链接库都需要输出这个函数,它只在动态库被加载和卸载时被调用,也就是设备管理器调用LoadLibrary而引起它被装入内存和调用UnloadLibrary将其从内存释放时被调用,因而它是每个动态链接库最早被调用的函数,一般用它做一些全局变量的初始化。

    参数:

    DllInstance:DLL的句柄,与一个EXE文件的句柄功能类似,一般可以通过它在得到DLL中的一些资源,例如对话框,除此之外一般没什么用处。

    Reason:

    一般我们只关心两个值:DLL_PROCESS_ATTACH与DLL_PROCESS_DETACH,Reason等于前者是动态库被加载,等于后者是动态库被释放。

    所以,我们可以在Reason等于前者是初始化一些资源,等于后者时将其释放。

    u       DWORD XXX_Init( LPCTSTR pContext, LPCVOID lpvBusContext);
    它是驱动程序的动态库被成功装载以后第一个被调用的函数。其调用时间仅次与DllEntry,而且,当一个库用来生成多于一个的驱动程序实例时仅调用一次DllEntry,而xxx_Init会被调用多次。驱动程序应当在这个函数中初始化硬件,如果初始化成功,就分配一个自已的内存空间(通常用结构体表示),将自已的状态保存起来,并且将此内存块的地址做为一个DWORD值返回给上层。设备管理器就会用在调用XXX_Open时将此句柄传回,我们就能访问自已的状态。如果初始化失败,则返回0以通知这个驱动程序没有成功加载,先前所分配的系统资源应该全部释放,此程序的生命即告终至。
    当这个函数成功返回,设备管理器对这个程序就不做进一步处理,除非它设置了更多的特性。至此一个各为XXX的设备就已经加载成功,当用户程序调用CreateFile来打开这个设备时,设备管理器就会调XXX_Open函数。
    参数:
    pContext系统传入的注册表键,通过它可以讲到我们在注册表中设置的配置信息。
    lpvBusContext一般不用。
    实际上,很多程序中将这个函数写成了DWORD XXX_Init( DWORD pContext ),我们只需要将pContext转化成LPCTSTR即可。
    u       DWORD XXX_Open(DWORD hDeviceContext,DWORD dwAccess, DWORD dwShareMode);
    当用户程序调用CreateFile打开这个设备时,设备管理器就会调用此驱动程序的XXX_Open函数。
    参数:
    hDeviceContext XXX_Init 返回给上层的值,也就是我们在XXX_Init中分配的用来记录驱动程序信息的那个结构体的指针,我们可以在这个函数中直接将其转化成所定义的结构,从而获取驱动程序的信息。
    dwAccess 上层所要求的访问方式,可以是读或者写,或者是0,即不读也不写。
    dwShareMode 上层程序所请求的共享模式,可以是共享读、共享写这两个值的逻辑或,或者是0,即独占式访问。
    系统层对设备文件的存取权限及共享方法已经做了处理,所以在驱动程序中对这两个参数一般可以不用理会。
    这个函数一般不用做太多处理,可以直接返回hDeviceContext表示成功对于一个不支持多个用户的硬件,在设备已经打开后,应该总是返回0以至失败,则CreateFile调用不成功。
    u       DWORD XXX_Close(  DWORD hDeviceContext );
          当用户程序调用CloseHandle关闭这个设备句柄时,这个函数就会被设备管理器调用。
    参数:
    hDeviceContext 为XXX_Open返回给上层的那个值。
    这个函数应该做与XXX_Open相反的事情,具体包括:释放XXX_Open分配的内存,将驱动程序被打开的记数减少等。
    u       DWORD XXX_Deinit( DWORD hDeviceContext );
    这个函数在设备被卸载时被调用,它应该实现与XXX_Init相反的操作,主要为释放前者占用的所有系统资源。
    参数:
    hDeviceContext XXX_Init函数返回给上层的那个句柄
    u       void XXX_PowerUp(  DWORD hDeviceContext );
    u       void XXX_PowerDown(DWORD hDeviceContext );
    正如其名称中体现的那样,这两个函数在系统PowerUp与PowerDown时被调用,这两个函数中不能使用任何可能引起线程切换的函数,否则会引起系统死机。所以,在这两个函数中,实际上几乎是什么做不了,一般在PowerDown时做一个标志,让驱动程序知道自已曾经被Power Down过。在Power Down/On的过程中硬件可能会掉电,所以,尽管Power On以后,原来的IO操作仍然会从接着执行,但可能会失败。这时,当我们发现一次IO操作失败是因为程序曾经进入过Power Down状态,就重新初始化一次硬件,再做同样的IO操作。
    u       BOOL XXX_IOControl(
                            DWORD hDeviceContext,
                            DWORD dwCode,
                            PBYTE pBufIn,
                            DWORD dwLenIn,
                            PBYTE pBufOut,
                            DWORD dwLenOut,
                            PDWORD pdwActualOut
                       );
    几乎可以说一个驱动程序的所有功能都可以在这个函数中实现。对于一类CE自身已经支持的设备,它们已经被定义了一套IO操作定,我们只需按照各类设备已经定义的内容去实现所有的IO操作。但当我们实现一个自定义的设备时,我们就可以随心所欲定义我们自已的IO操作。
    参数:
    hDeviceContext XXX_Open返回给上层的那个句柄,即我们自已定义的,用来存放程序所有信息的一个结构。
    dwCode IO操作码,如果是CE已经支持的设备类,就用它已经定义好码值,否则就可以自已定义。
    pBufIn 传入的Buffer,每个IO操作码都会定义自已的Buffer结构
    dwLenIn pBufIn以字节记的大小
    pBufOutdwLenOut分别为传出的Buffer,及其以字节记的大小
    pdwActualOut 驱动程序实际在pBufOut中填入的数据以字节记的大小
    其中,前两个参数是必须的,其它的任何一个都有可能是NULL或0。所以,当给pdwActualOut赋值时应该先判断它是否为一个有效的地址。

    2.    注册表的设置

    系统启动时启动设备管理程序,设备管理程序读取HKEY_LOCAL_MACHINE/Drivers/BuiltIn键的内容并加载已列出的流接口驱动程序。因此注册表对于驱动的加载有着关键作用。下面我们以设备名是“STR”来举一个例子:

    [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/STR]
      "Prefix"="STR"
      "Dll"="MyDev.Dll"
      "Order"=dword:1

            

    其中  "Prefix"="STR" 表示流接口的前缀,我们以后可以通过Creatfile 函数来实现对这个流接口的操作,实现如下:HANDLE hStr = CreateFile(TEXT("str1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0) 。其中“str1:”中的表示设备好“1”是必需的,不管你的设备当中是不是刚好只有一个,不然的话会出现打开不了这个设备的情况。

    "Dll"="MyDev.Dll" 指的是“STR”设备调用的驱动程序 DLL

    HKEY_LOCAL_MACHINE/Drivers/BuiltIn/SampleDev 表示该注册表存在于CE系统注册表的HKEY_LOCAL_MACHINE/Drivers/BuiltIn/SampleDev 目录下。

    3.    创建Makefile和Sources和.def文件

    这三个文件主要是来控制编译的,Makefile  .def 文件实现比较简单,Sources 文件相对比较复杂。

    Makefile 只需要这样一行!INCLUDE $(_MAKEENVROOT)/makefile.def ,具体的实现什么任务还不知道。

    .def 文件定义需要输出的函数,这些函数能够被其它代码用动态加载的方法调用。

    Sources 这个文件很重要,内容也多,最基本的一个文件该有如下内容。

     

    TARGETNAME=MyDev(指定要生成的动态库的名称)

    TARGETTYPE=DYNLINK(指定要生成的是一个动态库)

    TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /

                  $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib

    (下面两项指定需要与哪些动态库链接,一般要第一项就足够了)

    DLLENTRY=DllEntry(指定动态库的入口函数)

    SOURCES= (请在这写上你所有源文件的名字,它们将会被编译)

    展开全文
  • OBS推工具下载及配置可以参见:OBS推工具 第二步:安装媒体服务 Windows/Linux系统环境中搭建直播媒体服务 极速安装,下载解压一键启动即可,支持Windows和Linux双系统。 第三步:创建直播软件源码直播...

    第一步:准备工具

    OBS推流工具下载及配置可以参见:OBS推流工具

    第二步:安装流媒体服务

    Windows/Linux系统环境中搭建直播流媒体服务

    极速安装,下载解压一键启动即可,支持Windows和Linux双系统。
    在这里插入图片描述
    在这里插入图片描述

    第三步:创建直播软件源码直播间

    选择 【云直播服务】-》鉴权直播 ,点击 【创建直播】

    创建直播间

    第四步:获取直播软件源码推流地址

    点击复制获得推流地址: rtmp://192.168.1.11:10085/hls/pce_Bw9mR?sign=t5e_fQrigz

    获取推流地址

    第五步:配置OBS推流

    将上一步获得的推流地址分为两段
    URL 输入: rtmp://192.168.1.11:10085/hls/
    流名称输入: pce_Bw9mR?sign=t5e_fQrigz

    OBS设置
    流地址设置

    第六步:推流及播放

    OBS点击 【开始推流】

    开始推流

    后台页面点击【播放】

    播放

     

    本文转载自网络,感谢原作者的分享,转载仅为分享干货知识,如有侵权欢迎联系作者进行删除处理

    展开全文
  • 实现这类瀑布一般的做法是维护一个包含不同列高的数组,先排列第一行,初始化这个数组以后,然后后面的图片(或者是图片的容器)通过绝对定位来排列到最短的列上,并更新数组,随后下一个元素做相同的操作。...
  • IO : 用于处理设备上数据。 :可以理解数据的流动,就是一个数据。IO 最终要以对象来体现,对象都存在IO 包中。 也进行分类: 输入(读)和输出(写)。 因为处理的数据不同,分为字节和字符。...
  • 从Sharepoint 2007开始,工作作为一个真正的强有力的工具内置在SharePoint中。你可以通过设计工作,从而在网站或应用程序中添加自定义逻辑,而且不需要编写任何代码!通过工作实现业务流程自动化所需的各种...
  • WinCE 驱动一步一步来(理论基础)在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的接口的驱动。对于这样一...
  • WinCE 驱动一步一步来(理论基础) 在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的接口的驱动。 ...
  • LiveGBS国标GB28181媒体服务器软件如何级联上级平台 国标级联-添加上级平台 配置上级平台相关信息 选择级联的通道 WEB: https://www.liveqing.com
  • 工作在企业开发中经常被使用,最近半年做了一个工作流程引擎,没商用,纯粹个人爱好。 最近半个月,就将半年的学习总结一下,和大家共享一下开发的乐趣。   希望不要太监, ~~   【工作的概念】   ...
  • NULL 博文链接:https://smallsnake.iteye.com/blog/1749814
  • <div><p>创建工作时,第一步输入工作名称后,点击下一步无响应,不会进入第二步选择YAML模板</p><p>该提问来源于开源项目:FlowCI/flow-core-x</p></div>
  • 利用ffmpeg一步一步编程实现摄像头采集编码推直播系统 了解过ffmpeg的人都知道,利用ffmpeg命令即可实现将电脑中摄像头的画面发布出去,例如发布为UDP,RTP,RTMP等,甚至可以发布为HLS,将m3u8文件和视频ts片段...
  • WinCE 驱动接口编写一步一步

    千次阅读 2010-06-06 16:15:00
    在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的接口的驱动。对于这样一类驱动程序,我们只需要按一种特定的...
  • 1.Activiti工作-工作学习——重要概念扫盲篇一步曲 转自 http://www.cnblogs.com/sharpest/p/5624079.html 前言    从本篇文章我们开始介绍工作框架activiti的相关知识,不过在介绍activiti的知识之前,...
  • 最后一步,合并这两个类,使它们通过名称访问 states ,而不是一个静态字段。 Code Sample: Version 5  现在我们已经访问这个用于编写可重用的活动 states 。这些活动不必担心自己的序列化。如果没有阅读的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,078
精华内容 1,631
关键字:

一步流