ffserver - FFserver video server ================================ ![](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 feeds (you can seek to positions in the past on each live feed, provided you specify a big enough feed storage in `ffserver.conf`). ## docker-compose.yml ```yaml ffserver: image: vimagick/ffserver ports: - "554:554" - "8090:8090" volumes: - ./ffserver.conf:/etc/ffserver.conf - ./data:/data restart: always ``` ## ffserver.conf ``` HTTPPort 8090 HTTPBindAddress 0.0.0.0 RTSPPort 554 RTSPBindAddress 0.0.0.0 MaxClients 100 MaxBandwidth 100000 CustomLog - File /data/feed.ffm 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 Format status ``` > :warning: I've not figured out how to stream video+audio yet! ## Server Setup ```bash $ cd ~/fig/ffserver $ tree . ├── data │ └── video.mp4 ├── docker-compose.yml └── ffserver.conf $ docker-compose up -d $ docker-compose exec ffserver ffmpeg -re -i video.mp4 http://localhost:8090/feed.ffm ``` > :hammer: `data/video.mp4` is for testing purposes only. ## Client Setup ```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 - - - [1]: https://www.ffmpeg.org/ffserver.html