1.Installation
1)、安装git。在命令行下运行
$sudo apt-get install git-core
如果需要支持h264,请先下载x264并编译
$git clone git://git.videolan.org/x264.git
2)、下载最新版本的ffmpeg
$git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
3)、进入ffmpeg目录下,运行./configure,这时可能会提示没有yasm,不能编译汇编。可在命令./configure后加上参数-disable-yasm,也可下载安装yasm后运行./configure
$sudo apt-get install yasm
$./configure
如需支持x264,则使用:
$./configure --enable-static --disable-shared --enable-libx264 --enable-gpl --extra-cflags=-I/home/datacenter/x264 --extra-ldflags=-L/home/datacenter/x264 --extra-libs=-ldl --enable-pthreads
4)、运行./configure后会生成config.h文件,查看宏CONFIG_FFPLAY,如果是0表示不能编译出ffplay,一般是因为缺少SDL库,如下命令可安装SDL库
$sudo apt-get install libsdl1.2-dev
$sudo yum install SDL-devel #for centos
5)、执行make命令;默认会将编译好的文件放到usr/local/bin下,如果想改变安装地址,可以在执行configure的时候添加参数--prefix=PREFIX来指定目录
6)、如果没报错,执行make install
7)、可以尝试使用ffplay播放视频。命令:ffplay videopath
2.ffserver configuration
#范例一,建议不要用中文
Port 8090 #绑定端口号
BindAddress 0.0.0.0 #绑定ip
MaxHTTPConnections 2000 #最大HTTP连接数
MaxClients 1000 #最大客户端连接数
MaxBandwidth 1000 #最大带宽
CustomLog - #日志文件,“-”为直接打印
<Feedfeed1.ffm> #Feed:每一个输入(摄像头)建立一个Feed
File /tmp/feed1.ffm #Feed缓存文件
FileMaxSize 3M #缓存文件最大值
ACL allow 127.0.0.1
</Feed>
<Streamtest.ts> #Stream:每一个广播(转换后的视频流)的转码设置项目
Format mpegts #视频流格式
Feed feed1.ffm #视频流的种子来源
VideoFrameRate 25 #视频帧频
VideoBitRate 512 #视频比特率
VideoSize 1600x1200 #视频帧大小
</Stream>
#example2
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
<Feedfeed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 3M
ACLallow 127.0.0.1
</Feed>
<Streamtest.ts>
Format mpegts
Feed feed1.ffm
VideoFrameRate 25
VideoBitRate 512
VideoSize 480x272
</Stream>
#example 3
Port 4040
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 100000
CustomLog -
<Feed feed.ffm>
File /tmp/feed.ffm
FileMaxSize 2M
ACL allow 10.113.80.84
</Feed>
<Stream test.ts>
Format mpegts
Feed feed.ffm
VideoFrameRate 15
VideoBitRate 500
VideoSize 640x480
NoAudio
</Stream>
#example 4
Port 4040
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 100000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 10.113.80.1 10.113.80.253
</Feed>
<Stream test1.ts>
Feed feed1.ffm
NoAudio
</Stream>
ffmpeg -rtsp_transport tcp -override_ffserver -i rtsp://admin:12345@192.168.1.200:554/H264 -an -c:v libx264 -b:v 500k -minrate 480 -maxrate 520 -r 15 -s 640x480 -qmin 10 -qmax 51 -qdiff 4 -g 15 http://110.119.122.2:4040/feed1.ffm
3.Run ffserver
1)、运行ffserver
$ffserver -f ./ffserver.conf
4.Run ffmpeg
1)、运行ffmpeg
$ffmpeg -an -i rtsp://Admin:1234@192.168.11.151/h264http://127.0.0.1:8090/feed1.ffm
5.Run ffplay
1)、运行ffplay
$ffplay http://127.0.0.1:8090/test.ts