FFServer流媒体平台

简单说明

ffmpeg提供了ffserver可以搭建RTSP流媒体服务器。

注意:ffserver在ffmpeg4.0以上版本已经移除,需要此功能可以下载3.x版本。

概念介绍

这里ffserver涉及两个概念

  • ffserver:负责响应客户端的流媒体请求,把流媒体发送给客户端
  • ffserver.conf:ffserver启动的配置文件,这个文件主要对网络协议、缓存文件feed和要发送的流媒体文件的格式参数做具体的设定

配置应用

ffserver可以配置带缓存和不带缓存:

  • 不带缓存:只需要配置stream的位置,不需要配置feed和。
RTSPPort 30120
BindAddress 0.0.0.0
RTSPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 30000
CustomLog -
NoDaemon


<Stream bag_lost_all_videos_splice.mp4>
File "/data/videos/bag_lost_all_videos_splice.mp4"
Format rtp
</Stream>

  • 带缓存:需要配置feed。
RTSPPort 30120                     # 绑定的端口号
BindAddress 0.0.0.0                # 绑定的IP
RTSPBindAddress 0.0.0.0            # RTSP绑定的IP地址
MaxHTTPConnections 2000            # 最大的HTTP连接数
MaxClients 1000                    # 最大客户端连接数
MaxBandwidth 30000                 # 最大带宽
CustomLog -                        # 日志文件,"-"为直接打印
NoDaemon                           # 默认全局参数

<Feed bag_lost_all_videos_splice.mp4>               # 每一个输入建立一个feed
File /tmp/bag_lost_all_videos_splice.mp4            # feed缓存文件
FileMaxSize 40m                                     # 缓存文件最大值
ACL allow 0.0.0.0                                   # 允许写入feed的ip

</Feed>
<Stream bag_lost_all_videos_splice.mp4>             # 转换后的视频流
File "/data/videos/bag_lost_all_videos_splice.mp4"  # 已经存在的文件(非实时流)
Format rtp                                          # 视频流格式
</Stream>

安装部署

工具下载地址:https://ffbinaries.com/downloads

# 将下载的ffserver和ffmpeg工具,上传解压到服务器
[root@unity ~]# unzip ffserver-3.4-linux-64.zip
# 创建配置文件,注意:这里将配置文件指定的视频放到我们配置的目录下
[root@unity ~]# vim ffserver.conf
RTSPPort 30120                 # RTSP监听端口
BindAddress 0.0.0.0
RTSPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 30000
CustomLog -
NoDaemon


<Stream bag_lost_all_videos_splice.mp4>
File "/root/bag_lost_all_videos_splice.mp4"
Format rtp                   # 这里格式必须设置为rtp
</Stream>

# 启动ffserver
[root@unity ~]# ./ffserver -f ffserver.conf 
ffserver version 3.4-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.4.0 (Debian 6.4.0-7) 20170920
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls -
-enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
ffserver.conf:2: BindAddress option is deprecated. Use HTTPBindAddress instead.
ffserver.conf:8: NoDaemon option has no effect. You should remove it.
Wed Dec 29 13:18:42 2021 Opening feed file '/root/bag_lost_all_videos_splice.mp4' for stream 'bag_lost_all_videos_splice.mp4'
Wed Dec 29 13:18:42 2021 FFserver started.

# 测试拉取rtsp流
# 这里使用VLC工具,播放rtsp://10.198.3.22:30120/bag_lost_all_videos_splice.mp4

问题说明

  • 视频源名称和目录名称都不建议使用中文名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值