系统版本:Centos7

部署成功后就一个想法:“差之毫厘谬以千里”。以供大家参考

注:要按照步骤来部署
FFserver是一个用于音频和视频流媒体服务器

1.创建docker-compose.yml(在自己常用的目录下方便管理运行)

------------------(配置开始)----------------------

vi docker-compose.yml

填写如下配置文件,esc :wq 保存退出

ffserver:
  image: vimagick/ffserver
  ports:
    - "554:554"
    - "8090:8090"
  volumes:
    - ./ffserver.conf:/etc/ffserver.conf
    - ./data:/data
  restart: always

2.创建映射的ffserver配置文件ffserver.conf

vi ffserver.conf

填写如下配置内容

HTTPPort 8090
HTTPBindAddress 0.0.0.0

RTSPPort 554
RTSPBindAddress 0.0.0.0

MaxClients 100
MaxBandwidth 100000
CustomLog -

<Feed feed.ffm>
File /data/feed.ffm
</Feed>

<Stream video.mp4>
Format rtp
Feed feed.ffm
VideoCodec libx264
VideoFrameRate 24
VideoBitRate 100
VideoSize 640x480
#AVPresetVideo default
#AVPresetVideo baseline
AVOptionVideo flags +global_header
NoAudio
#AudioCodec libmp3lame
#AudioBitRate 32
#AudioChannels 2
#AudioSampleRate 22050
#AVOptionAudio flags +global_header
</Stream>

<Stream status.html>
Format status
</Stream>

<Stream test-sss.mp4>
Format rtp
File "/data/sss.mp4"
</Stream>

3.tree可以查看当前目录的目录树(没有data目录创建data目录mkdir data)

tree
.
├── data
│   └── video.mp4
├── docker-compose.yml
└── ffserver.conf

需要推流的视频放在data目录下

4.运行刚才配置的docker-compose文件

docker-compose up -d

5.VLC播放本地视频vlc中输入如下地址就可以播放stream中配置的本地视频

rtsp://ip:554/test-sss.mp4

test-sss.mp4 是配置stream所起的名称

5.1.ffmpeg推流

docker-compose exec ffserver ffmpeg -re -i video.mp4 http://localhost:8090/feed.ffm

5.2.如果想循环推流的话可以用如下配置

docker-compose exec ffserver ffmpeg -re -stream_loop -1 -i video.mp4 http://localhost:8090/feed.ffm

6.那么到这一步就可以打开客户端(vlc)请求视频流地址URL

vlc下输入:ip是服务器ip地址——如果不知道ipconfig查询
http://ip:8090/video.rtsp
其他方式:
ffplay:
rtsp://easypi.info/video.mp4
firefox:
http://easypi.info:8090/status.html

输入URL之后就会看到自己配置的视频了

------------------(配置结束)----------------------
ffserver.conf配置文件的参数意思,仅供参考:

HTTPPort 8090                       #绑定端口号 
BindAddress 0.0.0.0             #绑定ip 
MaxHTTPConnections 2000         #最大HTTP连接数 
MaxClients 1000                 #最大客户端连接数 
MaxBandwidth 1000               #最大带宽 
CustomLog -                     #日志文件,“-”为直接打印 
NoDaemon                        #默认全局参数 
 
<Feed feed1.ffm>                #Feed:每一个输入建立一个Feed 
    File data/feed1.ffm             #Feed缓存文件 
    FileMaxSize 10M               #缓存文件最大值 
    ACL allow 127.0.0.1             #允许写入Feed的ip 
</Feed> 
 
#传递实时流
<Stream video.mp4>               #Stream:每一个广播(转换后的视频流)的转码设置项目 
    Format rtp                      #视频流格式 
    Feed feed1.ffm                  #视频流的种子来源 
    VideoFrameRate 35              #视频帧频 
    VideoBitRate 128                #视频比特率 
    VideoSize 160x80                #视频帧大小 
    AVOptionVideo flags +global_header 
    AudioBitRate 24                 #音频比特率 
    AudioChannels 1                 #音频声道 
    AudioSampleRate 44100 
    AVOptionAudio flags +global_header 
</Stream> 
  
<Stream stat.html>  #检查服务器状态,ffserver启动后,在web浏览器中输入地址:http://localhost:8090/stat.html,若能看到 ffserver Status 说明成功启动,通过内容可以看到在ffserver.conf配置的流信息等内容           
Format status  
</Stream>

#已经存在的文件而非实时流
File “myfile/testvideo/test.flv”
Format flv
#加入一个RTSP应用
File “myfile/testvideo/test.mpg”
Format rtp

参考:http://ffmpeg.org/ffserver.html#Stream-section
https://hub.docker.com/r/vimagick/ffserver/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐