Build ffmpeg and test ffserver for streaming

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值