Giter VIP home page Giter VIP logo

openbroadcaster / obplayer Goto Github PK

View Code? Open in Web Editor NEW
118.0 25.0 44.0 11.12 MB

:radio: OBPlayer Streaming Automation Playout with CAP EAS Alerting

Home Page: https://openbroadcaster.com

License: GNU Affero General Public License v3.0

Python 33.22% HTML 60.75% CSS 1.45% JavaScript 4.41% Shell 0.18%
streaming-audio streaming-video automation emergency eas radio-station playout community-radio openbroadcaster shoutcast

obplayer's People

Contributors

brookgagnon avatar geoplanet avatar radiorob avatar transistorfet avatar vincentthedev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obplayer's Issues

Unable to sync with server

Hi,

Just finished installing server and player. I'm running them both on the same Ubuntu machine, but I'm having issues getting them to sync together. Here's the most current log, with the last few error messages repeating. I've also included pictures of the settings on server and player. Thanks in advance for the help.

[Oct 21 2021 16:34:27 UTC] [error] Traceback (most recent call last):
File "/usr/share/openbroadcaster/player1/obplayer/obplayer/task.py", line 70, in run
self.try_run()
File "/usr/share/openbroadcaster/player1/obplayer/obplayer/scheduler/sync.py", line 134, in try_run
obplayer.Sync.version_update()
File "/usr/share/openbroadcaster/player1/obplayer/obplayer/scheduler/sync.py", line 314, in version_update
version = json.loads(curl_response.buffer)
File "/usr/lib/python3.8/json/init.py", line 357, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

[Oct 21 2021 16:34:27 UTC] [error] Unable to sync with server. (invalid id/password/ip combination)
[Oct 21 2021 16:34:27 UTC] [debug] starting thread
[Oct 21 2021 16:34:27 UTC] [sync] fetching show data from server
[Oct 21 2021 16:34:27 UTC] [debug] starting thread
[Oct 21 2021 16:34:27 UTC] [debug] starting thread
[Oct 21 2021 16:34:27 UTC] [debug] starting thread
[Oct 21 2021 16:34:27 UTC] [module] loading module streamer
[Oct 21 2021 16:34:27 UTC] [debug] starting thread
[Oct 21 2021 16:34:27 UTC] [error] Unable to sync with server. (invalid id/password/ip combination)
[Oct 21 2021 16:34:27 UTC] [scheduler] no show found.
[Oct 21 2021 16:34:27 UTC] [player] player has no requests to play; outputting silence
[Oct 21 2021 16:34:27 UTC] [player] now playing track ?: unknown - unknown (id: 0 file: duration: 3600s type: 'break' source: silence)
[Oct 21 2021 16:34:27 UTC] [debug] audio-break: stopped by execute request
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: audiosrc
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: capsfilter0
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: queue2-0
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: audioconvert0
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: lamemp3enc0
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: queue2-1
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: shout2send
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: audiosrc
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: capsfilter1
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: queue2-2
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: audioconvert1
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: lamemp3enc1
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: queue2-3
[Oct 21 2021 16:34:28 UTC] [debug] adding element to bin: shout2send
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET / HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/select2.min.css HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /common.css HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/jquery.min.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/select2.min.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /common.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/leaflet.css HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/leaflet.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/leaflet.draw.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /map.js HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /oblogo.svg HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /favicon.ico HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "POST /alerts/geocodes_list HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "POST /alerts/indigenous_languages HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "POST /strings HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/images/marker-icon.png HTTP/1.1" 200 -
[Oct 21 2021 16:34:29 UTC] [debug] 127.0.0.1 "GET /extras/images/marker-shadow.png HTTP/1.1" 200 -
[Oct 21 2021 16:35:27 UTC] [sync] fetching priority broadcast data from server
[Oct 21 2021 16:35:27 UTC] [error] Unable to sync with server. (invalid id/password/ip combination)
[Oct 21 2021 16:35:57 UTC] [scheduler] no show found.
[Oct 21 2021 16:36:27 UTC] [sync] fetching priority broadcast data from server
[Oct 21 2021 16:36:27 UTC] [sync] fetching show data from server
[Oct 21 2021 16:36:27 UTC] [error] Unable to sync with server. (invalid id/password/ip combination)
[Oct 21 2021 16:36:27 UTC] [error] Unable to sync with server. (invalid id/password/ip combination)
Screenshot from 2021-10-21 13-39-32
Screenshot from 2021-10-21 13-42-21

Black Screen Streaming to Icecast

Hi,

I have observer version 4 installed on Server A and obplayer version 5 installed on Server B. I wrote a script to install obplayer5 and the required dependencies because I'll eventually require lots of players on different VMs.

I'm able to stream audio without issue, however video streams only display a black screen while the audio plays. I've tried different types of video formats. The following is the debug log output from the player. Please let me know if I missed something, or if you have any suggestions.

[Feb 28 2018 16:13:30 UTC] [module] loading module player
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: audio-out-capsfilter
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: audio-out-level
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: audiosink
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-freeze
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-scale
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-convert
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-rate
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-alpha
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: image-pipeline-videomixer
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-depay
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-decode
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-convert
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-resample
[Feb 28 2018 16:13:30 UTC] [debug] adding element to bin: rtp-input-post-queue
[Feb 28 2018 16:13:30 UTC] [module] loading module httpadmin
[Feb 28 2018 16:13:30 UTC] [debug] starting thread <HTTPAdminThread>
[Feb 28 2018 16:13:30 UTC] [module] loading module testsignal
[Feb 28 2018 16:13:30 UTC] [module] loading module fallback
[Feb 28 2018 16:13:30 UTC] [admin] serving http(s) on port 23233
[Feb 28 2018 16:13:30 UTC] [module] loading module scheduler
[Feb 28 2018 16:13:30 UTC] [data] restoring database from file
[Feb 28 2018 16:13:30 UTC] [data] done restoring database
[Feb 28 2018 16:13:30 UTC] [data] resetting show, media, and priority data
[Feb 28 2018 16:13:30 UTC] [debug] starting thread <VersionUpdateThread>
[Feb 28 2018 16:13:30 UTC] [sync] sending player version to server: 5.0.0-20180119
[Feb 28 2018 16:13:30 UTC] [sync] fetching show data from server
[Feb 28 2018 16:13:31 UTC] [warning] server did not report a version number
[Feb 28 2018 16:13:31 UTC] [sync] writing data to database
[Feb 28 2018 16:13:32 UTC] [data] backup database to disk
[Feb 28 2018 16:13:32 UTC] [data] done backing up
[Feb 28 2018 16:13:32 UTC] [sync] fetching priority broadcast data from server
[Feb 28 2018 16:13:32 UTC] [debug] starting thread <SyncShowsThread>
[Feb 28 2018 16:13:32 UTC] [sync] fetching show data from server
[Feb 28 2018 16:13:32 UTC] [debug] starting thread <SyncEmergThread>
[Feb 28 2018 16:13:32 UTC] [debug] starting thread <SyncMediaThread>
[Feb 28 2018 16:13:32 UTC] [debug] starting thread <SyncPlaylogThread>
[Feb 28 2018 16:13:32 UTC] [module] loading module streamer
[Feb 28 2018 16:13:32 UTC] [debug] starting thread <PlayerThread>
[Feb 28 2018 16:13:32 UTC] [scheduler] loading show 0
[Feb 28 2018 16:13:32 UTC] [scheduler] starting at track number 1
[Feb 28 2018 16:13:32 UTC] [player] now playing track 2: Sample Video - MP4 Output (id: 22 file: 22-Sample_Video-MP4_Output.mov duration: 216.085s type: 'video' source: scheduler)
[Feb 28 2018 16:13:32 UTC] [debug] video-playbin: patching audio/visual
[Feb 28 2018 16:13:32 UTC] [debug] video-playbin: stopped by execute request
[Feb 28 2018 16:13:32 UTC] [player] resuming track at 186.33302187919617 seconds.
[Feb 28 2018 16:13:33 UTC] [debug] video-playbin: stopped
[Feb 28 2018 16:13:33 UTC] [debug] video-playbin: stopped
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: interaudiosink0
[Feb 28 2018 16:13:33 UTC] [debug] 10.0.0.1 "GET / HTTP/1.1" 200 -
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: interaudiosrc0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: capsfilter2
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-1
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: audioconvert0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: audioresample0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: capsfilter3
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: vorbisenc0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-2
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: intervideosrc0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-3
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: videorate0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: videoconvert0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: videoscale0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: videocapsfilter
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: theoraenc0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-4
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: oggmux0
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: queue2-5
[Feb 28 2018 16:13:33 UTC] [debug] adding element to bin: shout2send
[Feb 28 2018 16:13:33 UTC] [debug] starting icecast streamer
[Feb 28 2018 16:13:33 UTC] [debug] 10.0.0.1 "GET /common.css HTTP/1.1" 200 -
[Feb 28 2018 16:13:33 UTC] [sync] writing data to database
[Feb 28 2018 16:13:33 UTC] [debug] 10.0.0.1 "GET /extras/jquery.min.js HTTP/1.1" 200 -
[Feb 28 2018 16:13:34 UTC] [data] backup database to disk
[Feb 28 2018 16:13:34 UTC] [debug] 10.0.0.1 "GET /extras/leaflet.css HTTP/1.1" 200 -
[Feb 28 2018 16:13:34 UTC] [debug] 10.0.0.1 "GET /common.js HTTP/1.1" 200 -
[Feb 28 2018 16:13:34 UTC] [debug] 10.0.0.1 "GET /extras/leaflet.js HTTP/1.1" 200 -
[Feb 28 2018 16:13:34 UTC] [debug] 10.0.0.1 "GET /extras/leaflet.draw.js HTTP/1.1" 200 -
[Feb 28 2018 16:13:34 UTC] [data] done backing up
[Feb 28 2018 16:13:34 UTC] [debug] 10.0.0.1 "GET /map.js HTTP/1.1" 200 -
[Feb 28 2018 16:13:35 UTC] [debug] 10.0.0.1 "GET /extras/images/marker-shadow.png HTTP/1.1" 200 -
[Feb 28 2018 16:13:35 UTC] [debug] 10.0.0.1 "GET /oblogo.svg HTTP/1.1" 200 -
[Feb 28 2018 16:13:35 UTC] [debug] 10.0.0.1 "GET /extras/images/marker-icon.png HTTP/1.1" 200 -
[Feb 28 2018 16:13:36 UTC] [debug] 10.0.0.1 "POST /strings HTTP/1.1" 200 -
[Feb 28 2018 16:13:36 UTC] [debug] 10.0.0.1 "GET /favicon.ico HTTP/1.1" 200 -
[Feb 28 2018 16:14:02 UTC] [debug] video-playbin: stopped by stop request
[Feb 28 2018 16:14:03 UTC] [scheduler] loading show 0
[Feb 28 2018 16:14:03 UTC] [scheduler] starting at track number 0
[Feb 28 2018 16:14:03 UTC] [player] now playing track 1: Sample Video - Man Playing with Kids (id: 23 file: 23-Sample_Video-Man_Playing_with_Kids.mov duration: 16.267s type: 'video' source: scheduler)
[Feb 28 2018 16:14:03 UTC] [debug] video-playbin: stopped by execute request
[Feb 28 2018 16:14:03 UTC] [player] resuming track at 0.28513503074645996 seconds

Missing Audio in CAP Alerts

I'm using the current dev branch because AWS isn't working in the main on. It seems to cut off the first 2.5 to 3 seconds of the alert tone as well as the first 2-3 seconds of the text to speech and I am not sure why.

Unicode Error

Hi
First of all thanks for the code, good job.
I found a minor bug in media playing with accents in OBPlayer
Line 74 in obplayer/fallback/fallback_player.py
shoud be
for (dirname, dirnames, filenames) in os.walk( unicode(obplayer.Config.setting('fallback_media'))):
-----------
instead of
for (dirname, dirnames, filenames) in os.walk( obplayer.Config.setting('fallback_media')):

Stream obplayer to Icecast

I have successfully installed observer and obplayer and connected them (obplayer is able to fetch media content from the server), now I'd like to stream the media content to an instance of Icecast which I've installed on an Ubuntu 16.04 server: http://stream.otowo.me:8000/ - Obplayer and Icecast are installed on the same server.

I've configured obplayer with the server's details (see below)
screenshot from 2018-01-17 19-25-30

Based on the above, I was expecting to see a new mountpoint "stream" listed at Icecast but this isn't the case. See the logs from obplayer below

root@icecast:~/obplayer-master# bash obplayer_loop -H -d
[Jan 17 2018 18:29:17 UTC] [module] loading module player
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: audiocapsfilter
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: level
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: audiosink
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: imagefreeze
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: image_scale
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: image_convert
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: image_rate
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: image_capsfilter
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: alpha
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: videomixer
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: queue2-1
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: rtpopusdepay0
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: opusdec0
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: audioconvert1
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: audioresample0
[Jan 17 2018 18:29:17 UTC] [debug] adding element to bin: queue2-2
[Jan 17 2018 18:29:17 UTC] [module] loading module httpadmin
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 17 2018 18:29:17 UTC] [module] loading module testsignal
[Jan 17 2018 18:29:17 UTC] [module] loading module fallback
[Jan 17 2018 18:29:17 UTC] [admin] serving http(s) on port 23233
[Jan 17 2018 18:29:17 UTC] [module] loading module scheduler
[Jan 17 2018 18:29:17 UTC] [data] restoring database from file
[Jan 17 2018 18:29:17 UTC] [data] done restoring database
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 17 2018 18:29:17 UTC] [sync] sending player version to server: 4.1.2-20160803
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <SyncShowsThread>
[Jan 17 2018 18:29:17 UTC] [sync] fetching show data from server
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <SyncEmergThread>
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <SyncMediaThread>
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 17 2018 18:29:17 UTC] [debug] starting thread <PlayerThread>
[Jan 17 2018 18:29:17 UTC] [scheduler] loading show 0
[Jan 17 2018 18:29:17 UTC] [scheduler] starting at track number 0
[Jan 17 2018 18:29:17 UTC] [player] now playing track 1: Drake - From Time (id: 1 file: 1-Drake-From_Time.mp3 duration: 322.311s type: 'audio' source: scheduler)
[Jan 17 2018 18:29:17 UTC] [debug] audio-playbin: patching audio/visual
AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
[Jan 17 2018 18:29:17 UTC] [warning] gstreamer warning: gst-resource-error-quark: Failed to connect: Connection refused (1), pulsesink.c(615): gst_pulseringbuffer_open_device (): /GstPulseSink:audiosink-actual-sink-pulse, 1
[Jan 17 2018 18:29:17 UTC] [player] resuming track at 220.945866108 seconds.
[Jan 17 2018 18:29:18 UTC] [warning] server did not report a version number
[Jan 17 2018 18:29:18 UTC] [sync] writing data to database
[Jan 17 2018 18:29:18 UTC] [data] backup database to disk
[Jan 17 2018 18:29:18 UTC] [data] done backing up
[Jan 17 2018 18:30:17 UTC] [sync] fetching priority broadcast data from server

Player "No Show Found"

Less and Less this reveals itself

An issue where "no show found" to play schedule on player. Usually fixes itself top of hour.

Reset and clear through DB reset in OBPlayer dashboard

Ad Manager: Unable to see changes made

Mac Problem??

using eldorado

Unable to see changes made on ad manager using latest Chrome browser on my iMac. See italics

Chrome on my Mac: does not display items even though I can add them (Can't see them but they are there)
Safari on my Mac: Shows all items and can add and delete.
Firefox on my Mac: Shows all Items and can add and delete

Tried my account on a Dell laptop running xubuntu 16.04
Chromium Browser: Able to fully use Ad Manager
Firefox Browser: Able to fully use Ad Manager

FYI have no access to another Mac to see if this is reproducible.

Internationalization

Done - Multilingual Translation framework for server and player including menus, help and system messages using strings.

Incompatible versions

Some way of detecting incompatible versions. The player should halt with an error if the server version isn't high enough.

High CPU activity

Hi again,
Not really a code-bug but a problem for a low-end htpc, the gstreamer-libs stuff make the system go high (CPU 60% usage in a static image splash) so may be a temporal, until the improve of their libraries, solution bypass for simple pictures, not video of course,its to stop the visual in aprox.271 line in control.py
if req['media_class']==u'visual': #+only visual! not videos, music...
request_pipe.start() #+ Paint-it
time.sleep(1) #+ wait...)
request_pipe.stop() #+ stop refresh)
else:
request_pipe.start() #original, only one code

By the way is the the 'testing branch available', because of the another annoying bug
#16

Thank-you!

LA Broken default Playlist

Default playlist when playing in non scheduled slots ( ie: blank spots in the schedule) will only play 2-4 songs before starting new playlist. If viewed in LA you will see these 2-4 songs play then playlist starts from beginning.

Playlist never plays through to the end. always stops after a few tracks and starts new instance of playlist. Photos show partial playlists with endtimes. I have also included a playlog for this.

Default Playlist screenshot 1
Default Playlist screenshot 2
Default Playlist screenshot 3
Default Playlist screenshot 4
2021.07.25.obplayer.log
.

player saving wrong info from remote mode

I've come across this several times. I had to edit the sqlite DB to manually remove. Trying to save, gives error saying the path is wrong, pointing to a non existent path.
Rob

Set/reset the DTR pin state upon startup

Required to resolve an issue that causes dead radio air each time our radio station (CKUT 90.3 FM) experiences a power outage. Each time our computer running OBS reboots, the DTR pin state is such that the connected switch to which OBS sends alerts selects the audio channel for alert broadcasts, instead of the audio channel that plays our broadcast. Usually nothing plays on the emergency alert channel, so this means we broadcast dead air and someone needs to go in to the station to select the proper channel. There is no way to manipulate the DTR pin state remotely even though the software can manipulate the DTR pin state.

This is true for the Henry Engineering Stereoswitch (supports GPIO) that we use; I am unsure about other switches.

It would be efficient for our setup if there was an advanced option in the OBS settings to set/reset the DTR pin state upon startup. At the moment we have edited the source code to inject a dummy test alert upon startup - this always ends with the DTR pin state such that the correct channel is selected on the switch.

No audio output

Using the USB2XLR adapter to pass through audio from source, but can't hear any output. The Test signal produces output, as do the test Alert messages, but nothing from the line in?

I don't see relay closure triggers or traffic logging

Hello,

Having looked at all of the documentation online I don't see traffic logging to reconcile invoices for advertisers..

It would be required to be able to use for a commercial radio station.

Also, what about using a GPI serial device to trigger local ad blocks during a live satellite program?

From the online documentation it seems Open Broadcaster is only made for non-commercial stations that don't ever play live satellite programming that has local ad break signaling.

Radio DJ has both of those things, and is what we currently use because it's easy enough for our dumb DJs that are baffled by real automation like AudioVault or Simian.

Am I missing something, or is there actually a way to output as-run logs for just 1 advertiser, or even just for all advertisers so we can invoice them fairly?

What about triggering short playlists based on relay closures sensed by something like a Broadcast Tools GPI-16?

I am hoping the online documentation is only lacking these details, and that they are already implemented.

Thanks,
AM

Serial Port Bug - not always asserting DTR

In develop branchj:
On the first alert that went out, the serial port did not assert itself
to trigger the relay. Note that on the first alert it does a:

[Mar 20 2016 21:33:01 UTC] [alerts] resetting DTR on serial port
/dev/ttyS0

But there is no initial asserting of the DTR before that.

The second alert - which played as it should - the serial port did
assert before the alert
[Mar 20 2016 22:13:07 UTC] [alerts] asserted DTR on serial port
/dev/ttyS0
...
[Mar 20 2016 22:14:25 UTC] [alerts] resetting DTR on serial port
/dev/ttyS0

USB stick to unlock the LIVE Touch screen

When running in KIOSK mode, when user has scheduled LA show running everything is all automated. Screen active but locked. User inserts USB (or NFC Authentication) checks user is valid and that it is their show running, allowing them to work with elements to start/stop audio.
Associate certificates with user permissions, so Emergency User's USB key can unlock any screen

Does nobody find SSL useful for remote access?

SSL simply does not work. I have valid certificates and I cannot find any documentation on this and a response from support said its the only 'feature' that does nothing.

Can we get an ETA on this? This is a deal breaker for this software for me... looks like it back to clunky azuracast.

Adding Private flagged media to Playlist

Even if you are an admin, you can't take a private media item and put it in a playlist owned by someone else.

This is a hassle, Admin users create PL and when trying to Save, get message "can't add private media" There are no indicators what is marked as Private media

The reason is that it would create a mess.

For example, John uploads some private media.

Sally (basic user) creates a playlist.

Jake (admin user) decides to add some of John's private media to Sally's playlist.

Sally goes to edit the playlist and then... what? Sally doesn't have access to even know about John's private media, let alone use it in a playlist.

Now if Jake wants to add private media to his own playlist, then that solves the problem. That is, until Jake loses his admin privileges. Now Jake has a playlist with John's private media and he doesn't have permission to access it. Same issue.

So the rule is... you can't add private media to a playlist other than playlists owned by the same user as the media.

Red Error [alerts] message on startup

Only happens on restart of application. Confirmed other users getting this (erroneous?) error message. We shouldn't have anything RED unless a true error. Why is this always red and only at the beginning?

UTC] [alerts] connected to alert broadcaster at streaming1.naad-adna.pelmorex.com:8080

gstreamer error when trying to connect to IceCast

OpenBoradcaster is a neat thing, I installed it but I can't seem to connect it to a IceCast server.
Instead I keep getting these errors.

(I've typed the IceCast server details correctly, and I know I can connect (tested with BUTT))

The following is a log of what happened.
(Note: I'm a beginner with Linux and Ubuntu stuff, not that experienced to know much of the inner workings)

/bin/sh: 1: git: not found
[Oct 12 2021 01:10:19 UTC] [module] loading module player
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audio-out-capsfilter
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audio-out-level
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: volumesink
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audio-out-auto-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: audiosink
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: image-pipeline-freeze
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: image-pipeline-scale
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: image-pipeline-convert
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: image-pipeline-rate
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: line-input-src
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: line-input-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: line-input-convert
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-depay
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-decode
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-convert
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-resample
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: rtp-input-post-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-pre-queue
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-depay
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-decode
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-convert
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-resample
[Oct 12 2021 01:10:20 UTC] [debug] adding element to bin: remote_audio-post-queue
[Oct 12 2021 01:10:21 UTC] [module] loading module httpadmin
[Oct 12 2021 01:10:21 UTC] [debug] starting thread
[Oct 12 2021 01:10:21 UTC] [module] loading module testsignal
[Oct 12 2021 01:10:21 UTC] [admin] serving http(s) on port 23233
[Oct 12 2021 01:10:21 UTC] [module] loading module alerts
[Oct 12 2021 01:10:23 UTC] [debug] starting thread
[Oct 12 2021 01:10:23 UTC] [debug] starting thread
[Oct 12 2021 01:10:23 UTC] [module] loading module fallback
[Oct 12 2021 01:10:23 UTC] [alerts] connected to alert broadcaster at streaming1.naad-adna.pelmorex.com:8080
[Oct 12 2021 01:10:34 UTC] [module] loading module streamer
[Oct 12 2021 01:10:34 UTC] [debug] starting thread
[Oct 12 2021 01:10:34 UTC] [player] now playing track 1: unknown - Aaron Kenny - Saving the World.mp3 (id: 0 file: Aaron Kenny - Saving the World.mp3 duration: 115.173877551s type: 'audio' source: fallback)
[Oct 12 2021 01:10:34 UTC] [debug] audio-playbin: patching audio/visual
[Oct 12 2021 01:10:34 UTC] [debug] audio-playbin: stopped by execute request
[Oct 12 2021 01:10:34 UTC] [player] resuming track at 0.24785971641540527 seconds.
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: audiosrc
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: capsfilter1
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: queue2-0
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: audioconvert0
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: lamemp3enc0
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: queue2-1
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: shout2send
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: audiosrc
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: capsfilter2
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: queue2-2
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: audioconvert1
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: lamemp3enc1
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: queue2-3
[Oct 12 2021 01:10:35 UTC] [debug] adding element to bin: shout2send
[Oct 12 2021 01:10:35 UTC] [debug] starting icecast_b3a4383b756547d886ed9ab17de48f2f streamer
[Oct 12 2021 01:10:35 UTC] [error] gstreamer error: gst-resource-error-quark: Could not connect to server (6), gstshout2.c(620): gst_shout2send_connect (): /GstPipeline:pipeline0/GstShout2send:shout2send:
shout_open() failed: err=Please retry current operation., 6
[Oct 12 2021 01:10:35 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline
[Oct 12 2021 01:10:35 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data stream error. (1), gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstPulseSrc:audiosrc-actual-src-puls:
streaming stopped, reason error (-5), 1
[Oct 12 2021 01:10:35 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline
[Oct 12 2021 01:10:39 UTC] [error] The request to update the now playing track fai'ld! This mostly likly means your password for your stream is wrong, or that your server is having issues.
[Oct 12 2021 01:10:41 UTC] [error] gstreamer error: gst-resource-error-quark: Could not connect to server (6), gstshout2.c(620): gst_shout2send_connect (): /GstPipeline:pipeline0/GstShout2send:shout2send:
shout_open() failed: err=Please retry current operation., 6
[Oct 12 2021 01:10:41 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline
[Oct 12 2021 01:10:41 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data stream error. (1), gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstPulseSrc:audiosrc-actual-src-puls:
streaming stopped, reason error (-5), 1
[Oct 12 2021 01:10:41 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline
[Oct 12 2021 01:10:46 UTC] [error] gstreamer error: gst-resource-error-quark: Could not connect to server (6), gstshout2.c(620): gst_shout2send_connect (): /GstPipeline:pipeline0/GstShout2send:shout2send:
shout_open() failed: err=Please retry current operation., 6
[Oct 12 2021 01:10:46 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline
[Oct 12 2021 01:10:46 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data stream error. (1), gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstPulseSrc:audiosrc-actual-src-puls:
streaming stopped, reason error (-5), 1
[Oct 12 2021 01:10:46 UTC] [info] attempting to restart icecast_b3a4383b756547d886ed9ab17de48f2f pipeline

Fedora31 and Ubuntu 20.04

python3 obplayer.py -d
[Jun 04 2020 18:01:10 UTC] [module] loading module player
[Jun 04 2020 18:01:10 UTC] [debug] adding element to bin: audio-out-capsfilter
[Jun 04 2020 18:01:10 UTC] [debug] adding element to bin: audio-out-level
[Jun 04 2020 18:01:10 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Jun 04 2020 18:01:10 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Jun 04 2020 18:01:10 UTC] [debug] adding element to bin: audiosink
[Jun 04 2020 18:01:10 UTC] [error] exception occurred in main thead. Terminating...
[Jun 04 2020 18:01:10 UTC] [error] Traceback (most recent call last):
File "/home/mikee/Projects/obplayer/obplayer/main.py", line 86, in start
self.load_module('player')
File "/home/mikee/Projects/obplayer/obplayer/main.py", line 207, in load_module
exec('import obplayer.%s; obplayer.%s.init()' % (name, name))
File "", line 1, in
File "/home/mikee/Projects/obplayer/obplayer/player/init.py", line 31, in init
obplayer.Player = ObPlayer()
File "/home/mikee/Projects/obplayer/obplayer/player/control.py", line 61, in init
self.player_init()
File "/home/mikee/Projects/obplayer/obplayer/player/control.py", line 82, in player_init
self.pipes['testsignal'] = pipes.ObTestSignalPipeline('test-signal', self)
File "/home/mikee/Projects/obplayer/obplayer/player/pipes/testsignal.py", line 43, in init
self.pipeline = Gst.Pipeline(name)
TypeError: GObject.init() takes exactly 0 arguments (1 given)

Password revealed in export settings

Streaming>Shoutcast
It is saving this in exported settings, Even when a different audio source is selected.
See below example
audio_in_alsa_device:default
audio_in_enable:1
audio_in_jack_name:
audio_in_mode:pulse
audio_out_alsa_device:default
audio_out_jack_name:
audio_out_mode:pulse
audio_out_shout2send_ip:127.0.0.1
audio_out_shout2send_mount:stream
audio_out_shout2send_password:hackme
audio_out_shout2send_port:8000

LA not switching to Fall Back Media

When LA gets to the end of a scheduled LA show and there is nothing else scheduled, it should sense it is stuck playing nothing and should kick into a DPL (if there is one) and if no DPL start playing local Fall Back Media. Presently at end of LA, it gets stuck, screen blinks\refreshes, dead air.
When LA is stuck, pressing > PLAY starts the fall back media.

No video output to YouTube stream

Audio works fine, but no visual using youtube streamer at any output mode/resolution.
Maybe need to be passing some config parameters to GStreamer?

Log:

[debug] starting youtube streamer
[debug] starting thread <PlayerThread>
[warning] gstreamer warning: gst-core-error-quark: GStreamer error: clock problem. (13), gstaggregator.c(1780): gst_aggregator_query_latency_unlocked (): /GstPipeline:pipeline0/GstFlvMux:flvmux0: Impossible to configure latency: max 0:00:00.000000000 < min 0:00:00.100000000. Add queues or other buffering elements., 13
[warning] gstreamer warning: gst-core-error-quark: GStreamer error: clock problem. (13), gstaggregator.c(1780): gst_aggregator_query_latency_unlocked (): /GstPipeline:pipeline0/GstFlvMux:flvmux0: Impossible to configure latency: max 0:00:00.000000000 < min 0:00:00.100000000. Add queues or other buffering elements., 13
[warning] gstreamer warning: gst-core-error-quark: GStreamer error: clock problem. (13), gstaggregator.c(1780): gst_aggregator_query_latency_unlocked (): /GstPipeline:pipeline0/GstFlvMux:flvmux0: Impossible to configure latency: max 0:00:00.000000000 < min 0:00:00.100000000. Add queues or other buffering elements., 13
[warning] gstreamer warning: gst-core-error-quark: GStreamer error: clock problem. (13), gstaggregator.c(1780): gst_aggregator_query_latency_unlocked (): /GstPipeline:pipeline0/GstFlvMux:flvmux0: Impossible to configure latency: max 0:00:00.000000000 < min 0:00:00.100000000. Add queues or other buffering elements., 13
[player] now playing track 1: unknown - VideoName.mp4 (id: 0 file: VideoName.mp4 duration: 220.352s type: 'video' source: fallback)
[debug] video-playbin: patching audio/visual
[debug] video-playbin: stopped by execute request
[warning] gstreamer warning: gst-core-error-quark: Pipeline construction is invalid, please add queues. (13), gstbasesink.c(1209): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstRTMPSink:rtmpsink0: Not enough buffering available for the processing deadline of 0:00:00.020000000, add enough queues to buffer 0:00:00.020000000 additional data. Shortening processing latency to 0:00:00.000000000., 13
[player] resuming track at 0.602036714553833 seconds.
[debug] video-playbin: stopped
[error] gstreamer failed waiting for state change to <enum GST_STATE_VOID_PENDING of type Gst.State>
[debug] video-playbin: stopped 

Connect obplayer to observer

Thanks for a great streaming solution. I've successfully installed observer and obplayer. I'm currently running obplayer in headless mode and can access it at IP:23233. I don't know how to connect the player to stream media from the server, I couldn't find any documentation on this. Kindly guide me to connect the player to the server.

Player "No Show Found"

From @radiorob on May 20, 2016 20:34

Less and Less this reveals itself

An issue where "no show found" to play schedule on player. Usually fixes itself top of hour.

Reset and clear through DB reset in OBPlayer dashboard

Copied from original issue: #10

Audio stopped

Any reason why the station's audio stopped at 2 am and several test alerts in a row played after that spaced out by several minutes of silence?

Server - New Player Creation Fails

Not creating new password

The work around must enter and save, password twice when provisioning and adding New Player for first time authentication

Output Bitrate Increase & Autostart

I have obplayer installed on an Ubuntu 16.04 LTS server. Currently, I start obplayer by changing to the directory where it's installed and running bash obplayer_loop -d -r. I would like to automate its startup and was wondering if there's a standard way of doing, or if you have any init scripts to share?

Secondly, On the streaming tab, the Icecast Output bitrate is currently set to "Variable", is it possible to increase this past the current maximum setting of 320kbps?

LA media plays beyond show end time

Live Assist: when media is playing whose duration extends beyond the scheduled end time of the show, the show does not end and the media continues playing beyond show end (next show on schedule does not start on time, or next show is overdubbed ie not heard until the LA media finishes playing), causing the next shows beginning not to be heard (ie join regular programming already in progress). Uncertain but LA screen may show 'override' and sometimes causes the next show to not display (override, no show playing).

Screen Elements - 3 Panel Zone Layout

Done - RED pop up on screen for intrusive message from NAAD
Done - Display Metadata of image as overlay on screen
Done - Display Metadata of xml weather info as overlay on screen.
Done - Format emergency message text and description to a full screen slide, play accompanying audio TTS audio
Done - Scrolling ticker overlay on screen from Pelmorex RSS
TODO- New Feature Request - Zone Layout Template switcher. Switch Zone overlay to Full screen in SD\HD format when a video plays resume zone layout panel when finished. Possible now to adjust video settings in player.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.