openbroadcaster / obplayer

:radio: OBPlayer Streaming Automation Playout with CAP EAS Alerting
https://openbroadcaster.com
GNU Affero General Public License v3.0
120 stars 47 forks source link

Stream obplayer to Icecast #26

Closed ralphotowo closed 6 years ago

ralphotowo commented 6 years ago

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
radiorob commented 6 years ago

Looks like you have not enabled Streaming. Put a check box in there, save and restart player. In the dashboard at startup you will see the enabled modules loading, streaming should be one of them.

ralphotowo commented 6 years ago

Hi @radiorob - Thanks for responding. I enabled streaming and the audio seems to have played (with no audio) to the browser, however there's an error when it attempts to play a video. screenshot from 2018-01-17 21-28-53 I still can't get obplayer to register a stream at Icecast (same server). I also tried changing the internal loopback address to the public IP address. screenshot from 2018-01-17 21-29-45

transistorfet commented 6 years ago

It looks like the error is with vaapi. Have you installed the gstreamer1.0-vaapi package? If so, you should uninstall that package to make it work.

It also looks like you're using an older version of the software which doesn't support video over icecast, because otherwise you'd see an option to enable video on the steaming tab. What version are you on?

ralphotowo commented 6 years ago

I got the audio stream to work by selecting 'Shoutcast' for Audio Output under the Audio/Visualization tab and the stream mounted at icecast and I could playback the media files with VLC. However, it all stopped working after I setup a new player in observer and configured it in the player. I have a default playlist, but it doesn't play the items. screenshot from 2018-01-17 23-28-39

ralphotowo commented 6 years ago

Yes, I had gstreamer1.0-vaapi package installed and I've just uninstalled it. The version I have is: v4.1.2-20160803 downloaded from this link: https://wiki.openbroadcaster.com/Source_Code

More logs:

[Jan 17 2018 22:40:53 UTC] [module] loading module player
[Jan 17 2018 22:40:54 UTC] [module] loading module httpadmin
[Jan 17 2018 22:40:54 UTC] [module] loading module testsignal
[Jan 17 2018 22:40:54 UTC] [module] loading module scheduler
[Jan 17 2018 22:40:54 UTC] [admin] serving http(s) on port 23233
[Jan 17 2018 22:40:54 UTC] [data] restoring database from file
[Jan 17 2018 22:40:54 UTC] [data] done restoring database
[Jan 17 2018 22:40:54 UTC] [sync] sending player version to server: 4.1.2-20160803
[Jan 17 2018 22:40:54 UTC] [sync] fetching show data from server
[Jan 17 2018 22:40:54 UTC] [module] loading module streamer
[Jan 17 2018 22:40:54 UTC] [scheduler] no show found.
[Jan 17 2018 22:40:54 UTC] [player] now playing track ?: unknown - unknown (id: 0 file: duration: 5s type: 'break' source: testsignal)
[Jan 17 2018 22:40:54 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 22:40:54 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 22:40:54 UTC] [warning] server did not report a version number
[Jan 17 2018 22:40:54 UTC] [sync] writing data to database
[Jan 17 2018 22:40:54 UTC] [data] backup database to disk
[Jan 17 2018 22:40:54 UTC] [data] done backing up
[Jan 17 2018 22:40:59 UTC] [scheduler] no show found.
[Jan 17 2018 22:40:59 UTC] [player] now playing track ?: unknown - unknown (id: 0 file: duration: 31536000s type: 'testsignal' source: testsignal)
[Jan 17 2018 22:40:59 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 22:40:59 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
ralphotowo commented 6 years ago

It's working again after passing the -r flag with the start command: bash obplayer_loop -H -d -r

The -r flag restarts fresh, clearing out Playlist\Schedule\Media cache. REF: https://wiki.openbroadcaster.com/OBPlayer_CLI

I'm not sure why I had to pass this flag to get it playing the tracks again, but I'm glad it works.

@transistorfet: Where can I get the updated version?

radiorob commented 6 years ago

I updated wiki to include our newest 5x Series Dev code.  We will be adding to GIT directly.

and on

https://openbroadcaster.com/source-code

Thanks for the reports

Rob

On 2018-01-17 02:54 PM, Ralph wrote:

It's working again after passing the |-r| flag with the start command: |bash obplayer_loop -H -d -r|

The |-r| flag restarts fresh, clearing out Playlist\Schedule\Media cache. REF: https://wiki.openbroadcaster.com/OBPlayer_CLI

I'm not sure why I had to pass this flag to get it playing the tracks again, but I'm glad it works.

@transistorfet https://github.com/transistorfet: Where can I get the updated version?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openbroadcaster/obplayer/issues/26#issuecomment-358477048, or mute the thread https://github.com/notifications/unsubscribe-auth/AEY_9s9hr3v4X4XxlqTqz9yGmYevJyVUks5tLnoegaJpZM4RhyVz.

ralphotowo commented 6 years ago

Using the information shared, I made significant progress. I have the latest versions of openbroadcaster server and player installed and connected. Media was being downloaded and I could stream audio to icecast and listen to the stream using VLC.

I also tried streaming a video, I could hear the audio but saw only a black screen for an .mp4 file that was uploaded to the server. I also noticed that I could only stream 320x240. I checked this document and found other dependencies that I didn't have installed so I installed all the available packages under OBPlayer 5x Series and Pulse Audio. I also installed gstreamer1.0-vaapi mesa-vdpau-drivers since the documentation states that it may improve playback performance, but this wasn't the case.

Now obplayer won't register mounts on Icecast and I'm not even able to stream audio which worked initially. I've also tried uninstalling gstreamer1.0-vaapi mesa-vdpau-drivers which didn't help.

These are the logs from the player dashboard:

root@icecast:~/obplayer5# bash obplayer_check -H -d -r
[Jan 19 2018 12:20:56 UTC] [module] loading module player
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: audio-out-capsfilter
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: audio-out-level
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: audiosink
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: image-pipeline-freeze
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: image-pipeline-scale
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: image-pipeline-convert
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: image-pipeline-rate
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-depay
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-decode
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-convert
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-resample
[Jan 19 2018 12:20:56 UTC] [debug] adding element to bin: rtp-input-post-queue
[Jan 19 2018 12:20:56 UTC] [module] loading module httpadmin
[Jan 19 2018 12:20:56 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 19 2018 12:20:56 UTC] [module] loading module testsignal
[Jan 19 2018 12:20:56 UTC] [module] loading module fallback
[Jan 19 2018 12:20:56 UTC] [admin] serving http(s) on port 23233
[Jan 19 2018 12:20:56 UTC] [module] loading module scheduler
[Jan 19 2018 12:20:57 UTC] [data] restoring database from file
[Jan 19 2018 12:20:57 UTC] [data] done restoring database
[Jan 19 2018 12:20:57 UTC] [data] resetting show, media, and priority data
[Jan 19 2018 12:20:57 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 19 2018 12:20:57 UTC] [sync] sending player version to server: 5.0.0-20171102
[Jan 19 2018 12:20:57 UTC] [sync] fetching show data from server
[Jan 19 2018 12:20:57 UTC] [sync] server version reported as 4.1.1-20171113
[Jan 19 2018 12:20:58 UTC] [sync] writing data to database
[Jan 19 2018 12:20:58 UTC] [data] backup database to disk
[Jan 19 2018 12:20:58 UTC] [data] done backing up
[Jan 19 2018 12:20:58 UTC] [sync] fetching priority broadcast data from server
[Jan 19 2018 12:20:58 UTC] [debug] starting thread <SyncShowsThread>
[Jan 19 2018 12:20:58 UTC] [sync] fetching show data from server
[Jan 19 2018 12:20:58 UTC] [debug] starting thread <SyncEmergThread>
[Jan 19 2018 12:20:58 UTC] [debug] starting thread <SyncMediaThread>
[Jan 19 2018 12:20:58 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 19 2018 12:20:58 UTC] [module] loading module streamer
[Jan 19 2018 12:20:58 UTC] [debug] starting thread <PlayerThread>
[Jan 19 2018 12:20:58 UTC] [scheduler] loading show 0
[Jan 19 2018 12:20:58 UTC] [scheduler] starting at track number 0
[Jan 19 2018 12:20:58 UTC] [player] now playing track 1: TeamTreeHouse - Social Media Marketing (id: 3 file: 3-TeamTreeHouse-Social_Media_Marketing.mov duration: 153.94s type: 'video' source: scheduler)
[Jan 19 2018 12:20:58 UTC] [debug] video-playbin: patching audio/visual
[Jan 19 2018 12:20:58 UTC] [debug] video-playbin: stopped by execute request
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 19 2018 12:20:58 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 19 2018 12:20:58 UTC] [player] resuming track at 24.8569393157959 seconds.
[Jan 19 2018 12:20:59 UTC] [sync] writing data to database
[Jan 19 2018 12:20:59 UTC] [data] backup database to disk
[Jan 19 2018 12:20:59 UTC] [data] done backing up
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: audiosrc
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: capsfilter1
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: queue2-0
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: audioconvert0
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: lamemp3enc0
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: queue2-1
[Jan 19 2018 12:20:59 UTC] [debug] adding element to bin: shout2send
[Jan 19 2018 12:20:59 UTC] [debug] starting icecast streamer
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
[Jan 19 2018 12:20:59 UTC] [warning] gstreamer warning: gst-resource-error-quark: Could not open temporary device. (6), gstopenalsrc.c(341): gst_openal_src_getcaps (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
ALC error: Out of Memory, 6
[Jan 19 2018 12:20:59 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data flow error. (1), gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
streaming task paused, reason not-negotiated (-4), 1
[Jan 19 2018 12:20:59 UTC] [info] attempting to restart icecast pipeline
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
[Jan 19 2018 12:21:04 UTC] [error] gstreamer failed waiting for state change to <enum GST_STATE_PLAYING of type Gst.State>
[Jan 19 2018 12:21:04 UTC] [warning] gstreamer warning: gst-resource-error-quark: Could not open temporary device. (6), gstopenalsrc.c(341): gst_openal_src_getcaps (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
ALC error: Out of Memory, 6
[Jan 19 2018 12:21:04 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data flow error. (1), gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
streaming task paused, reason not-negotiated (-4), 1
[Jan 19 2018 12:21:04 UTC] [info] attempting to restart icecast pipeline
^CKeyboard Interrupt
[Jan 19 2018 12:21:07 UTC] [debug] shutting down player...
[Jan 19 2018 12:21:07 UTC] [data] backup database to disk
[Jan 19 2018 12:21:07 UTC] [data] done backing up
[Jan 19 2018 12:21:07 UTC] [debug] stopping thread <PlayerThread>
[Jan 19 2018 12:21:07 UTC] [debug] stopping thread <SyncPlaylogThread>
[Jan 19 2018 12:21:07 UTC] [debug] stopping thread <SyncMediaThread>
[Jan 19 2018 12:21:07 UTC] [debug] stopping thread <SyncEmergThread>
[Jan 19 2018 12:21:07 UTC] [debug] stopping thread <SyncShowsThread>
[Jan 19 2018 12:21:07 UTC] [debug] thread <PlayerThread> has joined successfully
[Jan 19 2018 12:21:07 UTC] [debug] thread <SyncPlaylogThread> has joined successfully
[Jan 19 2018 12:21:07 UTC] [debug] thread <SyncMediaThread> has joined successfully
[Jan 19 2018 12:21:07 UTC] [debug] thread <SyncEmergThread> has joined successfully
[Jan 19 2018 12:21:07 UTC] [debug] thread <SyncShowsThread> has joined successfully
[Jan 19 2018 12:21:07 UTC] [debug] thread <HTTPAdminThread> has joined successfully
root@icecast:~/obplayer5# 

Based on the information above, where have I gone wrong to break a working audio stream between the server, player and icecast? It worked perfectly fine until I tried installing additional dependencies with hopes to enable video streams.

transistorfet commented 6 years ago

The errors in the logs say it failed to initialize pulse, probably because you don't have an alsa soundcard because you're running this on a cloud computer? If you're just sending the player output to icecast to stream, then you don't need pulse. You can uninstall pulse, and set the audio mode option at the top of the streaming tab to 'intersink'. If you are still getting errors related to pulse, you could try setting the audio output mode on the outputs tab to 'No Output', which will not affect the intersink option. You could also disable other features that use pulse, like RTSP.

The alternative solution is to configure pulseaudio with a dummy soundcard device. You'd have to look at pulseaudio's documentation for details on that.

ralphotowo commented 6 years ago

Which of the packages installs pulse? I've removed the following packages and also used pip3 to uninstall pulsectl but I continue to receive the error below:

mesa-va-drivers gstreamer1.0-vaapi alsa-utils dbus-user-session pavucontrol gstreamer1.0-alsa gstreamer1.0-pulseaudio pulseaudio

root@icecast:~/obplayer5# bash obplayer_check -H -d -r
[Jan 19 2018 20:51:43 UTC] [module] loading module player
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: audio-out-capsfilter
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: audio-out-level
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: audiosink
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: image-pipeline-freeze
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: image-pipeline-scale
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: image-pipeline-convert
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: image-pipeline-rate
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-depay
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-decode
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-convert
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-resample
[Jan 19 2018 20:51:43 UTC] [debug] adding element to bin: rtp-input-post-queue
[Jan 19 2018 20:51:43 UTC] [module] loading module httpadmin
[Jan 19 2018 20:51:43 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 19 2018 20:51:43 UTC] [module] loading module testsignal
[Jan 19 2018 20:51:43 UTC] [module] loading module fallback
[Jan 19 2018 20:51:43 UTC] [admin] serving http(s) on port 23233
[Jan 19 2018 20:51:43 UTC] [module] loading module scheduler
[Jan 19 2018 20:51:43 UTC] [data] restoring database from file
[Jan 19 2018 20:51:43 UTC] [data] done restoring database
[Jan 19 2018 20:51:43 UTC] [data] resetting show, media, and priority data
[Jan 19 2018 20:51:43 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 19 2018 20:51:43 UTC] [sync] sending player version to server: 5.0.0-20171102
[Jan 19 2018 20:51:43 UTC] [sync] fetching show data from server
[Jan 19 2018 20:51:44 UTC] [sync] server version reported as 4.1.1-20171113
[Jan 19 2018 20:51:45 UTC] [sync] writing data to database
[Jan 19 2018 20:51:45 UTC] [data] backup database to disk
[Jan 19 2018 20:51:45 UTC] [data] done backing up
[Jan 19 2018 20:51:45 UTC] [sync] fetching priority broadcast data from server
[Jan 19 2018 20:51:45 UTC] [debug] starting thread <SyncShowsThread>
[Jan 19 2018 20:51:45 UTC] [sync] fetching show data from server
[Jan 19 2018 20:51:45 UTC] [debug] starting thread <SyncEmergThread>
[Jan 19 2018 20:51:45 UTC] [debug] starting thread <SyncMediaThread>
[Jan 19 2018 20:51:45 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 19 2018 20:51:45 UTC] [module] loading module streamer
[Jan 19 2018 20:51:45 UTC] [debug] starting thread <PlayerThread>
[Jan 19 2018 20:51:45 UTC] [scheduler] loading show 0
[Jan 19 2018 20:51:45 UTC] [scheduler] starting at track number 0
[Jan 19 2018 20:51:45 UTC] [player] now playing track 1: TeamTreeHouse - Social Media Marketing (id: 3 file: 3-TeamTreeHouse-Social_Media_Marketing.mov duration: 153.94s type: 'video' source: scheduler)
[Jan 19 2018 20:51:45 UTC] [debug] video-playbin: patching audio/visual
[Jan 19 2018 20:51:45 UTC] [debug] video-playbin: stopped by execute request
AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
[Jan 19 2018 20:51:45 UTC] [warning] gstreamer warning: gst-resource-error-quark: Jack server not found (3), gstjackaudiosink.c(357): gst_jack_ring_buffer_open_device (): /GstJackAudioSink:audiosink-actual-sink-jackaudio:
Cannot connect to the Jack server (status 17), 3
[Jan 19 2018 20:51:45 UTC] [player] resuming track at 116.69534707069397 seconds.
[Jan 19 2018 20:51:46 UTC] [sync] writing data to database
[Jan 19 2018 20:51:46 UTC] [data] backup database to disk
[Jan 19 2018 20:51:46 UTC] [data] done backing up
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: audiosrc
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: capsfilter1
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: queue2-0
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: audioconvert0
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: lamemp3enc0
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: queue2-1
[Jan 19 2018 20:51:46 UTC] [debug] adding element to bin: shout2send
[Jan 19 2018 20:51:46 UTC] [debug] starting icecast streamer
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4771:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
[Jan 19 2018 20:51:46 UTC] [warning] gstreamer warning: gst-resource-error-quark: Could not open temporary device. (6), gstopenalsrc.c(341): gst_openal_src_getcaps (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
ALC error: Out of Memory, 6
[Jan 19 2018 20:51:46 UTC] [error] gstreamer error: gst-stream-error-quark: Internal data flow error. (1), gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstAutoAudioSrc:audiosrc/GstOpenalSrc:audiosrc-actual-src-opena:
streaming task paused, reason not-negotiated (-4), 1
[Jan 19 2018 20:51:46 UTC] [info] attempting to restart icecast pipeline
cc^CKeyboard Interrupt
[Jan 19 2018 20:51:49 UTC] [debug] shutting down player...
[Jan 19 2018 20:51:49 UTC] [data] backup database to disk
[Jan 19 2018 20:51:49 UTC] [data] done backing up
[Jan 19 2018 20:51:49 UTC] [debug] stopping thread <PlayerThread>
[Jan 19 2018 20:51:49 UTC] [debug] stopping thread <SyncPlaylogThread>
[Jan 19 2018 20:51:49 UTC] [debug] stopping thread <SyncMediaThread>
[Jan 19 2018 20:51:49 UTC] [debug] stopping thread <SyncEmergThread>
[Jan 19 2018 20:51:49 UTC] [debug] stopping thread <SyncShowsThread>
[Jan 19 2018 20:51:49 UTC] [debug] thread <PlayerThread> has joined successfully
[Jan 19 2018 20:51:49 UTC] [debug] thread <SyncPlaylogThread> has joined successfully
[Jan 19 2018 20:51:49 UTC] [debug] thread <SyncMediaThread> has joined successfully
[Jan 19 2018 20:51:49 UTC] [debug] thread <SyncEmergThread> has joined successfully
[Jan 19 2018 20:51:49 UTC] [debug] thread <SyncShowsThread> has joined successfully
[Jan 19 2018 20:51:49 UTC] [debug] thread <HTTPAdminThread> has joined successfully
root@icecast:~/obplayer5# 
ralphotowo commented 6 years ago

It's working again. Thanks @transistorfet. Yes, it's running off a cloud server. To get it working, I uninstalled these packagespulseaudio gstreamer1.0-pulseaudio and selected 'No output' for Audio under the Outputs tab, and 'Intersink' under the Streaming tab. Thanks again :) Oh, and I installed all those other packages I removed.

I guess the only thing left now is to figure out how to stream video successfully. Can you help with this one? I can hear the audio, but there's no video. See the logs

root@icecast:~/obplayer5# bash obplayer_check -H -d -r
[Jan 19 2018 21:03:51 UTC] [module] loading module player
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: audio-out-capsfilter
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: audio-out-level
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: audiosink
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: image-pipeline-freeze
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: image-pipeline-scale
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: image-pipeline-convert
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: image-pipeline-rate
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-depay
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-decode
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-convert
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-resample
[Jan 19 2018 21:03:51 UTC] [debug] adding element to bin: rtp-input-post-queue
[Jan 19 2018 21:03:51 UTC] [module] loading module httpadmin
[Jan 19 2018 21:03:51 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 19 2018 21:03:51 UTC] [module] loading module testsignal
[Jan 19 2018 21:03:51 UTC] [module] loading module fallback
[Jan 19 2018 21:03:51 UTC] [admin] serving http(s) on port 23233
[Jan 19 2018 21:03:51 UTC] [module] loading module scheduler
[Jan 19 2018 21:03:51 UTC] [data] restoring database from file
[Jan 19 2018 21:03:51 UTC] [data] done restoring database
[Jan 19 2018 21:03:51 UTC] [data] resetting show, media, and priority data
[Jan 19 2018 21:03:51 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 19 2018 21:03:51 UTC] [sync] sending player version to server: 5.0.0-20171102
[Jan 19 2018 21:03:51 UTC] [sync] fetching show data from server
[Jan 19 2018 21:03:51 UTC] [sync] server version reported as 4.1.1-20171113
[Jan 19 2018 21:03:51 UTC] [sync] writing data to database
[Jan 19 2018 21:03:52 UTC] [data] backup database to disk
[Jan 19 2018 21:03:52 UTC] [data] done backing up
[Jan 19 2018 21:03:52 UTC] [sync] fetching priority broadcast data from server
[Jan 19 2018 21:03:52 UTC] [debug] starting thread <SyncShowsThread>
[Jan 19 2018 21:03:52 UTC] [sync] fetching show data from server
[Jan 19 2018 21:03:52 UTC] [debug] starting thread <SyncEmergThread>
[Jan 19 2018 21:03:52 UTC] [debug] starting thread <SyncMediaThread>
[Jan 19 2018 21:03:52 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 19 2018 21:03:52 UTC] [module] loading module streamer
[Jan 19 2018 21:03:52 UTC] [debug] starting thread <PlayerThread>
[Jan 19 2018 21:03:52 UTC] [scheduler] loading show 0
[Jan 19 2018 21:03:52 UTC] [scheduler] starting at track number 0
[Jan 19 2018 21:03:52 UTC] [player] now playing track 1: TeamTreeHouse - Social Media Marketing (id: 3 file: 3-TeamTreeHouse-Social_Media_Marketing.mov duration: 153.94s type: 'video' source: scheduler)
[Jan 19 2018 21:03:52 UTC] [debug] video-playbin: patching audio/visual
[Jan 19 2018 21:03:52 UTC] [debug] video-playbin: stopped by execute request
[Jan 19 2018 21:03:52 UTC] [player] resuming track at 23.538750648498535 seconds.
[Jan 19 2018 21:03:52 UTC] [sync] writing data to database
[Jan 19 2018 21:03:53 UTC] [data] backup database to disk
[Jan 19 2018 21:03:53 UTC] [data] done backing up
[Jan 19 2018 21:03:53 UTC] [debug] video-playbin: stopped 
[Jan 19 2018 21:03:53 UTC] [debug] video-playbin: stopped 
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: queue2-0
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: interaudiosink0
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: interaudiosrc0
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: capsfilter2
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: queue2-1
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: audioconvert0
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: lamemp3enc0
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: queue2-2
[Jan 19 2018 21:03:53 UTC] [debug] adding element to bin: shout2send
[Jan 19 2018 21:03:53 UTC] [debug] starting icecast streamer
transistorfet commented 6 years ago

There are no errors there. Perhaps you just forgot to enable icecast video on the streaming tab? The logs don't show the video elements being created for the icecast video streamer

ralphotowo commented 6 years ago

Updates

Under the streaming tab, I set Icecast Output mode to Video 320 - 200. When I attempt to start the stream with a player that only has an MP4 video, I can hear the audio and can see a small black screen.

My questions are:

I checked the XSPF file Icecast was serving and this was the content:

<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1">
  <title/>
  <creator/>
  <trackList>
    <track>
      <location>http://stream.otowo.me:8000/stream</location>
      <title/>
      <annotation>Stream Title: Openbroadcaster
Stream Description: Openbroadcaster Stream
Content Type:application/ogg
Video Quality: 48
Framesize: 320 x 200
Framerate: 24.00
Current Listeners: 0
Peak Listeners: 1
Stream Genre: various</annotation>
    </track>
  </trackList>
</playlist>

This is a screenshot of Icecast settings from Openbroadcaster screenshot from 2018-01-19 22-33-32

Thank you @radiorob and @transistorfet. You've been extremely helpful. I understand the required dependencies and configurations to get audio streams. Now just need to get hi-res video working.

EDIT: @transistorfet - Correct, initially it wasn't enabled but it is now.

transistorfet commented 6 years ago

Oh, have you enabled video output on the Outputs tab? Or have you passed the command line argument -H? The latter would disable video output, regardless of the icecast settings. If that doesn't fix it, could you post a screenshot of the outputs tab, and the logs again. Thanks

As for 720p, you'd have to make a slight modification to the code. It's been limited due to playback performance being poor. Icecast video is an experimental feature :P I wonder if there's a better solution out there for your needs. I haven't looked. I'd be interested to know if 720p is even useable

Line 216 of obplayer/streamer/icecast.py has hard coded video output resolution. Hopefully you can figure out what to change.

ralphotowo commented 6 years ago

Yes, I enabled video output, it's set to 'Auto Detect', and yes I've passed the -H flag because this is running off a cloud server with no monitor attached. screenshot from 2018-01-20 09-14-20

These are the logs after starting in headless mode which streams audio, and starting without -H. The latter returns an error which is expected given the lack of a display.

root@icecast:~/obplayer5# bash obplayer_check -H -d -r
[Jan 20 2018 08:15:01 UTC] [module] loading module player
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: audio-out-capsfilter
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: audio-out-level
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: audio-out-interlink-tee
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: audio-out-post-tee-queue
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: audiosink
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: image-pipeline-freeze
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: image-pipeline-scale
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: image-pipeline-convert
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: image-pipeline-rate
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: image-pipeline-capsfilter
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-pre-queue
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-depay
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-decode
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-convert
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-resample
[Jan 20 2018 08:15:01 UTC] [debug] adding element to bin: rtp-input-post-queue
[Jan 20 2018 08:15:01 UTC] [module] loading module httpadmin
[Jan 20 2018 08:15:01 UTC] [debug] starting thread <HTTPAdminThread>
[Jan 20 2018 08:15:01 UTC] [module] loading module testsignal
[Jan 20 2018 08:15:01 UTC] [module] loading module fallback
[Jan 20 2018 08:15:01 UTC] [admin] serving http(s) on port 23233
[Jan 20 2018 08:15:01 UTC] [module] loading module scheduler
[Jan 20 2018 08:15:01 UTC] [data] restoring database from file
[Jan 20 2018 08:15:01 UTC] [data] done restoring database
[Jan 20 2018 08:15:01 UTC] [data] resetting show, media, and priority data
[Jan 20 2018 08:15:01 UTC] [debug] starting thread <VersionUpdateThread>
[Jan 20 2018 08:15:01 UTC] [sync] sending player version to server: 5.0.0-20171102
[Jan 20 2018 08:15:01 UTC] [sync] fetching show data from server
[Jan 20 2018 08:15:01 UTC] [sync] server version reported as 4.1.1-20171113
[Jan 20 2018 08:15:01 UTC] [sync] writing data to database
[Jan 20 2018 08:15:01 UTC] [data] backup database to disk
[Jan 20 2018 08:15:02 UTC] [data] done backing up
[Jan 20 2018 08:15:02 UTC] [sync] fetching priority broadcast data from server
[Jan 20 2018 08:15:02 UTC] [debug] starting thread <SyncShowsThread>
[Jan 20 2018 08:15:02 UTC] [sync] fetching show data from server
[Jan 20 2018 08:15:02 UTC] [debug] starting thread <SyncEmergThread>
[Jan 20 2018 08:15:02 UTC] [debug] starting thread <SyncMediaThread>
[Jan 20 2018 08:15:02 UTC] [debug] starting thread <SyncPlaylogThread>
[Jan 20 2018 08:15:02 UTC] [module] loading module streamer
[Jan 20 2018 08:15:02 UTC] [debug] starting thread <PlayerThread>
[Jan 20 2018 08:15:02 UTC] [scheduler] loading show 0
[Jan 20 2018 08:15:02 UTC] [scheduler] starting at track number 0
[Jan 20 2018 08:15:02 UTC] [player] now playing track 1: YG - My Nigga (feat. Lil Wayne, Rich Homie Quan, Meek Mill & Nicki Minaj) [Remix] (id: 5 file: 5-YG-My_Nigga__feat__Lil_Wayne__Rich_Homie_Quan__Meek_Mill___Nicki_Minaj___Remix_.mp3 duration: 239.385s type: 'audio' source: scheduler)
[Jan 20 2018 08:15:02 UTC] [debug] audio-playbin: patching audio/visual
[Jan 20 2018 08:15:02 UTC] [debug] audio-playbin: stopped by execute request
[Jan 20 2018 08:15:02 UTC] [player] resuming track at 113.35137677192688 seconds.
[Jan 20 2018 08:15:02 UTC] [sync] writing data to database
[Jan 20 2018 08:15:02 UTC] [data] backup database to disk
[Jan 20 2018 08:15:02 UTC] [data] done backing up
[Jan 20 2018 08:15:03 UTC] [debug] audio-playbin: stopped 
[Jan 20 2018 08:15:03 UTC] [debug] audio-playbin: stopped 
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: queue2-0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: interaudiosink0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: interaudiosrc0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: capsfilter0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: queue2-1
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: audioconvert0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: lamemp3enc0
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: queue2-2
[Jan 20 2018 08:15:03 UTC] [debug] adding element to bin: shout2send
[Jan 20 2018 08:15:03 UTC] [debug] starting icecast streamer
^CKeyboard Interrupt
[Jan 20 2018 08:15:09 UTC] [debug] shutting down player...
[Jan 20 2018 08:15:09 UTC] [data] backup database to disk
[Jan 20 2018 08:15:09 UTC] [data] done backing up
[Jan 20 2018 08:15:09 UTC] [debug] stopping thread <PlayerThread>
[Jan 20 2018 08:15:09 UTC] [debug] stopping thread <SyncPlaylogThread>
[Jan 20 2018 08:15:09 UTC] [debug] stopping thread <SyncMediaThread>
[Jan 20 2018 08:15:09 UTC] [debug] stopping thread <SyncEmergThread>
[Jan 20 2018 08:15:09 UTC] [debug] stopping thread <SyncShowsThread>
[Jan 20 2018 08:15:09 UTC] [debug] thread <PlayerThread> has joined successfully
[Jan 20 2018 08:15:09 UTC] [debug] thread <SyncPlaylogThread> has joined successfully
[Jan 20 2018 08:15:09 UTC] [debug] thread <SyncMediaThread> has joined successfully
[Jan 20 2018 08:15:09 UTC] [debug] thread <SyncEmergThread> has joined successfully
[Jan 20 2018 08:15:09 UTC] [debug] thread <SyncShowsThread> has joined successfully
[Jan 20 2018 08:15:09 UTC] [debug] thread <HTTPAdminThread> has joined successfully
root@icecast:~/obplayer5# bash obplayer_check -d -r
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(obplayer.py:7734): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
/root/obplayer5/obplayer/gui.py:48: Warning: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
  builder.add_from_file('obplayer/ui.glade')
obplayer_check: line 27:  7734 Segmentation fault      (core dumped) python3 obplayer.py $@
root@icecast:~/obplayer5# 

Can I trick Openbroadcaster into thinking there's a video device attached? I recall being able to do something similar to export DISPLAY=:0 on Linux but that doesn't seem to work in this case.

transistorfet commented 6 years ago

The -H option disables the entire video subsystem, ignoring any other video settings so it will never work with the -H option in place. We almost always use HDMI output on dedicated hardware to output video; never cloud computing; and icecast is only ever used for audio, for streaming to physical radio transmitters. You might just be asking too much of this software.

Without testing it myself, you might be able to set the video output to 'No Output' and then remove the -H option, but I'm not sure if that will prevent the gtk window from being created. There are also vnc servers like vnc4server or tightvncserver which completely emulate an x server without physical video hardware. That might be a work around. Unfortunately, I don't have a chance to try this out myself.

ralphotowo commented 6 years ago

Using all the valuable information shared here, I've made significant progress and I'm happy to say everything is working as expected. Between Openbroadcaster server, player and Icecast, I'm able to share and play media files (audio & video). I was also able to increase the resolution from 320x240 to 1280x720 as guided by @transistorfet.

Thanks for all the help. I have some final questions, but I'll ask those in a separate issue. Cheers!

transistorfet commented 6 years ago

I'm glad to hear it worked