Closed ralphotowo closed 6 years ago
Thanks, I'm glad you're finding it useful
Ah, that appears to be missing from the wiki. You must first create a player device on the server in the admin menu. You will enter a password for the device, and an ID number will be assigned to it. You can then enter the ID number, password, and server URL into the Sync tab on the player's web interface. The URL will be of the form http://server.name.or.ip/remote.php
If you need any more help, just let me know
HI @transistorfet - Thanks for the quick response.
I created a new player on the server. Accessing remote.php didn't work, I clicked on the admin menu item below and selected 'Player manager'. I left the IP address field blank as I wasn't sure which IP address goes there. Should this be the player's?
On the player dashboard, there's no sync tab, even though I have that enabled from Advanced Settings area. See attached screen shots. Please advise.
Thanks for the help.
I restarted the player after making those changes and the streaming tab was visible. I configured the IceCast server with details I used in the server configuration and couldn't get it to stream, so I restarted and now I have errors. See output of bash obplayer_loop -H -d
root@multiserver1:/opt/obplayer-master# bash obplayer_loop -H -d
[Jan 11 2018 19:55:01 UTC] [module] loading module player
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: audiocapsfilter
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: level
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: audiosink
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: imagefreeze
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: image_scale
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: image_convert
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: image_rate
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: image_capsfilter
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: alpha
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: videomixer
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: queue2-1
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: rtpopusdepay0
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: opusdec0
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: audioconvert1
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: audioresample0
[Jan 11 2018 19:55:01 UTC] [debug] adding element to bin: queue2-2
[Jan 11 2018 19:55:01 UTC] [module] loading module httpadmin
[Jan 11 2018 19:55:01 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 11 2018 19:55:01 UTC] [module] loading module testsignal
[Jan 11 2018 19:55:01 UTC] [module] loading module alerts
[Jan 11 2018 19:55:01 UTC] [admin] serving http(s) on port 23233
[Jan 11 2018 19:55:01 UTC] [alerts] initializing serial trigger on port /dev/ttyS0
[Jan 11 2018 19:55:01 UTC] [debug] starting thread <ObAlertProcessor>
[Jan 11 2018 19:55:01 UTC] [debug] starting thread <ObAlertFetcher>
[Jan 11 2018 19:55:01 UTC] [module] loading module fallback
[Jan 11 2018 19:55:01 UTC] [module] loading module streamer
[Jan 11 2018 19:55:01 UTC] [debug] starting streamer
[Jan 11 2018 19:55:01 UTC] [error] exception occurred in main thead. Terminating...
[Jan 11 2018 19:55:01 UTC] [error] Traceback (most recent call last):
File "/opt/obplayer-master/obplayer/main.py", line 95, in start
self.load_module('streamer')
File "/opt/obplayer-master/obplayer/main.py", line 160, in load_module
exec('import obplayer.%s; obplayer.%s.init()' % (name, name))
File "<string>", line 1, in <module>
File "/opt/obplayer-master/obplayer/streamer/__init__.py", line 36, in init
from .rtsp import ObRTSPStreamer
File "/opt/obplayer-master/obplayer/streamer/rtsp.py", line 33, in <module>
gi.require_version('GstRtspServer', '1.0')
File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 79, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace GstRtspServer not available
[Jan 11 2018 19:55:01 UTC] [debug] shutting down player...
[Jan 11 2018 19:55:01 UTC] [alerts] closing socket 192.168.0.60:35320
[Jan 11 2018 19:55:01 UTC] [debug] stopping thread <ObAlertProcessor>
[Jan 11 2018 19:55:01 UTC] [error] exception occurred in thread ObAlertFetcher:
[Jan 11 2018 19:55:01 UTC] [error] Traceback (most recent call last):
File "/opt/obplayer-master/obplayer/task.py", line 70, in run
self.try_run()
File "/opt/obplayer-master/obplayer/alerts/processor.py", line 97, in try_run
success = self.connect()
File "/opt/obplayer-master/obplayer/alerts/processor.py", line 157, in connect
self.socket.close()
AttributeError: 'NoneType' object has no attribute 'close'
[Jan 11 2018 19:55:02 UTC] [debug] thread <ObAlertFetcher> is daemon, skipping
[Jan 11 2018 19:55:02 UTC] [debug] thread <ObAlertProcessor> is daemon, skipping
[Jan 11 2018 19:55:02 UTC] [debug] thread <HTTPAdminThread> has joined successfully
This continues in a loop. I've tried downloading and using a new zip, same error.
It looks like the RTSP server option is enabled on the streaming tab, but you don't have the correct packages installed for that option. You can either disable the RTSP server (which is not needed for icecast streaming), or you can install the debian/ubuntu packages gir1.2-gst-rtsp-server-1.0 and gstreamer-1.0-rtsp. A full description of the dependencies can be found at https://wiki.openbroadcaster.com/Develop_Dependencies
In future if you're getting errors, you can delete the configuration directory ~/.openbroadcaster or just the settings.db file within that directory to reset the configuration. Reinstalling from a zip will not override the configuration.
Yes, the ip field on the server is just an extra bit of security. You can enter the IP of the player computer and the server will only allow that ip to connect and sync. Leaving it blank will simply prevent that extra security check.
I assume you're able to see the Sync/Media tab now? Unfortunately the player process must be restarted whenever configuration changes are made before those changes will take effect, including for the tabs.
Thanks for the help @transistorfet, I'm making progress. Yes, I can see the Sync/Media tab now, do I also have to configure this section in addition to the IceCast settings? The server was installed using the bash script, I've uploaded two media items and set them as public items.
After installing the rtsp packages, the application launched successfully and I can use the HTTP player dashboard again. Please view the attached screenshots and let me know if this is in order.
I want to view and play the items that were uploaded to the server. With everything configured correctly, which of the tabs will have the media items?
Yes the server media and the icecast streamer are two completely independent systems. The player will normally play its output to the local audio system only, instead of streaming it to icecast. The icecast streamer can be configured to take that final output and send it to icecast, but it only operates on the final audio signal.
In the Sync/Media tab, you must enable scheduler/sync, enter the device id and password as recorded on the server, and enter a sync URL which will look like http://serveraddress/remote.php. That URL cannot be accessed through a browser.
Once you've done that, if there are no scheduled shows or a default playlist set for that player, then the player will still be playing the fallback media content. You can create a playlist on the server, and in the player manager on the server, there is a field labeled Default Playlist, where you can drag and drop your newly created playlist to. Then, when a show is not scheduled, it will play that default playlist on the player.
@transistorfet Thank you for your responses. I configured the server/player according to your instructions. I also created a default playlist for the player and it seems the player has been able to successfully connect to, authenticate and download the media items I uploaded to the server (.mp3 and .mp4 files.) I was running obplayer in debug mode bash obplayer_loop -H -d
and this was the output:
root@multiserver1:/opt/master# bash obplayer_loop -H -d
[Jan 14 2018 16:47:18 UTC] [module] loading module player
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: audiocapsfilter
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: level
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: audiosink
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: imagefreeze
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: image_scale
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: image_convert
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: image_rate
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: image_capsfilter
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: alpha
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: videomixer
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: queue2-1
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: rtpopusdepay0
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: opusdec0
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: audioconvert1
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: audioresample0
[Jan 14 2018 16:47:18 UTC] [debug] adding element to bin: queue2-2
[Jan 14 2018 16:47:18 UTC] [module] loading module httpadmin
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 14 2018 16:47:18 UTC] [module] loading module testsignal
[Jan 14 2018 16:47:18 UTC] [module] loading module alerts
[Jan 14 2018 16:47:18 UTC] [admin] serving http(s) on port 23233
[Jan 14 2018 16:47:18 UTC] [alerts] initializing serial trigger on port /dev/ttyS0
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <ObAlertProcessor>
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <ObAlertFetcher>
[Jan 14 2018 16:47:18 UTC] [module] loading module fallback
[Jan 14 2018 16:47:18 UTC] [module] loading module scheduler
[Jan 14 2018 16:47:18 UTC] [data] restoring database from file
[Jan 14 2018 16:47:18 UTC] [data] done restoring database
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <SyncShowsThread>
[Jan 14 2018 16:47:18 UTC] [sync] sending player version to server: 4.1.2-20160803
[Jan 14 2018 16:47:18 UTC] [sync] fetching show data from server
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <SyncEmergThread>
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <SyncMediaThread>
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 14 2018 16:47:18 UTC] [module] loading module streamer
[Jan 14 2018 16:47:18 UTC] [debug] starting streamer
[Jan 14 2018 16:47:18 UTC] [debug] starting thread <PlayerThread>
[Jan 14 2018 16:47:18 UTC] [alerts] connected to alert broadcaster at streaming1.naad-adna.pelmorex.com:8080
[Jan 14 2018 16:47:18 UTC] [scheduler] no show found.
[Jan 14 2018 16:47:18 UTC] [player] now playing track ?: unknown - unknown (id: 0 file: duration: 5s type: 'break' source: testsignal)
[Jan 14 2018 16:47:18 UTC] [warning] server did not report a version number
[Jan 14 2018 16:47:23 UTC] [scheduler] no show found.
[Jan 14 2018 16:47:23 UTC] [player] now playing track ?: unknown - unknown (id: 0 file: duration: 31536000s type: 'testsignal' source: testsignal)
*** We didn't requeue 'audio'
[Jan 14 2018 16:47:26 UTC] [sync] writing data to database
[Jan 14 2018 16:47:26 UTC] [data] backup database to disk
[Jan 14 2018 16:47:26 UTC] [data] done backing up
[Jan 14 2018 16:47:28 UTC] [sync download] downloading 2-Test_video_man-Test_video_1.mov
[Jan 14 2018 16:47:30 UTC] [sync download] downloading 1-Drake-From_Time.mp3
[Jan 14 2018 16:48:06 UTC] [debug] received alert 2CD600172D434ABE86183E8158710755 (2018-01-14T16:47:59-00:00)
[Jan 14 2018 16:48:06 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.2270640627.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_01_14_00_00Iurn_oid_2.49.0.1.124.2270640627.2018.xml
[Jan 14 2018 16:48:07 UTC] [debug] fetching alert NAADS-CA-AB-AEA1-4789 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T09_00_02_07_00INAADS_CA_AB_AEA1_4789.xml
[Jan 14 2018 16:48:07 UTC] [alerts] fetching alert resource http://www.emergencyalert.alberta.ca/aeapublic/audio/2018/4883-0.mp3
[Jan 14 2018 16:48:08 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.0682874237.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_02_14_00_00Iurn_oid_2.49.0.1.124.0682874237.2018.xml
[Jan 14 2018 16:48:09 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.2056424840.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_07_09_00_00Iurn_oid_2.49.0.1.124.2056424840.2018.xml
[Jan 14 2018 16:48:09 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.1286618255.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_07_59_00_00Iurn_oid_2.49.0.1.124.1286618255.2018.xml
[Jan 14 2018 16:48:10 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.4250642234.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_08_44_00_00Iurn_oid_2.49.0.1.124.4250642234.2018.xml
[Jan 14 2018 16:48:10 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.1888183420.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_09_25_00_00Iurn_oid_2.49.0.1.124.1888183420.2018.xml
[Jan 14 2018 16:48:11 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.1015439395.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_09_44_00_00Iurn_oid_2.49.0.1.124.1015439395.2018.xml
[Jan 14 2018 16:48:11 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.3633223850.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_08_59_00_00Iurn_oid_2.49.0.1.124.3633223850.2018.xml
[Jan 14 2018 16:48:12 UTC] [debug] fetching alert urn:oid:2.49.0.1.124.1856486525.2018 using url http://capcp1.naad-adna.pelmorex.com/2018-01-14/2018_01_14T16_10_25_00_00Iurn_oid_2.49.0.1.124.1856486525.2018.xml
[Jan 14 2018 16:48:18 UTC] [sync] fetching priority broadcast data from server
[Jan 14 2018 16:48:29 UTC] [debug] 8.8.8.0
8.8.8.0 "GET /logs.html HTTP/1.1" 200 -
[Jan 14 2018 16:48:34 UTC] [debug] 8.8.8.0
8.8.8.0 "GET /common.css HTTP/1.1" 200 -
[Jan 14 2018 16:48:37 UTC] [debug] 8.8.8.0
8.8.8.0 "GET /extras/jquery.min.js HTTP/1.1" 200 -
[Jan 14 2018 16:48:37 UTC] [debug] 8.8.8.0
8.8.8.0 "GET /common.js HTTP/1.1" 200 -
[Jan 14 2018 16:48:38 UTC] [debug] 8.8.8.0
8.8.8.0 "POST /strings HTTP/1.1" 200 -
[Jan 14 2018 16:48:38 UTC] [debug] 8.8.8.0
8.8.8.0 "GET /favicon.ico HTTP/1.1" 200 -
[Jan 14 2018 16:48:53 UTC] [scheduler] no show found.
[Jan 14 2018 16:49:06 UTC] [debug] received alert B066F168D16E482C9572ED9431C1EE0F (2018-01-14T16:48:59-00:00)
[Jan 14 2018 16:49:18 UTC] [sync] fetching priority broadcast data from server
[Jan 14 2018 16:49:26 UTC] [sync] fetching show data from server
[Jan 14 2018 16:49:26 UTC] [sync] writing data to database
[Jan 14 2018 16:49:26 UTC] [data] backup database to disk
[Jan 14 2018 16:49:26 UTC] [data] done backing up
^CKeyboard Interrupt
[Jan 14 2018 16:49:40 UTC] [debug] shutting down player...
[Jan 14 2018 16:49:40 UTC] [data] backup database to disk
[Jan 14 2018 16:49:40 UTC] [data] done backing up
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <PlayerThread>
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <SyncPlaylogThread>
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <SyncMediaThread>
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <SyncEmergThread>
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <SyncShowsThread>
[Jan 14 2018 16:49:40 UTC] [alerts] closing socket 192.168.0.60:47894
[Jan 14 2018 16:49:40 UTC] [debug] stopping thread <ObAlertProcessor>
[Jan 14 2018 16:49:40 UTC] [error] Socket Error: TCP socket closed by remote end. (streaming1.naad-adna.pelmorex.com:8080)
[Jan 14 2018 16:49:40 UTC] [debug] thread <PlayerThread> has joined successfully
[Jan 14 2018 16:49:40 UTC] [debug] thread <SyncPlaylogThread> has joined successfully
[Jan 14 2018 16:49:40 UTC] [debug] thread <SyncMediaThread> has joined successfully
[Jan 14 2018 16:49:40 UTC] [debug] thread <SyncEmergThread> has joined successfully
[Jan 14 2018 16:49:40 UTC] [debug] thread <SyncShowsThread> has joined successfully
[Jan 14 2018 16:49:40 UTC] [debug] thread <ObAlertFetcher> is daemon, skipping
[Jan 14 2018 16:49:40 UTC] [debug] thread <ObAlertProcessor> is daemon, skipping
[Jan 14 2018 16:49:40 UTC] [debug] thread <HTTPAdminThread> has joined successfully
^C
root@multiserver1:/opt/master#
Does that look fine to you? Is there anything I should be concerned about? Now that the server is successfully downloading the items, how do I listen to (or view) the media items on the player? Preferably, over RSTP.
Yes, that all looks right. You can listen to the stream locally (without the -H argument) or using icecast. You must have an icecast server installed and configured for that to work. RTSP support is intended for AES67/LiveWire only. It can only be used to get a low-latency (non-buffered) audio stream over multicast. It cannot display video output. It requires pulseaudio. You would connect to rtsp://ip-of-player:8554/by-id/1
What exactly are you trying to do?
That's great to read. Thanks a lot. You've been very helpful :)
For now, I'd like to paste rtsp://IP:8554/by-id/2 into VLC and listen to the audio (.mp3) files that were downloaded from the server. I can't use it without the -H argument because it's running off a cloud server (no GUI).
http://support.openbroadcaster.com/ I attempted the steps here to play the alerts but couldn't hear anything. It counts down, plays then moves to expired alerts, but there's no audio. But I don't need this to work if can stream the audio over RTSP.
Did I read correctly that pulse audio must be installed before I can get an RTSP stream?
That is correct. RTSP requires pulseaudio to work. It is possible to install and configure pulseaudio without a soundcard. But as I said, RTSP is not really supported. It was only added for communicating with broadcast studio equipment and is not used in production anywhere, as far as I know.
Icecast is the primary means of streaming and should be used if at all possible. Icecast can be used without pulseaudio by selecting the intersink option for audio mode at the very top of the streaming tab.
Seeing as the purpose of this issue (connecting obplayer to observer) has been addressed, I'm going to close it. I have some other questions which I'll open a separate issue for. Thanks again for your continued support. Releasing quality software for free is one thing, supporting it like you do is amazing. You guys rock! :+1:
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.