mirror of
https://github.com/vimagick/dockerfiles
synced 2024-06-20 22:08:39 +00:00
update ffserver
This commit is contained in:
parent
4bb73644f1
commit
7bded15bc5
@ -1,14 +1,13 @@
|
|||||||
#
|
#
|
||||||
# Dockerfile for ffmpeg
|
# Dockerfile for ffserver
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM alpine
|
FROM vimagick/ffmpeg
|
||||||
|
|
||||||
MAINTAINER kev <noreply@easypi.info>
|
MAINTAINER kev <noreply@easypi.info>
|
||||||
|
|
||||||
RUN apk add -U ffmpeg
|
COPY ffserver.conf /etc/
|
||||||
|
|
||||||
ADD ffserver.conf /etc/
|
EXPOSE 554 8090
|
||||||
|
|
||||||
EXPOSE 8090
|
ENTRYPOINT ["ffserver"]
|
||||||
|
|
||||||
CMD ["ffserver"]
|
|
||||||
|
@ -1,21 +1,24 @@
|
|||||||
ffserver - FFserver video server
|
ffserver - FFserver video server
|
||||||
================================
|
================================
|
||||||
|
|
||||||
`FFserver` is a streaming server for both audio and video. It supports
|
![](https://badge.imagelayers.io/vimagick/ffserver:latest.svg)
|
||||||
|
|
||||||
|
[FFserver][1] is a streaming server for both audio and video. It supports
|
||||||
several live feeds, streaming from files and time shifting on live
|
several live feeds, streaming from files and time shifting on live
|
||||||
feeds (you can seek to positions in the past on each live feed,
|
feeds (you can seek to positions in the past on each live feed,
|
||||||
provided you specify a big enough feed storage in `ffserver.conf`).
|
provided you specify a big enough feed storage in `ffserver.conf`).
|
||||||
|
|
||||||
## docker-compose.yml
|
## docker-compose.yml
|
||||||
|
|
||||||
```
|
```yaml
|
||||||
ffserver:
|
ffserver:
|
||||||
image: vimagick/ffserver
|
image: vimagick/ffserver
|
||||||
ports:
|
ports:
|
||||||
|
- "554:554"
|
||||||
- "8090:8090"
|
- "8090:8090"
|
||||||
volumes:
|
volumes:
|
||||||
- ffserver.conf:/etc/ffserver.conf
|
- ./ffserver.conf:/etc/ffserver.conf
|
||||||
- data:/data
|
- ./data:/data
|
||||||
restart: always
|
restart: always
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -25,22 +28,33 @@ ffserver:
|
|||||||
HTTPPort 8090
|
HTTPPort 8090
|
||||||
HTTPBindAddress 0.0.0.0
|
HTTPBindAddress 0.0.0.0
|
||||||
|
|
||||||
|
RTSPPort 554
|
||||||
|
RTSPBindAddress 0.0.0.0
|
||||||
|
|
||||||
MaxClients 100
|
MaxClients 100
|
||||||
MaxBandwidth 100000
|
MaxBandwidth 100000
|
||||||
CustomLog -
|
CustomLog -
|
||||||
|
|
||||||
<Feed feed.ffm>
|
<Feed feed.ffm>
|
||||||
File /tmp/feed.ffm
|
File /data/feed.ffm
|
||||||
</Feed>
|
</Feed>
|
||||||
|
|
||||||
<Stream feed.mp3>
|
<Stream video.mp4>
|
||||||
|
Format rtp
|
||||||
Feed feed.ffm
|
Feed feed.ffm
|
||||||
Format mp2
|
VideoCodec libx264
|
||||||
AudioCodec libmp3lame
|
VideoFrameRate 24
|
||||||
AudioBitRate 64
|
VideoBitRate 100
|
||||||
AudioChannels 1
|
VideoSize 640x480
|
||||||
AudioSampleRate 44100
|
AVPresetVideo default
|
||||||
NoVideo
|
AVPresetVideo baseline
|
||||||
|
AVOptionVideo flags +global_header
|
||||||
|
NoAudio
|
||||||
|
#AudioCodec libmp3lame
|
||||||
|
#AudioBitRate 32
|
||||||
|
#AudioChannels 2
|
||||||
|
#AudioSampleRate 22050
|
||||||
|
#AVOptionAudio flags +global_header
|
||||||
</Stream>
|
</Stream>
|
||||||
|
|
||||||
<Stream status.html>
|
<Stream status.html>
|
||||||
@ -48,29 +62,43 @@ Format status
|
|||||||
</Stream>
|
</Stream>
|
||||||
```
|
```
|
||||||
|
|
||||||
> WARNING: I've not figured out how to stream video yet!
|
> :warning: I've not figured out how to stream video+audio yet!
|
||||||
|
|
||||||
## server
|
## Server Setup
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ cd ~/fig/ffserver
|
$ cd ~/fig/ffserver
|
||||||
|
|
||||||
$ tree
|
$ tree
|
||||||
.
|
.
|
||||||
├── data
|
├── data
|
||||||
│ └── feed.mp3
|
│ └── video.mp4
|
||||||
├── docker-compose.yml
|
├── docker-compose.yml
|
||||||
└── ffserver.conf
|
└── ffserver.conf
|
||||||
|
|
||||||
$ docker-compose up -d
|
$ docker-compose up -d
|
||||||
|
$ docker-compose exec ffserver ffmpeg -re -i video.mp4 http://localhost:8090/feed.ffm
|
||||||
$ docker exec ffserver_ffserver_1 ffmpeg -i /data/feed.mp3 http://localhost:8090/feed.ffm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## client
|
> :hammer: `data/video.mp4` is for testing purposes only.
|
||||||
|
|
||||||
```
|
## Client Setup
|
||||||
$ firefox http://server:8090/status.html
|
|
||||||
|
|
||||||
$ firefox http://server:8090/feed.mp3
|
```bash
|
||||||
|
$ ffmpeg -re -i video.mp4 http://easypi.info:8090/feed.ffm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Player Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ffplay rtsp://easypi.info/video.mp4
|
||||||
|
$ vlc http://easypi.info:8090/video.rtsp
|
||||||
|
$ firefox http://easypi.info:8090/status.html
|
||||||
|
```
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- <http://ffmpeg.org/ffserver.html>
|
||||||
|
- <http://www.ffmpeg.org/sample.html>
|
||||||
|
- <https://trac.ffmpeg.org/wiki/ffserver>
|
||||||
|
|
||||||
|
[1]: https://www.ffmpeg.org/ffserver.html
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
ffserver:
|
ffserver:
|
||||||
image: vimagick/ffserver
|
image: vimagick/ffserver
|
||||||
ports:
|
ports:
|
||||||
|
- "554:554"
|
||||||
- "8090:8090"
|
- "8090:8090"
|
||||||
volumes:
|
volumes:
|
||||||
- ./ffserver.conf:/etc/ffserver.conf
|
- ./ffserver.conf:/etc/ffserver.conf
|
||||||
|
@ -1,22 +1,33 @@
|
|||||||
HTTPPort 8090
|
HTTPPort 8090
|
||||||
HTTPBindAddress 0.0.0.0
|
HTTPBindAddress 0.0.0.0
|
||||||
|
|
||||||
|
RTSPPort 554
|
||||||
|
RTSPBindAddress 0.0.0.0
|
||||||
|
|
||||||
MaxClients 100
|
MaxClients 100
|
||||||
MaxBandwidth 100000
|
MaxBandwidth 100000
|
||||||
CustomLog -
|
CustomLog -
|
||||||
|
|
||||||
<Feed feed.ffm>
|
<Feed feed.ffm>
|
||||||
File /tmp/feed.ffm
|
File /data/feed.ffm
|
||||||
</Feed>
|
</Feed>
|
||||||
|
|
||||||
<Stream feed.mp3>
|
<Stream video.mp4>
|
||||||
|
Format rtp
|
||||||
Feed feed.ffm
|
Feed feed.ffm
|
||||||
Format mp2
|
VideoCodec libx264
|
||||||
AudioCodec libmp3lame
|
VideoFrameRate 24
|
||||||
AudioBitRate 64
|
VideoBitRate 100
|
||||||
AudioChannels 1
|
VideoSize 640x480
|
||||||
AudioSampleRate 44100
|
AVPresetVideo default
|
||||||
NoVideo
|
AVPresetVideo baseline
|
||||||
|
AVOptionVideo flags +global_header
|
||||||
|
NoAudio
|
||||||
|
#AudioCodec libmp3lame
|
||||||
|
#AudioBitRate 32
|
||||||
|
#AudioChannels 2
|
||||||
|
#AudioSampleRate 22050
|
||||||
|
#AVOptionAudio flags +global_header
|
||||||
</Stream>
|
</Stream>
|
||||||
|
|
||||||
<Stream status.html>
|
<Stream status.html>
|
||||||
|
@ -17,8 +17,32 @@ red5:
|
|||||||
restart: always
|
restart: always
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Server Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Client Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ffmpeg -i /dev/video0 -video_size 800x600 -f flv rtmp://easypi.info/live/webcam
|
||||||
|
```
|
||||||
|
|
||||||
|
## Player Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# kodi
|
||||||
|
$ echo 'rtmp://easypi.info/live/webcam live=1' > ~/Movies/webcam.strm
|
||||||
|
|
||||||
|
# ffplay
|
||||||
|
$ brew reinstall ffmpeg --with-ffplay --with-rtmpdump
|
||||||
|
$ ffplay 'rtmp://easypi.info/live/webcam live=1'
|
||||||
|
```
|
||||||
|
|
||||||
## references
|
## references
|
||||||
|
|
||||||
- <https://github.com/Red5/docker>
|
- <https://github.com/Red5/docker>
|
||||||
|
- <http://kodi.wiki/view/Internet_video_and_audio_streams>
|
||||||
|
|
||||||
[1]: https://github.com/Red5/red5-server
|
[1]: https://github.com/Red5/red5-server
|
||||||
|
Loading…
Reference in New Issue
Block a user