我们可以通过ffserver以及ffmpeg做一个简单的视频监控系统,ffserver用于视频的转发调度,ffmpeg用于转码
而对于ffserver最基本也是最重要的就是对它的ffserver.conf文件的配置,通常我们的配置分为两大类,分类的依据就是带不带缓冲文件,不带缓冲文件的比较简单,我们只需指定文件的格式以及路径信息即可,不需要配置缓冲
最简单的配置文件如下
Port 9999
RTSPPort 9990
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 100000
CustomLog –
#只需要指定待播放的文件的路径以及格式信息即可
<Stream test.flv>
    File "/tmp/test.flv"
    Format flv
</Stream>
 
执行分如下两步:
1. 在终端里输入ffserver –f /etc/ffserver.conf
2. 在浏览器里或者相关播放器地址(我用的是VLC)里输入 http://ipAddr:port/test.flv
其中第一步是执行/etc目录下的配置文件,不过这个目录可以按自己需要指定,配置文件名也可以按自己需要指定。
 
对于带有缓冲的,我们需要配置两项,一项是Feed一项是Stream,对于带有缓冲的,我们可以播放文件,也可以播放实时的视频,比如摄像头实时采集的视频。虽然播放的视频源不一样,但是配置文件是一样的,差别在于执行ffmpeg命令时的参数配置不一样。
如下为一个简单的配置文件:
Port 9999
RTSPPort 9990
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 100000
CustomLog -
 
 
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 40K
Launch ./ffmpeg -v 0 -y -f pgmyuv -i tests/vsynth1/%02d.pgm
ACL allow localhost
</Feed>
 
<Stream test.flv>
Feed feed1.ffm
Format flv
#一下指定输出流的编码信息
BitExact
DctFastint
IdctSimple
VideoFrameRate 2
VideoSize 320x240
VideoBitRate 64
VideoGopSize 10
NoAudio
 
PreRoll 10
StartSendOnKey
MaxTime 100
 
</Stream>
执行分如下三步:
1. 在终端里输入ffserver –f /etc/ffserver.conf
2. a.若是文件方式则输入ffmpeg –I filePath/filename http://ipAddr:port/test.flv
b.若是实时视频则输入ffmpeg -f alsa -ab 32 -i pulse -f video4linux2 -s qcif -i /dev/video0 http://<server name or ip>:8090/feed1.ffm
其中2.b中注意/dev/video0 以及video4linux2,这两个很关键
 
带有缓冲的数据流图如下

【转】ffserver用法小结的更多相关文章

  1. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  2. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  3. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  4. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  5. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  6. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

  7. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  8. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

  9. typedef用法小结

    typedef用法小结- - 注意:本文转自网络,版权归原作者所有. typedef typedef用法小结- - 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等 ...

随机推荐

  1. Annotation(三)——Spring注解开发

    Spring框架的核心功能IoC(Inversion of Control),也就是通过Spring容器进行对象的管理,以及对象之间组合关系的映射.通常情况下我们会在xml配置文件中进行action, ...

  2. python wmi模块学习

    # -*- coding: cp936 -*- import wmi c = wmi.WMI () for sys in c.Win32_OperatingSystem(): print " ...

  3. (转)iOS Wow体验 - 第四章 - 为应用的上下文环境而设计

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第四章译文精选,其余章节将陆续放出.上一篇:Wow ...

  4. 斐波那契数列 Php练手

    数列从第三项开始,每一项都等于前两项之和. F0=0,F1=1,Fn=F(n-1)+F(n-2) 递归版和非递归版. <?php function fib($n){ $array = array ...

  5. mogodb亿万级数据性能測试

    本机 i7四核 8G 废话少说 mogodb 最像sql的nosql 使用批量插入一次20万循环10次总共200万数据用时65秒(尝试一次50万只是报内存溢出了,原因未知) 插入2000万数据用时10 ...

  6. android AsyncTask 详细例子(2)

    超时处理 001 import java.util.Timer; 002 import java.util.TimerTask; 003   004 import android.app.Activi ...

  7. jQuery制作焦点图(轮播图)

    焦点图(轮播图) 案例 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  8. 安装VMware Sphere ESXi 5.5

    安装VMware Sphere ESXi 5.5 1.准备 待安装ESXi 5.5的机器需要大于2GB以上内存,并且支持64位和虚拟化. 下载:VMware-VMvisor-Installer-5.5 ...

  9. <经验杂谈>C#/.Net字符串操作方法小结

    字符串操作是C#中最基本的.最常见的.也是用的最多的,以下我总结 了几种常见的方法 1.把字符串按照分隔符转换成 List /// <summary> /// 把字符串按照分隔符转换成 L ...

  10. 类型“XXX”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。

    问题:类型“Grid1”的控件“XXXX”必须放在具有 runat=server 的窗体标记内. 注:Grid1为表格的ID. 查找网上的解决大致为: 1)把Grid放到<form runat= ...