Thanks go out to these groups and individuals that have sponsored open source development.
|Ad Manager||New North Networks|
|CAP Alerting with Indigenous Languages||Yukon University|
|HD Video CAP Alerting||TeleMag|
|LED Scrolling Screen Alerting||Yukon Emergency Measures Organization|
|LIVE Assist Touch Screen||Nuxalk Radio|
|Media Monitoring\Off Air Recordings||Cision Media|
|Meta Data Manager||National Community Radio Association|
|SaaS Module||Yukon Economic Development|
|Server clustering and DB replication||SSI Canada|
|Sound Exchange Reporting Tool||Lexington Community Radio WLXL and WLXU|
|SVG Inline Slide Editor||Dawson City Cable TV|
|Task Tracker Module||Tsilhqotin Radio|
Contact us if you have a specific requirement or feature that you would like to sponsor.
Change Log 5.1 (June 21, 2020)
Server Ver 5.1.0
- add support for custom playlist item types
- update copyright/license data for release
- add metadata modal window to stream widget
- left/right arrows on stream widget modal
- audio icon fallback for stream widget if no album art
- add pagination, load more and infinite scroll support to stream widget
- add info about using ffmpeg instead of libav-tools/avconv
- stream widget add album art to videojs player when playing audio
- improve ui code for opendyslexic font use (resolves issue with fontawesome copy icon not visible when editing media)
- sidebar search handling and other UI improvements
- hide media add/edit copy to all buttons if only one form
- change media add/edit copy to all buttons to icons
- final improvements to tag field for now (select box drop-down for advanced search
- much improved tag input field including browse tags if input empty
- make scroll bars nicer
- tag meta field search suggestions
- theme tweaks move scss files outside of theme dir.
- improve status/updates UI to make update status and required updates more clear
- upgrade to jquery 3 add jquery migrate for compatibility. fix audio player format select.
- don't reply on external dependencies (in case no/limited internet)
- add ID to category/genre edit which is needed for stream embed code
- add dynamic content field default/hidden option
- stream tool now generates thumbnails. update code to store stream/thumbnail version in media table --instead of separate table.
- OB now automatically translates using language set in user settings.
- Updated account settings to pull languages from translations table.
- improve password_change tool
- Updated module manager code to use obWidget instead of alerts and to remind users to refresh the page after (un)install.
- add some settings for media uploads (verify media filesize limit). stream api development.
- Moved ID3 functionality to media model.
- Fix to user permission check to allow for running scripts from command-line.
- fix last connect icon calculation error
- Added sortable by ID or name on player manager.
- Players ordered by name.
- Added alert icons when a connection to player manager has been more than an hour ago
- Added nice icons for sidebar media type.
Player Ver 5.1.0
- Fixed repeating error in logs if the remote station override module can't connect to Icecast.
- Fixed issue with alert logs being formatted with the wrong color under debug mode.
- Added backend code to support station override count.
- Added local override stream to player modal.
- Added station override count in the LA and pushed other part of fix for sync issues.
- Fixed issue with off air logging causing crash if SDR software not installed.
- Fixed news feed loading if statement.
- Fixed a bug where if alerts was disabled the http server would error out.
- Moved log formatting into the Python code from the JS code to speed up processing.
- Added if statement to hide normal audio control when the pulse audio output is on.
- Added alerts as a log type to view in the log viewer.
- Changed the alert counter to log as alerts.
- Added the news feed override feature.
- Added more info link in the admin tab.
- Add disclaimer to experimental feature settings under the admin tab.
- Changed audio stream players To be in a modal.
- Added additional indigenous languages for feature support.
- Added hidden view for STL streaming settings.
- Added setting for hide/show SDR streaming/logging settings.
- Added the TOU ui, and backend changes to the player.
Documentation for all modules is at https://support.openbroadcaster.com
- Add language alerts and phrases to servers for automatic ingest into players.
- Bulk Import enables importing large libraries in a batch retaining metadata.
- Create multiple filters and Watch folders
- Add eCommerce functionality, providing monetary incentive for users to complete media creation and management tasks.
- Assign users and groups to tasks
- On first login, user must accept TOU, created with an inline editor. If TOU changes, user will have to agree to revised terms on next login.
- Add language translation to server framework
Version 5.0 (August 1 2019) Indigenous Language Alerting
OBPlayer Ver 5.0.0-20190801
- Added code to support Indigenous alerts
- Fixed bug preventing alerts to play
- Added Indigenous support to get_media_info
- Updated code to fix issues downloading alert data
- Added support for sync Indigenous alert audio.
- Added Indigenous folder build and alert table data
- Updated the generate_audio method
- Updated write_Indigenous_file method
- Added Feed Class and changed to Indigenous code
- Added US locations to drop down
- Check for US/CA alert and play the correct attention tone
- Added slider to control audio output volume.
- Added drop down for Indigenous languages.
- Added NWS Test Alert to the test alerts drop down for testing US alerts.
- Added a multiple info block alert for testing.
- Added AWS id, key, and region settings to admin area.
- Added support for AWS Polly voices and added a multiple info block alert to the test alert dropdown.
- Added drop-down for alert location type
- Added locations drop-down menu in alert tab
OBServer Ver 5.0.0-20190801
- move CAP-CP event grabber js snippet to tools directory since it is unrelated to OB code
- Added button for removing individual alerts. Slightly increased height of droppable fields for better usability.
- Added update/close buttons on top of view language page. Added remote.php functionality for loading all alerts for all languages.
- Added error-checking in cases where media items have been removed but are still in alerts database.
- Loading language now displays all previously assigned media alerts. Language overview shows number of alerts assigned to each language.
- Filled out JSON object for CAP-CP alert events and saved scripts in case event list gets updated.
- Added functionality for assigning media items to language alerts.
- Added minimal view for loading and dropping individual alerts.
- Added single language alert view. Started json file to include all CAP-CP events from reference.
- Added functionality for removing language from alerts overview.
- Support for adding new languages to alerts module. Added checks for unique language code. - Structured table for showing languages in module main view. Modified module install code to account for structure changes.
- add filesize / filehash to sync data
- add media type and format to alert info in remote.php
Version 5.0 (July 4 2018)
Sound Exchange Reporting Module and Meta Data Module
OBPlayer Ver 5.0.0-20180410
- added silence detection to line-in to play audio from board when signal detected
- added custom In-Camera mode message when meeting is in progress and audio from board is muted
- Fixed issue with Pelmorex servers rejecting connections without a browser User-Agent
OBServer Ver 5.0.0-20180628
- SX reporting module creates properly formatted XLSX royalty reports for digital submission to Sound Exchange
- Metadata module allows customized fields when uploading media.
- Custom Metadata Fields integrate with advanced search to create dynamic segments
- add additional fields option for royalty reporting
- use avconv to make sure audio/video uploads are properly readable (valid, not DRM encrypted, etc)
- fix download problem where certain audio/video file types were resulting in an early exit
- remember last selected device for schedule, schedule permissions, and priority broadcasts
- add default option to media metadata
- add custom metadata validation for bool and select fields
- switch dynamic selection default to no
- artist or title must be something other than unknown
- media_id = 0 in playlog should only be reported for fallback media
- option to set defaults for genres and categories
- remember user list sort on a per-user basis
- fix problem where my search edit was not properly initializing select fields
Version 5.0 (January 21 2018)
Rewrite of Player (Converted all references to Python3) Updated Server to support PHP7
OBPlayer Ver 5.0
- Support for CLFG Alerting 1.2
- Improved text formatting of alert messages under Python3
- Fix issue with French alert text containing html identifiers, like & pos
- Fixed bug where alert overlay was not playing on top of video
- Fixed test alert to have broadcast immediately flag set
- Fixed issue with RS232 alert trigger causing a blip on startup
- YouTube Live Channel streaming support
- Icecast video streaming
- Intersink option to streamer module. Intersink Mode is simple setup if you don't need additional mixing to send direct from player (Gstreamer to Icecast)
- Intersink audio streaming mode supports bitrates 160 – 320 KB
- Fixed bug in Icecast streamer which caused Mono output
- Added queue to Icecast streamer pipeline
- Added Gstreamer error logging to Icecast pipeline
- Fixed Icecast not-negotiated error and added pipeline names
- Better support for streamer to work with jack. Includes audioconvert element in the pipeline to match audio formats, since jack will only output float32 formatted audio.
Audio over IP
- RTSP server to streamer module
- RTSP and SDP support, and improved RTP/Local Streamer stability
- Added aoipin, rtpin modules, RTSP client and server support
- Changed RTSP discovery setting name
- Pulse Device has controls on the dashboard to adjust input and output levels.
- Setting to purge the audio logs after 90 days. It's disabled by default so that users don't unexpectedly lose their audio logs.
- Audio logger was strictly using pulse to record audio. Now uses the same mode as the audio_out_mode setting to match.
- Fixed invalid format bug in mp3s uploads with png cover images
- Added no pulse audio sources/sinks present message
- Fixed bug that crashed player when pulse audio daemon not available
- Added default password error and password retype field
- can't add users with blank passwords
- Added server version check
- Fixed issue in LA with seeking/changing tracks while paused
- LA will now automatically unpause whenever seeking or changing tracks
- Moved xrandr resolution switcher to its own module
- Automatically detects video out capabilities of video card up to 1080
- Fixed erroneous use of xrange builtin
- Added map icons
- Switched player to use uri in requests
- Moved leaflet map assets to extras
- Fixed SSL support
- Fixed pulse controls when the application.name property is unset
- Moved data.db reset code from loop script to python code
- Reduced the restart timeout to 6 seconds
- Pulse Audio volume controls in dashboard; (must install pulsectl through pip3)
- Fixed bug in dashboard when pulse selected but pulsectl not installed
- Mute to pulse controls and fixed bug with source audio controls
- Fixed issue obplayer #21, error saving sync tab when local_media is not blank
- Replaced some printed exceptions with simple error messages
OBServer Ver 5.0
- Support for Debian 9, PHP7
- Added password_change.php tool, which reads config.php and modifies db
- Updated dependencies and apache config in installer script
- Fix for mysql strict mode and shorttags.ini
- Limit the id3 data we return back to the browser to prevent issues with encoding/other problems (maybe resulting from thumbnail embedded in metadata)
- Added last IP to player manager display
- Accessibility - Display media sidebar left or right
- Added 60+ FN & Inuit Languages
Version 4.1.2-20160903 (September 2016)
- Included recent updates to the CLFG that include reading out info from description field
- Download local audio logs and player application logs from Dashboard status page
- Updates can be done through dashboard. To receive updates, from the Player dashboard >Check for updates>Apply>Restart player
- Fixed condition where Player will keep settings for Remote sync mode
- Separated out Inputs and Outputs into separate menu tabs
- Included a global reset to defaults
- Player reports version back to server
Version 4.1.2 (March 2016)
- Language demos now enabled by default
- Podcast assembler duration, podcast download auto update podcast track list
- Optimizations in code converts all tables to InnoDB. To prevent table locking
- Support for images contained within an alert issued by NAAD.
- new test alert that contains audio and an image
- Import and export settings feature to the new admin tab
- Unicode errors fixes
- Adds a logo to the dashboard.
- Added html template engine
- Added string translations to dashboard
- Added setting for dashboard language to the HTTP tab
- Changed dashboard colours to logo OB Blue
- Alert purge log entries are now 'debug' level
- Sync_freq_emerg renamed to sync_freq_priority
- Sync_freq_log renamed to sync_freq_playlog
- RS-232 trigger now defaults to /dev/ttyS0, and led sign defaults to /dev/ttyS1
- Removed passwords from export file
- Added alert file purge, maskable tabs, and python3 support
- Added import/export of settings and fixed unicode error with alerts
- Audio logging feature will log the audio for regulatory purposes. Hard coded to use Pulse Audio as the input, and it saves the audio as 22050Hz mono in .ogg format. Each hour, it will start a new audio file. These files are saved in ~/.open broadcaster/audiologs.
- Add names to the pulse devices. Set each device to 'pulse' instead of 'auto'
- New map tab in player, select GPS coordinates on map. This puts station icon on servers with mapping module installed
- Emergency Tab. Added and rearranged advanced settings for settings that are rarely used to reduce clutter and make the test alerting tool more focused along the top of page
- Ability to turn on and off mapping notifications with check box
- Read only mode account allows running full screen and restart the player. Can't save, or inject or cancel alerts
- Alerts detail popup. Click on the headline of an alert on the alerts tab for a pop up description
- Red error message in the dashboard on the status or alerts page when the server isn't accessible
- Added line in support for Satellite source switching
- Added exception logging
- Bubble Help over emergency tabs
- Created an Advanced menu tab in Emergency to make less cluttered
- Improved dashboard, added real time logs, media summary, and audio output level meter
- Show Friendly Device Name in Browser Tab
- Fallback player will now search all subdirs in the fallback media player directory can have separate dir for audio, Image and video media.
- Updated the logging programs in the tools directory to use gstreamer 1.0
- added Live output recording automatic recording of output audio, and remove recordings after 90 days. Automatic recording on a per-show basis
OBPlayer to ICEcast Streaming:
- add “Icecast” audio output option to audio/visualization tab of OBPlayer
- additional ip/port and password options when direct streaming option is selected
- Publicly List Icecast Stream
- Icecast Stream Name, Description, Icecast URL
- Added a streaming tab to the dashboard, along with the various streaming
- Added info settings to create Icecast mount point.
- Streamer module if enabled, when the player starts, it will start that and send to Icecast with extended information.
LIVE Assist Interface
- Rounded the corners of the buttons in the button area.
- Added next/previous buttons to the live assist
- New streaming controls. << >> button at the bottom right will show/hide the streaming microphone controls with volume meters.
- Added VU meters to the Live Assist interface. One is in the lower left corner, which is the same levels shown on the status page of the player dashboard. Shows data coming out of the audio pipeline. Added one below the browser microphone controls for the microphone data.
- Local Microphone Access. HTML5 browser asks to allow access to the microphone. Firefox will ask what device you'd like to use as the input. Chrome clicking on the camera icon in the address bar on the right, it will give you a drop down menu of what devices you can use as input.
- Works with 44100 and PCM selected. A-law implemented with 22050 or 11025. Microphone works at the lower sample rates. Using 44100 + PCM, takes a lot of bandwidth and browser resources.
- A-law encoding to web audio stream (compresses audio signal by half, and the lower sample rate compresses it by half again)
- Options at the top control the audio streaming to and from the browser. Select 1) only stream the microphone data from the browser to the player 2) only stream the audio output from the player to the browser 3) stream both. Monitor audio will be up to a second delayed.
Live Assist Source Switching:
- added button to LA to turn streaming on/off
- added button to LA to switch between mic / line in / player output
Live Assist - Live Event Broadcasting:
- capture local device audio and send it to OBPlayer to broadcast
RS232 GPIO Trigger
- When enabled and an alert cycle starts, the serial port will be opened and the DTR line will be set. After the alert cycle has completed, the DTR line will be cleared and the serial port will be closed. When DTR is set, it will output a positive voltage, and when cleared, it will output a negative voltage.
- "Trigger RS-232 DTR on Alerts" checkbox, when checked, will show the "RS-232 Device Filename" option. Device filename should be /dev/ttyS0, or /dev/ttyUSB0 if using a USB-to-Serial adaptor.
- "Trigger ICEcast Stream on Alerts" setting will start and stop the ICEcast streamer module (in the streaming tab) the same as the serial port. In addition to this setting, you must also uncheck the "Play Stream on Startup" option on the streaming tab, or else the streamer will start playing when obplayer starts.
- "Lead-In Delay (in seconds)". Number of seconds of silence that will be inserted at the beginning of each alert cycle before the first alert starts playing, but after the DTR/Icecast stream notifies that an alert cycle has started. Default is 1 second. Setting this to 5 or so seconds will give time for buffering to occur, need to use trial and error to find the ideal value for this. "Lead-Out Delay (in seconds)" setting, adds a pause to the end of the alert cycle to give time for the buffers to empty before the stream disappears.
- New dependency package 'python-serial' in order to use the RS-232 feature.
- Direct RS-232 ports on computers these days are rare, but USB-to-Serial adapters also work with this code.
- Added initial deassertion of serial DTR trigger on startup
- Added error messages for alert RS232 trigger
- Added alert lead-out time setting
- Added alert cycle triggers for RS-232 DTR and Icecast streamer
PEX - Module
- Valid authentication string (api-key) required to access OB from the API
- Media download link (image/alt text) via API
- Download counts (by program/series/episode) via API
- List of recent uploads via API
- Free-form theme keywords (tags) for simple, non-hierarchical categorization (searchable)
- Ability to aggregate media as program/series/episode (~ album/side/track)
- Additional metadata fields and logo/image (recording date, recording location, topicality, credits, track list)
- PAL (Parental Advisory Label) for media content
- Interactive MAPL tool for CanCon track list creation
LED Sign Support
- Single line Alpha Protocol scrolling sign support
- Hooks up with a single 50' data cable and AC power.
- Standalone alert player displays normal text, time and date status is Green, Moderate CAP advisories come across as Amber. Broadcast Intrusive CAP Messages, immediately display on the sign in Red.
- When used as part of a radio playout box, current Song Title, Artist, Show and Description scroll in Multi Colour rainbow effect.
- Emergency messages always take priority.
Priority Barix signaling
- OBPlayer will create an on demand Icecast mount point when an alert cycle starts.
- Setting on the audio/visual tab to disable the test signal. In order to make the priority stream work, so that OBPlayer just outputs the alerts and nothing else, you have to disable the scheduler, fallback player, audio in, and the test signal
Version 4.1.0 (July 2014)
- Ad Manager module to create time based campaigns that auto archive.
- UI Contributor Module to manage a basic interface for contributors less clutter.
- Dynamic Selection allows playing all contents in a loop.
- Wav and MP4 Audio File Support.
- System Update Script and upgrade workflow
- Parent\Child in Devices to clone child schedules, media to parent
- OBPlayer > Clear Cache
Stability and Bug Fixes
- server js tweaks (calendar)
- server previewing/transcoding improvements
- server UI tweaks (media/playlist search, media type column)
- safari support (preview function)
- improved module support for JS in server component (hook/callback system in JS framework)
- upload system revamp using custom code (cleans up code considerably)
- drag/drop files to upload (Chrome)
- OBPlayer tweaks (cleaning out old show data)
- OBPlayer improved video playing support
- add slow SQL logging feature (for debugging purposes)
- update Ob2Ob to handle revised upload system
- add automatic table optimization system in cron
Previously referred as "Remote Application"
Re-factored and optimized for efficiency with a touch screen controller that runs on Mobile HTML5. Reduces resources needed to run app by making operation headless requiring no GUI. Headless remote acts as a client on server to create a source mount point on ICEcast2 media servers. Provisioning and deployment all from CLI not requiring a desktop.
- Touch screen interface, to run live radio shows including a button box player
- LIVE ASSIST MODE Added a menu tab to enable this interface on http. <IP>:23456
- LA allows creating PL of jingles that are turned into columns of hot buttons on OBPlayer
- LA PL and Media are created and scheduled on OBServer
- All menus and configuration are now done 100% via http admin
- Improved logging to obremote.log including a view from menu tabs in http admin
- Support for JACK and PULSE streaming
- Version reporting to server
- Line in switching of Satellite feed over scheduled programming.
obplayer -d prints log messages to console
obplayer -H for running in headless operation (audio only)
obplayer -m minimize startup switch
Ver 0.4c1 (January 28, 2013)
- "bash obplayer" used to start
- “bash obplayer_loop" runs in an infinite loop. Restart via http admin, restarts in loop
- obplayer -h for help (command-line options).
- obplayer -f or obplayer --fullscreen. (obplayer_loop -f also works)
- Toggle full screen graphic mode on/off in the http admin.
- Full screen display cursor hides after 1 second of being in full screen, or 3 seconds after mouse move.
- Refinements in the remote settings UI -- browse/select folders instead of just typing in a path.
- Misc cleanup runaway script causing memory issue.
- Code improvements having to do with network stability.
- Restores the last known schedule database into memory.
- Fallback Media Mode. If nothing is playing and nothing is about to play, then play random from the fallback media directory.
Ver 0.4b1 (May 19, 2012)
- Install Script for server and Deb package for OBPlayer application
- Ebusker module to send electronic money using smart phones
- Smart phone audio recorder into OB Server library
- Ob2Ob communications to be able to swap media between installations
- Module support - An environment to create added functionality
- What's playing module metacasting engine to send info to RDS encoder and display on smartphone
- Text to Speech interactive tutorial
- Theme support - Create a skin for the OB Server
- Dead air email alerts from managing server
- Breaking up and prioritizing sync processes
- Create and modify genres and categories
- Mouse hover over schedule to display enhanced data
- Right click on media and playlists from sidebar > Advanced usage details
- Better workflow of user management
- Client Option to set message of the day on initial log in screen
- Personalized setting for media and playlist results per page
Ver 0.4a1 (September 7, 2011)
- Dynamic Segments and Play lists created from global search results
- Permissions Matrix to assign users and groups to media and time slots
- Uploading multiple content with enhanced metadata capture and bulk editing
- Scheduling content and permissions to the second
- Logging mode for OBPlayer in GMT
- OBPlayer Default PL and localized station ID
- Complete system API with FaceBook “What's Playing” plugin
- Emergency Broadcasting for all media with transponding reports
- Ajax optimization eliminates page refreshes, loads application into your browser
- Video and Image Preview Support and "to be approved" que with archiving
- HTML 5 eliminates the need for multimedia plugins and codec
- Internationalization so that foreign text can be saved ie: Sanskrit, Chinese, etc
- Centralized server administration of all devices operating in a cloud environment
- GTK Audio\Visual OBPlayer application runs on Ubuntu box at studio