# 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 <http://www.gnu.org/licenses/>.

# ------------------------------------------------------------------------------


# 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"