1.一、问题描述
输入数据为来自摄像头的RTSP视频流,然后利用FFmpeg将其输出到FFserver监听的服务(Feed)上,然后客户端(vlc)可以播放FFserver广播的经过转换后的视频流(Streams)。
通过FFserver的配置文件来配置视频流的转换参数(帧大小,帧频等)
2.二、实现方法
- 编辑FFserver配置文件,参考(ffserver.conf)
Port 8090 #绑定端口号BindAddress 0.0.0.0 #绑定ipMaxHTTPConnections 2000 #最大HTTP连接数MaxClients 1000 #最大客户端连接数MaxBandwidth 1000 #最大带宽CustomLog - #日志文件,“-”为直接打印NoDaemon #默认全局参数
#Feed:每一个输入(摄像头)建立一个Feed File /tmp/feed1.ffm #Feed缓存文件 FileMaxSize 200K #缓存文件最大值 ACL allow 127.0.0.1 #允许写入Feed的ip #Stream:每一个广播(转换后的视频流)的转码设置项目 Format flv #视频流格式 Feed feed1.ffm #视频流的种子来源 VideoFrameRate 40 #视频帧频 VideoBitRate 128 #视频比特率 VideoSize 160x80 #视频帧大小 AVOptionVideo flags +global_header AudioBitRate 24 #音频比特率 AudioChannels 1 #音频声道 AudioSampleRate 44100 AVOptionAudio flags +global_header - 启动FFserver,终端输入命令:
ffserver -f ffserver.conf
- 启动FFmpeg,终端输入命令:
ffmpeg -i rtsp://192.168.1.111:8000/?videoCodecType=H.264 http://localhost:8090/feed1.ffm#-i:为输入参数选项#rtsp://192.168……:为输入的RTSP视频流#http://localho……:为FFserver配置文件中设置的Feed的监听地址和端口
- 打开客户端(vlc)请求视频流地址:打开vlc–>File–>OpenNetwork–>URL中填写 “http://localhost:8090/test.flv”–>Open (地址为FFserver配置文件中Stream项的名字)
3.参考链接:
FFserver官方文档:1. 2.