The main purpose of ffplayout is to provide a 24/7 broadcasting solution that plays a *json* playlist for every day, while keeping the current playlist editable.
**Check [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend): web-based GUI for ffplayout**
**Features**
-----
- have all values in a separate config file
- dynamic playlist
- replace missing playlist or clip with a dummy clip
- playing clips from [watched folder](https://github.com/ffplayout/ffplayout_engine/wiki/Watch-Folder)
- send emails with error message
- overlay a logo
- overlay text, controllable through [messenger](https://github.com/ffplayout/messenger) or [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend) (needs ffmpeg with libzmq)
- RAM and CPU depends on video resolution, minimum 4 threads and 3GB RAM for 720p are recommend
JSON Playlist Example
-----
```json
{
"channel": "Test 1",
"date": "2019-03-05",
"program": [{
"in": 0,
"out": 647.68,
"duration": 647.68,
"source": "/Media/clip1.mp4"
}, {
"in": 0,
"out": 149,
"duration": 149,
"source": "/Media/clip2.mp4"
}, {
"in": 0,
"out": 114.72,
"duration": 114.72,
"source": "/Media/clip3.mp4",
"category": "advertisement"
}, {
"in": 0,
"out": 2531.36,
"duration": 2531.36,
"source": "/Media/clip4.mp4",
"category": ""
}
]
}
```
**If you need a simple playlist generator check:** [playlist-generator](https://github.com/ffplayout/playlist-generator)
**Warning**
-----
(Endless) streaming over multiple days will only work when config have **day_start** value and the **length** value is **24 hours**. If you need only some hours for every day, use a *cron* job, or something similar.