ffplayout/docs/CONFIG.md
2020-02-04 15:28:18 +01:00

4.1 KiB

The configuration file ffplayout.yml have this sections:


general:
    stop_on_error: True
    stop_threshold: 11

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.


mail:
    subject: "Playout Error"
    smpt_server: "mail.example.org"
    smpt_port: 587
    sender_addr: "ffplayout@example.org"
    sender_pass: "12345"
    recipient:
    mail_level: "ERROR"

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

logging:
    log_to_file: True
    log_path: "/var/log/ffplayout/"
    log_level: "DEBUG"
    ffmpeg_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


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

ffmpeg pre-compression settings, all clips get prepared in that way, so the input for the final compression is unique.

  • aspect mus be a float number.
  • 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!


playlist:
    playlist_mode: True
    path: "/playlists"
    day_start: "5:59:25"
    length: "24:00:00"

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 is read by the script and 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.


storage:
    path: "/mediaStorage"
    filler_path: "/mediaStorage/filler/filler-clips"
    filler_clip: "/mediaStorage/filler/filler.mp4"
    extensions:
        - "*.mp4"
        - "*.mkv"
    shuffle: True

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, add as many as you want. Set shuffle to True to pick files randomly.


text:
    add_text: True
    bind_address: "tcp://127.0.0.1:5555"
    fontfile: "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"

Overlay text in combination with 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.


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"

The final ffmpeg 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.