Go to file
2018-11-18 18:38:27 +01:00
.gitignore add more ignores 2018-11-18 18:38:27 +01:00
2018-01-01.xml make playlist more simple 2018-02-03 20:46:39 +01:00
ffplayout.conf better and more simple time_shift 2018-08-15 16:18:09 +02:00
ffplayout.py buffer size as integer 2018-11-18 18:38:17 +01:00
ffplayout.service create project 2018-01-07 13:58:45 +01:00
gen_playlist_from_subfolders.sh make playlist more simple 2018-02-03 20:49:36 +01:00
LICENSE Update LICENSE 2018-03-06 17:07:43 +01:00
README.md Merge branch 'dev', add copy mode 2018-08-13 22:07:26 +02:00

ffplayout

This is a streaming solution based on python and ffmpeg.

The goal is to play for every day an xml playlist, while the current playlist is still editable.

Check ffplayout-gui: web-based GUI for ffplayout.

Features

  • have all values in a separate config file
  • dynamic playlist
  • replace missing playlist or clip with a blank clip
  • send emails with error message
  • overlay a logo
  • trim and fade the last clip, to get full 24 hours, if the duration is less then 6 seconds add a blank clip
  • set custom day start, so you can have playlist for example: from 6am to 6am, instate of 0am to 12pm
  • copy mode, for more infos take a look in the wiki
  • normal system requirements and no special tools
    • we only need ffmpeg, ffprobe and a buffer tool like mbuffer or pv
    • no GPU power is needed
    • ram and cpu depends on video resolution, minimum 4 threads and 3GB ram for 720p are recommend
  • python version 3.5 and up

XML Playlist Example

<playlist>
    <head>
        <meta name="author" content="example"/>
        <meta name="title" content="Live Stream"/>
        <meta name="copyright" content="(c)2018 example.org"/>
        <meta name="date" content="2018-02-03"/>
    </head>
    <body>
        <video src="/path/clip_01.mkv" begin="21600" dur="18.000000" in="0.00" out="18.000000"/>
        <video src="/path/clip_02.mkv" begin="21618" dur="18.111000" in="0.00" out="18.111000"/>
        <video src="/path/clip_03.mkv" begin="21636.1" dur="247.896000" in="0.00" out="247.896000"/>
        <video src="/path/clip_04.mkv" begin="21884" dur="483.114000" in="0.00" out="483.114000"/>
        <video src="/path/clip_05.mkv" begin="22367.1" dur="20.108000" in="0.00" out="20.108000"/>
        <video src="/path/clip  &amp; specials.mkv" begin="22387.2" dur="203.290000" in="0.00" out="203.290000"/>
        <video src="/path/clip_06.mkv" begin="22590.5" dur="335.087000" in="300.00" out="335.087000"/>
    </body>
</playlist>

Installation

  • install ffmpeg, ffprobe and mbuffer
  • copy, or symlink, ffplayout.py to /usr/local/bin/
  • copy, or symlink, ffplayout.conf to /etc/ffplayout/
  • ceate folder with correct perissions for logging (check config)
  • copy ffplayout.service to /etc/systemd/system/
  • change user in service file
  • create playlists folder, in that format: /playlists/year/month
  • set variables in config file to your needs
  • use get_playlist_from_subfolders.sh /path/to/*.mp4s as a starting point for your playlists (path in script needs to change)
  • activate service and start it: sudo systemctl enable ffplayout && sudo systemctl start ffplayout