2018-01-07 07:58:45 -05:00
|
|
|
# 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/>.
|
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
# send error messages to email address, like:
|
|
|
|
# missing playlist
|
|
|
|
# unvalid xml format
|
|
|
|
# missing clip path
|
|
|
|
# leave recipient blank, if you don't need this
|
|
|
|
[MAIL]
|
|
|
|
smpt_server = mail.example.org
|
|
|
|
smpt_port = 587
|
2018-01-07 11:56:54 -05:00
|
|
|
sender_addr = ffplayout@example.org
|
2018-01-07 07:58:45 -05:00
|
|
|
sender_pass = 12345
|
|
|
|
recipient =
|
2018-01-10 09:41:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
# Logging to file
|
|
|
|
# path to /var/log/ only if you run this program as deamon
|
|
|
|
# log_level can be: INFO, DEBUG, WARNING
|
|
|
|
[LOGGING]
|
2018-02-02 05:06:25 -05:00
|
|
|
log_file = /var/log/ffplayout/ffplayout.log
|
2018-01-10 09:41:56 -05:00
|
|
|
log_level = INFO
|
2018-01-07 07:58:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
# output settings for the pre-compression
|
|
|
|
# all clips get prepared in that way,
|
|
|
|
# so the input for the final compression is unique
|
2018-02-19 05:12:13 -05:00
|
|
|
# it produce a uncompressed avi stream
|
2018-01-07 07:58:45 -05:00
|
|
|
[PRE_COMPRESS]
|
|
|
|
width = 1024
|
|
|
|
height = 576
|
|
|
|
fps = 25
|
2018-02-20 04:59:39 -05:00
|
|
|
v_bitrate = 50000
|
|
|
|
a_bitrate = 256
|
2018-01-07 07:58:45 -05:00
|
|
|
a_sample = 44100
|
2018-04-29 12:07:42 -04:00
|
|
|
copy_mode = False
|
|
|
|
ffmpeg_copy_settings = ["-c", "copy", "-bsf:v", "h264_mp4toannexb", "-threads", "2", "-f", "mpegts", "-"]
|
2018-01-07 07:58:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
# playlist settings
|
|
|
|
# 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)
|
|
|
|
# strings in playlist must have ampersan (&) as: &
|
|
|
|
|
|
|
|
# day_start means at witch hour starts the day, as integer
|
2018-02-19 05:12:13 -05:00
|
|
|
# filler_path are for the GUI only at the moment
|
|
|
|
# filler_clip get handle different, when a new length needs to calculate
|
2018-04-29 12:07:42 -04:00
|
|
|
# blackclip is for stream copy mode
|
2018-08-15 10:18:09 -04:00
|
|
|
|
2018-08-14 15:30:32 -04:00
|
|
|
# time_shift adds or subtract seconds to the clip start,
|
2018-08-15 10:18:09 -04:00
|
|
|
# this is usefull for example for hls, because it have a big delay
|
|
|
|
# the value will be added to the clip begin
|
|
|
|
# put 0 if you don't need it
|
|
|
|
|
2018-08-15 06:15:06 -04:00
|
|
|
# map_extension is only for special purpose,
|
2018-08-15 10:18:09 -04:00
|
|
|
# when your playlist have a different extension, then the originial clip
|
2018-08-15 06:15:06 -04:00
|
|
|
# example: map_extension = [".mp4", ".mkv"]
|
2018-08-15 10:18:09 -04:00
|
|
|
# life blank for no change
|
2018-01-07 07:58:45 -05:00
|
|
|
[PLAYLIST]
|
|
|
|
playlist_path = /playlists
|
2018-02-02 05:06:25 -05:00
|
|
|
clips_root = /ADtvMedia
|
2018-02-07 03:11:17 -05:00
|
|
|
filler_path = /ADtvMedia/ADtv/03 - Musikalische Lückenfüller
|
|
|
|
filler_clip = /ADtvMedia/ADtv/01 - Intro/seperator.clock.5-00.mp4
|
2018-04-29 12:07:42 -04:00
|
|
|
blackclip = /opt/dummy20.mkv
|
2018-01-07 07:58:45 -05:00
|
|
|
day_start = 6
|
2018-08-15 10:18:09 -04:00
|
|
|
time_shift = 35
|
2018-08-15 06:15:06 -04:00
|
|
|
map_extension =
|
2018-01-07 07:58:45 -05:00
|
|
|
|
|
|
|
# buffer settings
|
|
|
|
# this is a system processs witch run between pre-compression
|
|
|
|
# and final compression, this makes the magic to playout multiple files
|
|
|
|
# without interrupt the stream
|
|
|
|
|
|
|
|
# buffer_length: length in seconds of the buffer
|
|
|
|
# this is the time what the playout have, to change from one clip to the next
|
|
|
|
# be liberal with this value but dont exaggerate
|
2018-02-20 04:59:39 -05:00
|
|
|
# # buffer size gets calculate with: (v_bitrate + a_bitrate) * 0.125 * buffer_length
|
2018-03-20 16:33:21 -04:00
|
|
|
# by rawvideo calculation would be:
|
|
|
|
# (width x height * 3 / 2 * fps * buffer_length / 1024) + ((a_sample * 16 * 2 * buffer_length) / 8 / 1024)
|
2018-02-20 04:59:39 -05:00
|
|
|
# Size is in KB
|
2018-02-19 05:12:13 -05:00
|
|
|
|
2018-03-20 16:33:21 -04:00
|
|
|
# buffer_tolerance: ffmpeg holds material to in buffer, for this is the tolerance value
|
|
|
|
# a 1024x576 stream have around 2.5 seconds extra in buffer
|
|
|
|
|
2018-01-07 07:58:45 -05:00
|
|
|
|
|
|
|
# buffer_cli: the prefert buffer tool, needs to be installed on your system
|
|
|
|
# buffer_cmd: need to end with the buffer size command, full command would look:
|
|
|
|
# /usr/bin/pv -q -B 72600k
|
|
|
|
[BUFFER]
|
2018-08-13 15:46:21 -04:00
|
|
|
buffer_length = 5
|
2018-03-20 16:33:21 -04:00
|
|
|
buffer_tolerance = 2.5
|
2018-01-07 07:58:45 -05:00
|
|
|
buffer_cli = /usr/bin/mbuffer
|
|
|
|
buffer_cmd = ["-q", "-c", "-m"]
|
|
|
|
|
|
|
|
|
|
|
|
# the final playout post compression
|
|
|
|
# set the settings to your needs
|
|
|
|
# logo is only used if the path exist
|
|
|
|
# with logo_o = overlay=W-w-2:0 you can modify the logo position
|
|
|
|
[OUT]
|
2018-01-07 17:01:26 -05:00
|
|
|
service_name = Live Stream
|
|
|
|
service_provider = example.org
|
2018-01-07 07:58:45 -05:00
|
|
|
logo = /usr/local/share/logo.png
|
|
|
|
logo_o = overlay=W-w-2:0
|
2018-02-02 05:06:25 -05:00
|
|
|
post_comp_video = ["-c:v", "libx264", "-crf", "23", "-g", "50", "-maxrate", "1300k", "-bufsize", "2600k", "-preset", "medium", "-profile:v", "Main", "-level", "3.1", "-refs", "3"]
|
2018-01-07 07:58:45 -05:00
|
|
|
post_comp_audio = ["-c:a", "libfdk_aac", "-b:a", "128k"]
|
|
|
|
post_comp_extra = ["-threads", "2", "-flags", "+global_header", "-f", "flv"]
|
2018-04-29 12:07:42 -04:00
|
|
|
post_comp_copy = ["-bsf:a", "aac_adtstoasc"]
|
2018-02-02 05:06:25 -05:00
|
|
|
out_addr = rtmp://127.0.0.1/live/stream
|