docker部署ffserver(docker-compose封装)播放本地视频以及推流案例
部署成功后就一个想法:“差之毫厘谬以千里”。以供大家参考注:要按照步骤来部署FFserver是一个用于音频和视频流媒体服务器1.创建docker-compose.yml(在自己常用的目录下方便管理运行)------------------(配置开始)----------------------vi docker-compose.yml填写如下配置文件,esc :wq 保存退出ffs...
·
系统版本: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/
更多推荐
已为社区贡献9条内容
所有评论(0)