ffmpeg+ffserver媒体服务搭建小记
2015-01-25 15:09
507 查看
linux pc机下的配置:
1、首先编译好ffmpeg,主要有ffmpeg、ffserver、ffplay三个主要可执行文件,具体编译这里就不详细说明了
2、准备好摄像头,作为输入文件,采集摄像头数据(当然用视频文件代替摄像头也行,不过没啥意思)
3、配置ffserver.conf文件,下面是我的配置
#基本信息设置
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
#媒体流文件设置
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
#压缩为asf格式
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
StartSendOnKey
NoAudio
</Stream>
#rm格式视频
<Stream test.rm>
Feed feed1.ffm
Format rm
VideoSize 640x480
AudioBitRate 32
VideoBitRate 128
VideoFrameRate 25
VideoGopSize 25
NoAudio
</Stream>
#可以查看ffserver的启动状态
<Stream stat.html>
Format status
ACL allow localhost
</Stream>
#不起作用
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
4、启动ffserver
ffserver -f /etc/ffserver.conf (假设ffserver.conf存放在etc目录下)
可以在网页输入:http://115.156.196.242:8090/stat.html查看ffserver运行状态
5、启动ffmpeg
ffmpeg -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm
如果有采集视频的信息,说明ffmpeg运行正确
6、实时播放
ffplay播放:ffplay http://115.156.196.242:8090/test.rm
mplayer也可以播放:mplayer http://115.156.196.242:8090/test.rm
windows media player播放:文件->URL链接输入http://115.156.196.244:8090/test.asf
我试过用快播和realplayer也可以播放
arm-linux嵌入式系统下的配置(我的硬件是tiny6410的板子):
1、同样需要交叉编译好ffmpeg,主要有ffmpeg、ffserver、ffplay三个主要可执行文件,并且库文件和可执行文件打包拷贝到嵌入式系统上,具体过程这里就不详细说明了
2、准备好摄像头,作为输入文件,采集摄像头数据(当然用视频文件代替摄像头也行,不过没啥意思)
3、配置ffserver.conf文件,下面是我的配置,与物理机基本一致
#基本信息设置
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
#媒体流文件设置
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
#压缩为asf格式
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
StartSendOnKey
NoAudio
</Stream>
#rm格式视频
<Stream test.rm>
Feed feed1.ffm
Format rm
AudioBitRate 32
VideoBitRate 128
VideoFrameRate 25
VideoGopSize 25
NoAudio
</Stream>
#可以查看ffserver的启动状态
<Stream stat.html>
Format status
ACL allow localhost
</Stream>
#不起作用
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
4、编写运行shell文件,下面是我的shell文件
#!/bin/sh
#基本的库文件设置为全局变量
export LD_LIBRARY_PATH=/usr/local/sheryuan/ffmpeg/lib:$LD_LIBRARY_PATH
#启动ffserver
./bin/ffserver -f ffserver.conf &
#这里延时主要是为了保证ffserver完全启动后才启动ffmpeg
sleep 20
#启动ffmpeg,注意。IP用127.0.0.1,用localhost和115.156.196.244会报错
./bin/ffmpeg -f video4linux2 -i /dev/video2 http://127.0.0.1:8090/feed1.ffm &
#启动ffplay查看视频流,我的板子上ffplay有点问题,所以我用的是mplayer,如果触摸屏上显示了图像说明成功
mplayer http://115.156.196.244:8090/test.rm
./bin/ffplay http://115.156.196.244:8090/test.rm
6、远端也可以监控
另外一台linux机下ffplay播放:ffplay http://115.156.196.244:8090/test.rm
mplayer也可以播放:mplayer http://115.156.196.244:8090/test.rm
PC机下windows media player播放:文件->URL链接输入http://115.156.196.244:8090/test.asf
我试过用快播和realplayer也可以播放
感觉ARM上采集视频流播放比较滞后,不太实用,一些参数都需要自己去摸索尝试
ARM上可能出现下面错误:
Failed to resolve hostname localhost: Temporary failure in name resolution
http://localhost:8090/feed1.ffm: Input/output error
一般是启动ffmpeg出现这样的错误,肯能没用127.0.0.1,也可能是ffserver.conf视频配置参数有问题
1、首先编译好ffmpeg,主要有ffmpeg、ffserver、ffplay三个主要可执行文件,具体编译这里就不详细说明了
2、准备好摄像头,作为输入文件,采集摄像头数据(当然用视频文件代替摄像头也行,不过没啥意思)
3、配置ffserver.conf文件,下面是我的配置
#基本信息设置
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
#媒体流文件设置
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
#压缩为asf格式
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
StartSendOnKey
NoAudio
</Stream>
#rm格式视频
<Stream test.rm>
Feed feed1.ffm
Format rm
VideoSize 640x480
AudioBitRate 32
VideoBitRate 128
VideoFrameRate 25
VideoGopSize 25
NoAudio
</Stream>
#可以查看ffserver的启动状态
<Stream stat.html>
Format status
ACL allow localhost
</Stream>
#不起作用
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
4、启动ffserver
ffserver -f /etc/ffserver.conf (假设ffserver.conf存放在etc目录下)
可以在网页输入:http://115.156.196.242:8090/stat.html查看ffserver运行状态
5、启动ffmpeg
ffmpeg -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm
如果有采集视频的信息,说明ffmpeg运行正确
6、实时播放
ffplay播放:ffplay http://115.156.196.242:8090/test.rm
mplayer也可以播放:mplayer http://115.156.196.242:8090/test.rm
windows media player播放:文件->URL链接输入http://115.156.196.244:8090/test.asf
我试过用快播和realplayer也可以播放
arm-linux嵌入式系统下的配置(我的硬件是tiny6410的板子):
1、同样需要交叉编译好ffmpeg,主要有ffmpeg、ffserver、ffplay三个主要可执行文件,并且库文件和可执行文件打包拷贝到嵌入式系统上,具体过程这里就不详细说明了
2、准备好摄像头,作为输入文件,采集摄像头数据(当然用视频文件代替摄像头也行,不过没啥意思)
3、配置ffserver.conf文件,下面是我的配置,与物理机基本一致
#基本信息设置
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
#媒体流文件设置
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
#压缩为asf格式
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
StartSendOnKey
NoAudio
</Stream>
#rm格式视频
<Stream test.rm>
Feed feed1.ffm
Format rm
AudioBitRate 32
VideoBitRate 128
VideoFrameRate 25
VideoGopSize 25
NoAudio
</Stream>
#可以查看ffserver的启动状态
<Stream stat.html>
Format status
ACL allow localhost
</Stream>
#不起作用
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
4、编写运行shell文件,下面是我的shell文件
#!/bin/sh
#基本的库文件设置为全局变量
export LD_LIBRARY_PATH=/usr/local/sheryuan/ffmpeg/lib:$LD_LIBRARY_PATH
#启动ffserver
./bin/ffserver -f ffserver.conf &
#这里延时主要是为了保证ffserver完全启动后才启动ffmpeg
sleep 20
#启动ffmpeg,注意。IP用127.0.0.1,用localhost和115.156.196.244会报错
./bin/ffmpeg -f video4linux2 -i /dev/video2 http://127.0.0.1:8090/feed1.ffm &
#启动ffplay查看视频流,我的板子上ffplay有点问题,所以我用的是mplayer,如果触摸屏上显示了图像说明成功
mplayer http://115.156.196.244:8090/test.rm
./bin/ffplay http://115.156.196.244:8090/test.rm
6、远端也可以监控
另外一台linux机下ffplay播放:ffplay http://115.156.196.244:8090/test.rm
mplayer也可以播放:mplayer http://115.156.196.244:8090/test.rm
PC机下windows media player播放:文件->URL链接输入http://115.156.196.244:8090/test.asf
我试过用快播和realplayer也可以播放
感觉ARM上采集视频流播放比较滞后,不太实用,一些参数都需要自己去摸索尝试
ARM上可能出现下面错误:
Failed to resolve hostname localhost: Temporary failure in name resolution
http://localhost:8090/feed1.ffm: Input/output error
一般是启动ffmpeg出现这样的错误,肯能没用127.0.0.1,也可能是ffserver.conf视频配置参数有问题
相关文章推荐
- ffmpeg+ffserver媒体服务搭建小记
- ffmpeg+ffserver媒体服务搭建小记
- ffmpeg+ffserver媒体服务搭建小记
- ffmpeg+ffserver媒体服务搭建小记
- ffmpeg+ffserver媒体服务搭建小记
- ffmpeg与ffserver配合使用搭建流媒体服务
- ffmpeg+ffserver 搭建流媒体服务器
- ffmpeg+ffserver搭建流媒体服务器
- 和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输
- ffmpeg+ffserver搭建流媒体服务器
- 和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输
- [转]ffserver联合ffmpeg建立媒体服务器
- ffmpeg+ffserver搭建流媒体服务器
- ffserver联合ffmpeg建立媒体服务器
- ffmpeg和ffserver配合使用实现实时的流媒体服务
- ffmpeg+ffserver搭建流媒体服务器 分类: arm-linux-Ubuntu ffmpeg-SDL-VLC-Live555 TI-AM335X 2015-08-04 09:35 6人阅读 评论(0) 收藏
- ffmpeg和ffserver配合使用可以实现实时的流媒体服务
- ffmpeg+ffserver实时视频采集流媒体转发
- ffserver联合ffmpeg建立媒体服务器
- ffmpeg+ffserver搭建流媒体服务器