请教如何写ffserver.httpdconf.d配置配置ffserver服务器

1 用FFserver从文件生成流媒体
一、安装ffmpeg
在ubuntu下,运行sudo apt-get ffmpeg 安装ffmpeg,在其他linux操作系统下,见ffmpeg的编译过程(编译完成后可执行自动安装)。
二、准备预播放的媒体文件
如test.Mp3,在本文档中,默认放入用户文件夹下得Music文件夹内.(直接从设备采集不在本文档叙述范围之内)
三、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
# MP3 audio
&Stream test.mp3&
File "/home/xiaoma/Music/test.mp3"
Format mp2
NoVideo &/Stream&
四、启动ffserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
五、播放流媒体
在浏览器中输入http://127.0.0.1:8090/test.mp3 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.mp3 可播放流媒体.
2 用FFserver从设备生成实时流
一、准备媒体按照上节步骤安装ffmpeg,保证摄像头和声卡可用,将从摄像头和声卡获取音视频信息。
二、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.fend(传冲信息),在文件播放中,基本不用动本配置信息,只需要根据具体情况分配缓冲文件.最终配置信息如
&Feed feed1.ffm&
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
3.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
(中间会有很多很多配置信息,都是关于音视频的,有些配置还不懂,慢慢摸索吧)
&Stream test1.mpg&
Feed feed1.ffm
Format mpeg
AudioBitRate 32
AudioChannels 1
AudioSampleRate 44100
VideoBitRate 64
VideoBufferSize 40
VideoFrameRate 3
VideoSize 160x128
VideoGopSize 12
&Stream test.swf&
Feed feed1.ffm
Format swf
VideoFrameRate 2
VideoIntraOnly
三、启动FFserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
四、启动ffmpeg 本例中,以ffmpeg作为实时摄像头采集输入.
在命令行中输入: ./ffmpeg -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm
如果有音频设备,则采集音频的命令如下: ./ffmpeg -f oss -i /dev/dsp -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm (音频格式参数自己配置)
五、播放流媒体在浏览器中输入
http://127.0.0.1:8090/test1.mpg 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.swf 可播放流媒体.
阅读(...) 评论()ffserver.conf设置项说明 - CSDN博客
ffserver.conf设置项说明
学习过程中发现例子里面还有一些属性没有说明,所以一边看代码,一边整理下所有的设置项
#设置HTTP服务端口,取&#36
#HTTP绑定的IP地址
BindAddress 0.0.0.0
#标明不在后台执行
#设置RTSP端口
RTSPPort 554
#设置RTSP绑定地址
RTSPBindAddress 0.0.0.0
#HTTP的最大连接数,取值返回1-65536,默认值:2000
MaxHTTPConnections 1000
#最大客户连接数,默认值:5
MaxClients 1000
#自定义log,如果设置为-,则记录全部在控制台输出
CustomLog -
#后面跟的是Feed的文件名称,ffserver会自动在
&Feed feed1.ffm&
#设置自动运行的程序
Launch ffmpeg
#这个实际上就是Feed后面跟着的文件名称。估计这是两种设置方式吧,另外,这个文件将不会被覆盖或删除
ReadOnlyFile /save/feed1.ffm
#设置数据源文件,这个如果和ReadOnlyFile同时设置,则以配置文件中顺序后面的为准
File /media/1.mpg
#字面理解是截断的意思,还没有弄明白实际作用
Truncate 10
#设置临时文件的最大尺寸,支持K、M、G的单位
FileMaxSize 100M
#设置流,后面跟着的是流名称
&Stream 2.mpg&
#设置数据文件,这个的作用和File是完全相同的,建议在Stream中不使用这个方式
#ReadOnlyFile /save/feed1.ffm
#设置数据文件
File /media/1.mpg
#设置数据源
Feed feed1.ffm
#设置流格式
Format mjpeg
#输入流格式
InputFormat xxx
#对应Feed的URL路径
FaviconURL xxx
#设置作者属性
Author xxx
#设置流备注信息
Comment xxx
#设置流版权信息
Copyright xxx
#设置流标题
#设置时光平移的缓冲大小,单位K
Preroll 123
#还没有看出来是干嘛的,按字面应该是在开始的时候发送关键帧图像
StartSendOnKey
#设置音频编码器
AudioCodec mp2
#设置视频编码器
VideoCodec mpeg4
#还没有看出来做什么的
MaxTime 123
#音频码率,单位K
AudioBitRate 64
#音频声道数
AudioChannels 2
#音频采样率
AudioSampleRate 44100
#未使用,这部分代码给注释了
AudioQuality 1
#视频码率范围,单位K
VideoBitRateRange
#是否开启调试模式
#还没有看出什么用途
#视频缓冲区,单位:8K
VideoBufferSize 1000
#还没看出用途,单位:1000
VideoBitRateTolerance 100
#视频码率,单位:1000
VideoBitRate 1000
#视频尺寸,数字必须为16的倍数
VideoSize 720x576
VideoFrameRate 25
#GOP,也就是多少帧出一个I帧
VideoGopSize 25
#相当于VideoGopSize=1
VideoIntraOnly
#设置视频高质量
VideoHighQuality
#设置CODEC_FLAG_4MV
Video4MotionVector
#设置可选项
AVOptionVideo xxxxx
AVOptionAudio&xxxx
AVPresetVideo xxxx
AVPresetAudio xxxx
#下面几个没有看出起什么作用
DctFastint
IdctSimple
VideoQDiff
ChromaElim
ACL allow 192.168.1.0 192.168.1.255
#RTSP选项,还没有看出来怎么设置
RTSPOption
MulticastAddress 224.124.0.1
MulticastPort 5000
MulticastTTL 10
#指定影片不循环播出
#显示ffserver服务器状态
&Stream stat.html&
Format status
#转向制定地址
&Redirect index.html&
URL http://www.ffmpeg.org/
&/Redirect&
#装在指定模块
LoadModule xxx
本文已收录于以下专栏:
相关文章推荐
ffserver与x264 收藏       最近打算学习h264,用windows版的git把x264的整个开源工程下载下来了,打算去看一下,同时尽量多做一些实践运用,这个工程应该和介绍h264的标...
Port ;
RTSPPort 554   rtsp,rtp的端口BindAddress 0.0.0.0 MaxHTTPConnections ;MaxClients 1000&#1...
本系统为ubuntu 10.04LTS
说明1:本实验在本机成功测试通过;
说明2:本实验仅仅测试了视频流,未测试音频流。
1、配置ffserver.conf
------------...
x264,ffserver配置,流化数据
提前准备好三样东西:ffmpeg,ffserver,ffserver.conf
其中ffser.conf做一下介绍:
HTTPPort 8099
HTTPBindAddress 0.0.0.0
...
ffmpeg学习---11.ffmpeg的流媒体服务器与播放器的设置
本文记录FFmpeg的Makefile的源代码。Makefile用于编译FFmpeg的源代码。通过分析Makefile文件,可以了解FFmpeg的源代码生成的流程。有关Makefile这部分我本身基础...
一个成功的配置。用realplayer播放 成功 http://127.0.0.1:8090/test.rm
# Port on which the server is listening. You...
打算记录一下基于FFmpeg的封装格式处理方面的例子。包括了视音频分离,复用,封装格式转换。这是第3篇。本文记录一个基于FFmpeg的视音频复用器(Simplest FFmpeg muxer)。视音频...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客访问: 2940191
博文数量: 695
博客积分: 13321
博客等级: 上将
技术积分: 8721
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
ffmpeg和ffserver配合使用可以实现实时的流媒体服务。
里边主要有如下四个东西,搞清楚他们之间的关系就差不多明白了。
2. ffserver
3. ffserver.conf
4. feed1.ffm
1. ffmpeg,负责媒体文件的transcode工作,把你服务器上的源媒体文件转换成要发送出去的流媒体文件。
2. ffserver,负责响应客户端的流媒体请求,把流媒体数据发送给客户端。
ffserver.conf,ffserver启动时的配置文件,在这个文件中主要是对网络协议,缓存文件feed1.ffm(见下述)和要发送的流媒体文件的格式参数做具体的设定。
feed1.ffm,可以看成是一个流媒体数据的缓存文件,ffmpeg把转码好的数据发送给ffserver,如果没有客户端连接请求,ffserver把数据缓存到该文件中。
二、http的建立流程
配置ffserver.conf文件(初次接触可以参考ffmpeg源码中的doc/ffserver.conf,里边有详细的注释)
如下写一个示例
Port 10535
RTSPPort 5454
BindAddress 0.0.0.0、
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog&-
#实时流数据配置(参考源码ffmpeg/test/下的ffserver.conf)
&Feed feed1.ffm&
File /tmp/feed1.ffm
FileMaxSize 1M
ACL allow 127.0.0.1
&Stream test.avi&
Feed feed1.ffm
Format avi
DctFastint
IdctSimple
VideoFrameRate 10
VideoSize 352x288
VideoBitRate 100
VideoGopSize 30
PreRoll 10
StartSendOnKey
MaxTime 100
#已经存在的文件而非实时流
&&Stream test.flv&File "/project/apps/ffserver/test.flv"Format flv&/Stream&
2、如何实现播放
(1)实时流用http传输
如果传输硬盘上的文件,则:
ffserver -f myfile/ffmpeg0.8.9/ffserver.conf &
ffmpeg -i inputfile(输入文件) http://localhost:10535/feed1.ffm
如何传输摄像头捕获的实时流,则:
ffserver -f
myfile/ffmpeg0.8.9/ffserver.conf & ffmpeg -f
video4linux2 -framerate 30 -i /dev/video0
http://127.0.0.1:8090/feed1.ffm
启动ffserver和ffmpeg。ffserver先于ffmpeg启动,它在启动的时候需要加参数-f指定其配置文件。ffserver启动后,feed1.ffm就会被创建,这时如果你打开feed1.ffm看看,会发现feed1.ffm开始的部分已经写入了内
容,你可以找到关键字ffm以及向客户端传送流的配置信息,在feed1.ffm做缓冲用的时候,这些信息是不会被覆盖掉的,就把它们理解为
feed1.ffm文件的头吧。
ffserver启动后,ffmpeg启动,它启动时加的一个关键参数就是“http://ip:10535/feed1.ffm”,其中ip是运行
ffserver主机的ip,如果ffmpeg和ffserver都在同一系统中运行的话,用localhost也行。ffmpeg启动后会与
ffserver建立一个连接(短暂的连接),通过这第一次的连接,ffmpeg从ffserver那里获取了向客户端输出流的配置,并把这些配置作为自
己编码输出的配置,然后ffmpeg断开了这次连接,再次与ffserver建立连接(长久的连接),利用这个连接ffmpeg会把编码后的数据发送给
ffserver。
如果你观察ffserver端的输出就会发现这段时间会出现两次HTTP的200,这就是两次连接的过程。
ffmpeg从摄像头获取数据后,按照输出流的编码方式编码,然后发送给ffserver,ffserver收到ffmpeg的数据后,如果网络上
没有播放的请求,就把数据写入feed1.ffm中缓存,写入时把数据加上些头信息然后分块,每块4096B(每块也有结构),当feed1.ffm的大
小到了ffserver.conf中规定的大小后,就会从文件开始(跳过头)写入,覆盖旧的数据。直到网络上有播放的请求,ffserver从
feed1.ffm中读取数据,发送给客户端。
(2)本地文件用http传输
ffserver -f /etc/ffserver.conf
用命令启动ffserver,然后用ffplay
http://ip:port/test.flv,或者在vlc中输入以上网址也可实现播放。
(3)本地文件用rtsp传输
ffserver -f /etc/ffserver.conf
用命令启动ffserver,然后用ffplay
rtsp://ip:port/rtsp.mpg,或者在vlc中输入以上网址也可实现播放。
备注:在做测试的时候,用rtsp不能传输flv文件。
阅读(29401) | 评论(0) | 转发(4) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。}

我要回帖

更多关于 nginx conf 配置实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信