-
Added Loop Channel Support
a day ago • 0 commentsThis allows for simulating channels that play a set of videos on a loop, like a community bulletin channel.
Note: This feature is highly experimental and is only included in the main branch for testing. Use at your own risk.
To get started, copy
loop.json
fromconfs/examples/
intoconfs
cp confs/examples/loop.json confs/
The example configuration provides the minimum configuration to enable the guide channel with the default view.
{"station_conf" : { "network_name" : "MyLoop", "network_type" : "loop", "channel_number": 2, "runtime_dir" : "runtime/loop", "content_dir" : "catalog/loop", "catalog_path": "catalog/loop.bin", "schedule_path": "runtime/loop_schedule.bin" }}
About
content_dir
: Files in this directory will be read into the catalog when you runstation_42.py
and will be played in alpha-numeric order.Limitations
Currently, subfolders and temporal hints are not supported. Since this specific channel type is meant to work with shorter content, it has not yet been tested with content over an hour in length and is not likely to work. -
Guide/Preview Channel Prototype
3 days ago • 0 commentsAdded a guide channel prototype. The guide channel is highly experimental and is currently only included in the main branch for testing. Documentation and hardening of this module is ongoing - use at your own risk :) Currently, video playback is in progress.
Copy `guide.json` from `confs/examples/` into `confs`
cp confs/examples/guide.json confs/
cp confs/examples/guide.json confs/
The example configuration provides the minimum configuration to enable the guide channel with the default view.
{"station_conf" : { "network_name" : "Guide", "network_type" : "guide", "channel_number": 3, "runtime_dir" : "runtime/guide", "content_dir" : "catalog/indie42_catalog/commercial/December" }}
The guide channel's appearance is controlled through a set of parameters. The default parameters can be overridden. To override a parameter, just put it into the configuration file with the new value. The following parameters (shown with their default values) are available:
"width" : 720, "height": 480, "top_bg" : "blue3", "bottom_bg" : "blue4", "pad" : 10, "messages" : ["Hello FieldStation42\nGuide preview", "Cheers!\nFrom us to you!", "FieldStation42 Guide\nOn cable mode."], "message_rotation_rate" : 10, "message_fg" : "white", "message_font_family" : "Arial", "message_font_size" : 25, "network_font_family" : "Arial", "network_font_size" : 12, "schedule_font_family" : "Arial", "schedule_font_size" : 12, "schedule_highlight_fg" : "yellow", "schedule_fg" : "white", "schedule_border_width" : 4, "schedule_border_relief" : "raised", "footer_messages" : ["You are watching FieldStation42", "Now with cable mode."], "footer_height" : 50, "schedule_row_count" : 3
See the github repo for more details.
-
Added Temporal Scheduling Hints
11/06/2024 at 03:39 • 0 commentsNew Feature: Sub-Folders as content hints
Subfolders, when specially named, can be used to restrict content to certain times.
Monthly based scheduling hints
Sub-folders with the name of a month will only be played in slots falling in that month. The names need to be fully spelled out (October, not Oct).
Quarterly scheduling hints
Sub-folders with the name of a quarter will only be played during that quarter of the year. Q1 is the first 3 months, Q2 is the second 3 months and so on. Valid quarter names are Q1, Q2, Q3 and Q4.
Date range scheduling hints
Content in sub-folders with a date range and works across year boundary. Some examples include:
- Sub-folder with name
December 1 - December 25
would only be played between the first day of December through the 25th day of December. - Sub-folder with name
November 15 - April 10
would only be played between November 15 through April 19th.
- Sub-folder with name
-
More formats and better scheduling
11/02/2024 at 05:00 • 0 commentsMultiple improvements and fixes are live now, including:
- Extended support for multiple video formats mp4, mpg, mpeg, avi, mov, mkv
- Improvements to fill content for commercials and bumps - allowing for the scheduler to try and get as close as possible to the target duration without hard failing when it can't get close enough.
- Fixed an issue with how subdirectories were being read
-
Some Big Updates
10/20/2024 at 18:38 • 0 commentsSeveral updates to improvements and overall QOL features for users:
- Added sub-folder support for content folders - this enables a lot of use cases for reusing content.
- Major code reorganization to clean up the top level of the repository
- Added install script to handle python virtual environment setup and simplify the overall process.
- Added all new documentation on setup and install process: https://github.com/shane-mason/FieldStation42/wiki
- If station runtime directories don't exist, the scheduler will attempt to create
-
Added JSON Station configuration support
09/30/2024 at 15:03 • 0 commentsAdded JSON formatted station configurations to replace the python module versions - though both can be used currently.
-
QOL Updates
09/28/2024 at 16:54 • 0 commentsSeveral updates are now available in the github repo, including:
- Added `--rebuild_catalog` switch to force rebuilding all catalogs before generating schedules - this is useful when the content has been updated. To only rebuild a specific catalog, just delete that station's catalog.bin file.
- Added installation and setup documentation to the README
-
Added sign-off video and off-air video configuration
09/26/2024 at 15:02 • 0 commentsAdded two new configuration options for specifying a signoff video to the per-station configurations:
#used at sign-off time (played once) 'sign_off_video': "catalog/anthem_signoff.mp4", #used when the channel is offair 'off_air_video': "catalog/off_air_pattern.mp4",
and then an option in the schedule configuration to note when to run it - the following will cause sign-off at 3am:
3: {'event' : 'signoff'}
About Sign Off events
A signoff event is specified by assigning a time slot to
{'event' : 'signoff'}
and will cause the video file specified bysign_off_video
to be played once at the top of the hour. Ifoff_air_video
is specified, then the remainder of the hour will be filled by loopingoff_air_video
.About Off Air time
If a time slot is not specified, it will be considered as off-air for schedule creation. Ifoff_air_video
is specified, then the slot will be filled by loopingoff_air_video
.