1、h264文件的推送

testH264VideoStreamer.cpp文件的开头就定义了

char const* inputFileName = "test.264";

后面接着创建了会话

ServerMediaSession* sms
    = ServerMediaSession::createNew(*env, "testStream", inputFileName,
     "Session streamed by \"testH264VideoStreamer\"",
        True /*SSM*/);

也就是将test.264文件,取出一帧一帧的数据并推送到rtsp://host_ip:port/testStream

本实例运行如下

2、实时码流的推送

实时流的推送只需要将如上h264文件的定义改成一个fifo

mkfifo /tmp/test.264

char const* inputFileName = "/tmp/test.264";

然后将camera采集的数据编码成h264的格式存到这个缓存,testH264VideoStreamer就可以将缓存的h264视频数据推送出去.

例如像树梅派将camera数据编码到test.264缓存.

raspivid -o /tmp/test.264 -t 0 -d

这里就不拿板子出来运行了,这里http://www.cnblogs.com/dong1/p/5095739.html,有个testOnDemandRTSPServer实例,

跟testH264VideoStreamer一样的功能.

3、live555\testProgs里还有个testOnDemandRTSPServer.cpp 实例

参考

https://blog.csdn.net/firehood_/article/details/16844397

https://blog.csdn.net/caoshangpa/article/details/53200527

记得修改makefile

MEDIA_SERVER_OBJS = live555MediaServer.$(OBJ) DynamicRTSPServer.$(OBJ) WW_H264VideoSource.$(OBJ) WW_H264VideoServerMediaSubsession.$(OBJ)
live555MediaServer.$(CPP): DynamicRTSPServer.hh version.hh WW_H264VideoSource.hh WW_H264VideoServerMediaSubsession.hh
DynamicRTSPServer.$(CPP): DynamicRTSPServer.hh
MEDIA_SERVER_OBJS = live555MediaServer.$(OBJ) DynamicRTSPServer.$(OBJ) h264LiveFramedSource.$(OBJ) h264LiveVideoServerMediaSubssion.$(OBJ)
live555MediaServer.$(CPP): DynamicRTSPServer.hh version.hh h264LiveVideoServerMediaSubssion.hh h264LiveFramedSource.hh
DynamicRTSPServer.$(CPP): DynamicRTSPServer.hh

RTSP服务端转发服务(live555库中的testH264VideoStreamer.cpp和testOnDemandRTSPServer.cpp实例)的更多相关文章

  1. RTSP客户端接收存储数据(live555库中的openRTSP实例)

    一.openRTSP编译运行 a)windows下编译运行 还是以mediaServer作为服务端,openRTSP作为客户端 b)Linux下编译运行 转自http://kuafu80.blog.1 ...

  2. RTSP客户端接收存储数据(live555库中的testRTSPClient实例)

    1.testRTSPClient简介 testRTSPClient是个简单的客户端实例,这个实例对rtsp数据交互作了详细的描述,其中涉及到rtsp会话的两个概念Source和Sink. Source ...

  3. live555库中的testH264VideoStreamer实例

    1.h264文件的推送 testH264VideoStreamer.cpp文件的开头就定义了 char const* inputFileName = "test.264"; 后面接 ...

  4. HTTP服务端JSON服务端

    HTTP服务端JSON服务端 最后更新日期:  2014-5-18 Author: Kagula 阅读前提: CMake工具的基本使用 内容简介: CPPCMS是个开源Web开发框架,通过它可以很容易 ...

  5. 二、eureka服务端注册服务

    所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 入口 上文我们说到,eureka是使用jersey来对外提供restful风格的rpc调 ...

  6. 防止网页被别人的网站iframe,服务端如何设置HTTP头部中的X-Frame-Options信息?

    一.现象:in a frame because it set 'X-Frame-Options' to 'deny'. 二.服务配置 因为,有时候为了防止网页被别人的网站iframe,我们可以通过在服 ...

  7. live555库中的openRTSP实例

    一.openRTSP编译运行 a)windows下编译运行 还是以mediaServer作为服务端,openRTSP作为客户端 b)Linux下编译运行 转自http://kuafu80.blog.1 ...

  8. live555库中的testRTSPClient实例

    1.testRTSPClient简介 testRTSPClient是个简单的客户端实例,这个实例对rtsp数据交互作了详细的描述,其中涉及到rtsp会话的两个概念Source和Sink. Source ...

  9. FTP服务端 FTP服务端搭建教程

    FTP服务端搭建教程如下:一.需要准备以下工具:1.微型FTP服务端.2.服务器管理工具二.操作步骤:1.下载微型FTP服务端.(站长工具包可下载:http://zzgjb.iis7.com/ )2. ...

随机推荐

  1. JavaScript函数内部修改全局变量的问题【一道面试题】

    JavaScript函数内部修改全局变量的问题 今天 10:44梵天莲华 | 浏览 23 次  Javascript编程语言函数 修改标签 代码如下,为什么加了 function a(){};这个函数 ...

  2. maven将依赖打入jar包并制定main方法

    <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId& ...

  3. spring-core依赖jar包

  4. 使用AccessibilityService实现微信自己主动抢红包

    近期要实现微信自己主动抢红包的功能.使用AccessibilityService来开发,这里主要写一下逻辑以及注意点. 注意点 1.搜索keyword 我们实现某个功能比方点击等须要找到相应的对象然后 ...

  5. C#和Java的类、继承、重写与多态

    面向对象的三大特性是封装.继承.多态,C#和Java都是面向对象的语言所以他们的类.继承.重写与多态有很多共同点,但是实现上也存在一定的区别.其中Java中其实没有虚函数的概念,也可以认为Java的函 ...

  6. Android控件——7种形式的Android Dialog使用举例(转载)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...

  7. Junit使用详解

    http://junit.org/上详细介绍了Junit.JUnit is a simple framework to write repeatable tests. It is an instanc ...

  8. Oracle 10gR2 RAC 启动与关闭

    一. 检查共享设备 一般情况下, 存放OCR 和 Voting Disk 的OCFS2 或者raw 都是自动启动的. 如果他们没有启动,RAC 肯定是启动不了的. 1.1 如果使用ocfs2的,检查o ...

  9. RelativeSource.TemplatedParent 属性wpf

    今天看到这一句代码时候,自己只是知道绑定了,可是不知道绑定了什么啊 就去查了一下,后来说的好像是绑定的TemplateParent返回的 一个值.可是这是为什么呢, 有的说是绑定的是一个资源. 下面有 ...

  10. boost实用工具:assign库了解学习

    许多时候,我们需要为容器初始化或者赋值,填入大量的数据; STL容器仅提供了容纳这些数据的方法,但是填充的步骤是相当地麻烦(insert.push_back); 于是,boost::assign出现了 ...