; 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 stderr (console) ; path to /var/log/ only if you run this program as deamon ; log_level can be: DEBUG, INFO, WARNING, ERROR [LOGGING] log_to_file = True log_file = /var/log/ffplayout/ffplayout.log log_level = INFO ; 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 ; live_protocols is for checking input, is input a live source ffplayout handles it a bit different ; info: output is progressive! [PRE_COMPRESS] width = 1024 height = 576 aspect = 1.778 fps = 25 add_logo = True logo = 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 live_protocols = ["http", "https", "ftp", "rtmp", "rtmpe", "rtmps", "rtp", "rtsp", "srt", "tcp", "udp"] ; 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 = 05:59:25 length = 24:00:00 ; play ordered or ramdomly files from path ; extensions: search only files with this extension, can be a list ; set shuffle to True to pick files randomly ; 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 ; best for this is a ~4 hours clip with black color and soft noise sound [STORAGE] path = /media filler_path = /media/filler/filler-clips filler_clip = /media/filler/filler.mp4 extensions = ["*.mp4"] shuffle = False ; overlay text ; for paramters check ffmpeg doc ; leave textfile blank when you don't need this ; in some systems decimal point is a comma, have this in mind when ffmpeg complains about wrong values ; on windows fontfile path need to be like this: C\:/WINDOWS/fonts/DejaVuSans.ttf ; textfile has the same pattern [TEXT] add_text = True textfile = /media/live.txt fontsize = 24 fontcolor = white fontfile = /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf box = 1 boxcolor = black@0xbb boxborderw = 6 x = w-w/8*mod(t,8*(w+tw)/w) y = (h-line_h)*0.9 ; 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_comp_video = ["-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"] post_comp_audio = ["-c:a", "aac", "-ar", "44100", "-b:a", "128k"] post_comp_extra = ["-flags", "+global_header", "-f", "flv"] out_addr = rtmp://127.0.0.1/live/stream