# This file is part of ffplayout. # # ffplayout is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # ffplayout is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with ffplayout. If not, see . # ------------------------------------------------------------------------------ # sometimes it can happen, that a file is corrupt but still playable, # this can produce an streaming error over all following files # the only way in this case is, to stop ffplayout and start it again # here we only say it can stop, the starting process is in your hand # best way is a systemd serivce on linux # stop_threshold: stop ffplayout, if it is async in time above this value general: stop_on_error: True stop_threshold: 11 # send error messages to email address, like: # missing playlist # unvalid json format # missing clip path # leave recipient blank, if you don't need this # mail_level can be: WARNING, ERROR mail: subject: "Playout Error" smpt_server: "mail.example.org" smpt_port: 587 sender_addr: "ffplayout@example.org" sender_pass: "12345" recipient: mail_level: "ERROR" # Logging to file # if log_to_file = False > log to console # path to /var/log/ only if you run this program as deamon # log_level can be: DEBUG, INFO, WARNING, ERROR # ffmpeg_level can be: INFO, WARNING, ERROR logging: log_to_file: True log_path: "/var/log/ffplayout/" log_level: "DEBUG" ffmpeg_level: "ERROR" # output settings for the pre-compression # all clips get prepared in that way, # so the input for the final compression is unique # aspect mus be a float number # logo is only used if the path exist # with logo_opacity logo can make transparent # with logo_filter = overlay=W-w-12:12 you can modify the logo position # with use_loudnorm you can activate single pass EBU R128 loudness normalization # loud_* can adjust the loudnorm filter # INFO: output is progressive! pre_compress: width: 1024 height: 576 aspect: 1.778 fps: 25 add_logo: True logo: "docs/logo.png" logo_opacity: 0.7 logo_filter: "overlay=W-w-12:12" add_loudnorm: False loud_I: -18 loud_TP: -1.5 loud_LRA: 11 # playlist settings # set playlist_mode to False if you want to play clips from the [STORAGE] section # put only the root path here, for example: "/playlists" # subfolders are readed by the script # subfolders needs this structur: # "/playlists/2018/01" (/playlists/year/month) # day_start means at which time the playlist should start # leave day_start blank when playlist should always start at the begin # length represent the target length from playlist, when is blank real length will not consider playlist: playlist_mode: True path: "/playlists" day_start: "5:59:25" length: "24:00:00" # play ordered or ramdomly files from path # filler_path are for the GUI only at the moment # filler_clip is for fill the end to reach 24 hours, it will loop when is necessary # extensions: search only files with this extension, can be a list # set shuffle to True to pick files randomly storage: path: "/mediaStorage" filler_path: "/mediaStorage/filler/filler-clips" filler_clip: "/mediaStorage/filler/filler.mp4" extensions: - "*.mp4" - "*.mkv" shuffle: True # overlay text in combination with messenger: https://github.com/ffplayout/messenger # on windows fontfile path need to be like this: C\:/WINDOWS/fonts/DejaVuSans.ttf # in a standard environment the filter drawtext node is: Parsed_drawtext_2 text: add_text: True bind_address: "tcp://127.0.0.1:5555" fontfile: "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" # the final playout post compression # set the settings to your needs # preview works only on a desktop system with ffplay!! Set it to True, if you need it out: preview: False service_name: "Live Stream" service_provider: "example.org" post_ffmpeg_param: c:v: "libx264" crf: "23" x264-params: "keyint=50:min-keyint=25:scenecut=-1" maxrate: "1300k" bufsize: "2600k" preset: "medium" profile:v: "Main" level: "3.1" c:a: "aac" ar: "44100" b:a: "128k" flags: +global_header f: "flv" out_addr: "rtmp://localhost/live/stream"