Version 5 (May 2017)
Rewrite of Player (Converted all references to Python3) Updated Server to support PHP7
- 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 ontop 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
- 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
- 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
- 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
- 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
- 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 ~/.openbroadcaster/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 fullscreen 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)
- AdManager 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 the remote.
- “bash obplayer_loop" runs obremote 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 fullscreen graphic mode on/off in the http admin.
- Fullscreen 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