Giter Site home page Giter Site logo

openbroadcaster / observer Goto Github PK

View Code? Open in Web Editor NEW
146.0 28.0 45.0 30.57 MB

:radio: OBServer Automation, Scheduler, Media Library and Player Manager

Home Page: https://openbroadcaster.com

broadcast streaming-audio streaming-video automation emergency eas radio-station music openbroadcaster shoutcast

observer's People

Contributors

bobloblian avatar brookgagnon avatar btelliot avatar geoplanet avatar knuckl3head avatar radiorob avatar rmens 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  avatar  avatar  avatar

observer's Issues

Just Installed, and keeps telling me File format not supported

I have just installed the server on a vm for testing and familiarizing jan 22 08:28.

When i try and upload a media file, which is an MP# and has been set in admin as allowed. I get a message saying "This file format is not supported"

Audio admin
File not supported

hope these images help...

and hoping it's just a file permission error or something i may have skipped

Fuzzy Overlap Scheduling

Current behaviour of OB Server is for a show to always start precisely on time, thereby causing any currently in-progress media to be abruptly interrupted.

Considering many use cases where content is not always (or maybe ever) pre-produced to a stringent running time, particularly those using Dynamic Playlists, there is a significant need for the ability to allow shows some leeway around start/end times.

My idea to solve this would be adding the following settings:

  • Overlap Behaviour [Start Early/Start Late/Force Punctual]
  • Delayed Start Time Allowance [How long is a show allowed to go over time]
  • Early Start Time Allowance [How early is a show allowed to start]

Notes:

  • Settings should have both global (default) and manual (per-show) options
  • Use case for a show starting early would be Dynamic Playlists where it may be better to start a show 30-60 seconds early than queue up a new song and cause the next show to start several minutes late.
  • Start Early/Start Late options are not strict, but a way to set your preference where an item would both start within the early allowance window, and finish within the delayed start window. This capability might depend the other piece of work for 'Intelligent Dynamic Scheduling' in order for OB Server to be sufficiently future-aware.

Installation error

I' ve been trying to install openbradcaster server to a remote web server and i keep getting the error message

OB_SITE (installation web address) does not appear to point to a valid OpenBroadcaster installation.

In config.php in const OB_SITE i have entered "localhost", then the server's hostname, the its ip address but the error is still there
I used a manual installation creating the database, and the users. The system the server has is ubuntu 16.04
Am i doing something wrong?
Can you please post more detail instructions about the server installation??

Widgets and API Status indicators

Done - Drupal Modules
Indicators via widgets of information about: Media library contents, List Genres and Categories
Emergency events
Operational info, size, HDD Space, Uptime

Cannot log in to fresh install

After a fresh install on Ubuntu, either from running:
bash ob.installer.sh
or from a manual install, the admin user cannot get passed the login screen.
When opening the index.php page, we are redirected to the welcome/index.php page successfully with the login screen. Inputting the username 'admin' and the correct password, it just returns to the welcome/index.php with the input boxes blank rather than redirecting. If an incorrect password is used, it gives the incorrect password error and only reloads the reset page on what should be a successful login. On inspecting the cookies, only an auth_key cookie is set and no auth_id cookie, which I assume is why it has this behaviour.

If I go to the updates page, without setting the updates user and password settings in the config.php file it tells me I need to set these and after these are set we get a login popup to gain access to updates but putting in the correct username and password just give the popup again.

Unable to load additional modules

Hi,

I've got observer up and running under ubuntu 20.04, php7.4, nginx/1.14.0 and mariadb 15.1. I used the installation script to set up the environment and it all appears to work okay. I did have to backport gstreamer to get it to stream to icecast correctly.

However I'm unable to load any additional modules into observer.

To load install the modules I use the following steps.
1/ # git clone https://github.com/openbroadcaster/<module_name>.git /var/www/observer/modules/<module_name>
2/ # chown -R obsuser:obsuser /var/www/observer/modules/<module_name>

The observer UI fails to work once any new module is placed in the modules directory. Here is the error from the nginx err.log.

2022/03/14 11:26:25 [error] 23519#23519: *119 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Class 'statisticsModule' not found in /var/www/observer/models/modules_model.php:90
Stack trace:
#0 /var/www/observer/classes/obfmodel.php(112) : eval()'d code(1): ModulesModel->get_all(true, false)
#1 /var/www/observer/classes/obfmodel.php(112): eval()
#2 /var/www/observer/models/modules_model.php(39): OBFModel->__invoke('get_all', true, false)
#3 /var/www/observer/classes/obfmodel.php(112) : eval()'d code(1): ModulesModel->get_installed()
#4 /var/www/observer/classes/obfmodel.php(112): eval()
#5 /var/www/observer/classes/obfmodels.php(54): OBFModel->__invoke('get_installed')
#6 /var/www/observer/models/ui_model.php(34): OBFModels->__call('modules', Array)
#7 /var/www/observer/classes/obfload.php(174): UIModel->__construct()
#8 /var/www/observer/classes/obfmodels.php(43): OBFLoad->model('ui')
#9 /var/www/observer/index.php(40): OBFModels->__call('ui', Array)
#10 {main}
thrown in /var/www/observer/models/modules_model.php on line 90" while reading response header from upstream, client: <Client_IP>, server: <server.domain>, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "<Server_IP>"

Once I move the new module out of the modules directory, everything works again.

Is this a bug or am I doing something silly?

Thx in Advance.

Updated server installer

good evening here I just found your site which is great for broadcasting but I cannot find any info on installation and if it is possible to install on a vps then meric tell me if it is possible or I can find the commands for liniux thank you very much for your little answer john from france

Cant upload audio, with response This file format is not supported.

Describe the bug
i was follow on dependency.txt with use
ln -s /usr/bin/ffprobe /usr/local/bin/avprobe and
ln -s /usr/bin/ffmpeg /usr/local/bin/avconv

and on media setting i was check all media file format but when after done upload audio .mp3, cant to save with message "This file format is not supported".

i use Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-89-generic x86_64)

International Menus

Framework to support Google API or alternate to support menu translation.

Latest 5.11 - Observer webpage completely blank after update

Built-in ./updates/ webpage tool did not show any updates, so I copied files to webroot and set permissions.

That didn't work so I purged the webroot directory, the ~/.openbroadcaster directory, dropped the mysql schema and ran the ob.installer.sh script for a fresh install.

Web access still showed totally blank page, so I suspected a conflict due to installer forcing install of php7.0 dependency when I had preferred to more recent php packages - eg php8.0-mysql or the meta packages e.g. php-mysql.
Proceeded to purge php* and install packages fresh, but that didn't fix the issue so I purged all dependencies and files including apache2* and re-ran the built in script.

Still just getting a completely blank landing page. Can still browse to non-php assets like /favicon.ico or /install.txt fine but it seems like any php files are not processing correctly.

Currently installed php version is showing as 7.0 as per dependencies

$ php -v
PHP 7.0.33-55+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Oct 22 2021 12:34:57) ( NTS )

Tracks doubling up after saving in playlist.

Describe the bug
tracks in playlist double up in playlist after saving. Often after reopening playlist.

To Reproduce
Random happening.
Has happened at least 4 times to me in the past month.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):
Mac os with CHROME

Additional context
.
double-screenshots

Not able to log in Observer after changing network

Observer was originally set up on a first network. Everything was working perfectly. After changing network it was no longer possible to connect to the homepage. The login button no longer reacts. I reconnected the computer to the initial network and everything became functional again.

  1. Setup and test Observer login page -> Everything work fine
  2. Connect hardware to a new network/router
  3. Try to connect to Observer login page
  4. Nothing happens
  • OS: Pyrate on Raspberry Pi 3
  • Browser Chrome
  • Version 99.0.4844.74 (Build officiel) (64 bits)

Upload stops at 16MB

I am attempting to up load media but one of two things happen:

  1. If the file is greater than 16 MB it stops uploading OR:
  2. If the file is < than 16 MB it processes indeterminately.

Any Ideas?

Uploaded media doesn't show up in media sidebar.

Installed as per prerequisites and used the ob.install.sh
using ffmpeg with symlinks from the dependency.txt
when uploading .avi videos, or any media for that matter I fill out the form (genres doesn't have any to select from btw) and hit save, I get a return message of it saving successfully and the media sidebar refreshes, however no new media pops up. I have drive using various media formats.

I checked the mysql db and it doesn't look like entries are being created in the media table. could be a disconnect between the frontend and the db?

libavfilter-extra (unable to find package - 16.04)

Trying to install observer dependencies shows that "libavfilter-extra" can't be found.
It's part of the ffmpeg 7 package which is already installed.

Can observer run without libavfilter-extra? (libavfilter-ffmpeg5 is installed)
Or can I install the dependency via another route?

Typo in OpenBroadcaster Documentation examples

Describe the bug
There is a typo on the page: https://docs.openbroadcaster.com/wip/pages.appkeys.html
The 'a' variable should be "a":"search", not "a":"media_search"

It might be worth adding a reminder that specific permissions need to be assigned to the appkeys to access each API request.

jQuery code should be as follows:
var xhr = $.ajax( {
'async': true,
'type': 'POST',
'url': 'https://openbroadcaster-server-location.com/api.php',
'dataType': 'json',
'data': {
"c": "media",
"a": "search",
"d": JSON.stringify({
"save_history": true,
"sort_by": "updated",
"sort_dir":"desc",
"q": {"mode": "simple", "string": "xyz"},
"s": "approved",
"l": 250,
"o": 0,
"my": false
}),
"appkey": "APPKEYHERE"
},
'success': function (response) {
console.log(response);
}
});

PHP code as follows:
`$url = "https://openbroadcaster-server-location.com/api.php";
$data = http_build_query([
'c' => 'media',
'a' => 'search',
'd' => json_encode([
'save_history' => true,
'sort_by' => 'updated',
'sort_dir' => 'desc',
'q' => ['mode' => 'simple', 'string' => 'xyz'],
's' => 'approved',
'l' => 250,
'o' => 0,
'my' => false
]),
'appkey' => 'APPKEYHERE'
]);

$context_options = [
'http' => [
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
"Content-length: " . strlen($data) . "\r\n",
'content' => $data
]
];

$context = stream_context_create($context_options);
$result = file_get_contents($url, false, $context);

echo $result;`

Upload - format not recognized

Most of the time I seem to get "Format not recognized" even on supported filformats. If no error I will get"A file upload is required for new media" when trying to save. Nothing saved to database.
Files are uploaded and found in /assets/uploads

Checking the console I get following js error when the upload is finished:

VM1957:2 Uncaught SyntaxError: Unexpected token <
at Function.$.parseJSON (jquery.json.js:91)
at Object.OB.Media.mediaUploaderComplete [as complete] (addedit.js?v=4.1.1-20160502:263)
at j (jquery.min.js:2)
at Object.fireWith (jquery.min.js:2)
at x (jquery.min.js:4)
at XMLHttpRequest. (jquery.min.js:4)

Installed on Debian7 / PHP 5.5.38

Cannot filter Private, Visible and Public

Include in search fields the ability to filter these Status, otherwise we have no idea how to find items that are marked Public or to set these in bulk to display with embed code. These status are reported properly in Statistics/Graph module. Better to include a visual indicator in media sidebar, to prevent users from trying to add private media to Public PL and Players.

Upload Media - Duplicate Checker

Duplicate checker with name and MD5 Checksum. Notify and advise to overwrite or update. Alerts there is a duplicate, suggest to rename to *_01

Login Password Fails using Server install script

In a rare non-reproducible condition Installer might not create password correctly

First we need the value of OB_HASH_SALT from the config file.

Append that value to the password you want to use. If the salt is aaaaaaaaaa and the password is password, the string needed is aaaaaaaaaapassword

from there, get the sha value like this:

echo -n "aaaaaaaaaapassword" | openssl sha1 | cut -f 2 -d " "

copy the string that this puts out.

the log into mysql:

mysql -u root -p

select database:

use openbroadcaster

UPDATE users SET password='d8656d3f3823bce79e3a29253cf1106f6cfeee7c' WHERE username='admin';

Now, assuming that the salt is set as aaaaaaaaaa in the config file, the password password will work.

Note: When using special characters in the password, they need to use single quotes instead of double quotes when they echo the string

Intelligent Dynamic Scheduling

Currently, Dynamic Selections are unaware which media has already played prior to their own instance in a playlist.

Some use cases where this is not ideal would be:

  • Stations that run ads, news bulletins or other content periodically between Dynamic Selections, and don't want any songs that were played recently in previous Dynamic Selections to be played again so soon
  • Back-to-back Dynamic Selections in a single playlist (essentially same as above)
  • Applying the same logic, but widening the scope from "Same media" to "Same artist" & any other logic that might have a use case

My concept to solve this problem would be to develop 'Intelligent Dynamic Scheduling', addressing not only the above issues but also introducing the ability to set some Rotation

A draft formula to populate a Dynamic Selection from eligible media would be:
[item selection score] = [rotation weight] - [match result] + [popularity score]

Terms:

  • rotation weight: a value >0 and <=2, (default=1) as defined in unique metadata for each media item
  • match result: evaluate the Dynamic Selection candidate against the schedule "from its position in the future looking backward", through a user-defined set of rules. e.g. **if** [same item found] **or** [same title found] **or** [same artist found] **or** [specific Regular Expression found in <field>] **then** [match result] = 1 **else** [match result] = 0
  • popularity score: similar to item rotation weight, but a slightly different purpose allowing for a "public vote" feature to use the API to influence the 'potential item score'. e.g. [popularity score] = (([count item votes] + [sum all votes]) / [sum all votes]) / 2

Operation:

  • When a Dynamic Selection is populating its "run sheet", each time a new item is to be added to the queue all of the Dynamic Selection's items would be evaluated as above, and given an [item selection score].
  • Users can define an "item selection score ceiling" (e.g. 1.5), meaning any scores above the ceiling value are treated as a "tie" and one of them is selected randomly to be queued.
  • If no items are above the ceiling threshold, then the same logic applies to the item(s) with the highest score - and in the instance of a tie a random winner is selected as usual.
  • Once the item is added to the queue, the next item to be added to the queue should be determined by a new cycle of this algorithm to ensure the Dynamic Scheduling Criteria is upheld.

Please add mp4 and flv support for video

Actually I can use a simple raspberryPi2 like as media player for streaming HD mp4 videos at 25fps with a 10-15% of cpu with the original quality of the videos.
This is possible using ffmpeg with "-c:v copy -c:a copy" and videos in mp4 codified in HD 1280x720 h264 800kbs + aac 128kbs.
This system have a superb quality and I can streaming in my server using nginx+rtsp as in youtube and twitch at same time (i'm using the youtube like opensource project called now avideo and youphptube before).
But... hot to do the same with ogg format without recode the stream en real time?

regards
MaX

Enhanced metadata

Done - Extra Metadata fields
Done - SOCAN\MAPL which requires Composer, location of recording studio, performers, record label, etc
Done - Museum needs fields to store ISBN, camera used, format, condition, who donated, what licence is used.
TODO - International Standard Recording Code Media metadata for industry codes
TODO -Number in series ie Track 1, Track 2 Include track number field in DB ie Track 1, Track 2

Search - Filter Private, Visible and Public Media

Describe the bug
Can't find visibility status of media. Users have no way to find items that are marked Public or to set these in bulk to display with embed code. Can't filter to prevent users from trying to add private media to Public PL and Players.

To Reproduce
No way to filter by status

Expected behavior
Should be able to filter and show media "Public" that are available via API and embed widget

Solution

  1. Include in media sidebar >Advance Search fields the ability to filter these Status.
  2. Include font-awesome visual indicator icons in media sidebar
  3. Show the status in media details

These status are reported properly in Statistics/Graph module.

Audio Recordings

Record various Audio PSA to involve and educate the audience about this Emergency Broadcasting Initiative, what the station’s role is and a call out for people to log test messages for clarity, comprehension, etc. @billpolonsky will be able to assist in the scripting

Themes and Skins

Create Theme and skins. Research if there are any standards, " ie Mozzila, Chrome ?" or schemes for themes (skins) to get all the info in one zip file for updating and adjust our framework. Include a thumbnail of the completed theme, so we can put them in a gallery for end users to download or ask for service for custom design.

Signage will include theme support and have a split screen in zones, tradional 3 panel layout with a ticker scroll across bottom. Here is a gallery that has skins, planning something similar for our themse. http://xibo.org.uk/layouts/

Truncated Default Playlist in open spots in Schedule

Describe the bug
Server truncates Default Playlist to play 1-3 tracks only, in open spots (non scheduled programming) in Schedule

To Reproduce
Steps to reproduce the behavior:

  1. Go to Schedule
  2. Remove any show from the schedule leaving a blank spot.
  3. Let the server sync and playout
  4. See error

Expected behavior
The server at the top of the hour will serve up a Default Playlist that has 1-3 tracks in it. It will play through this playlist then serve up another playlist of 1-3 tracks till the end of the black time period ends on the schedule.

Screenshots
Screen shots included of the highlighted hour 4PM Friday November 26

Desktop (please complete the following information):

  • OS: mac os
  • Browser chrome
  • Version 96.0.4664.55

Additional context
The Default Playlist is not the problem. It plays as it's supposed to play when scheduled in the playlist.
Xnip2021-11-26_16-37-18
Xnip2021-11-26_16-39-28
Xnip2021-11-26_16-39-55
Xnip2021-11-26_16-37-44
Xnip2021-11-26_16-40-25
Xnip2021-11-26_16-42-40

Graphics

System Icons

Status Indicators

Icons of Audio\Video\Images for sidebar

Icons of Private/Public PL in sidebar

Icons of Basic, Advanced, and LA PL

How to schedule a show?

Hi
I just installed in a local VM in order to try it an in the next future create a little web TV for my church.

The problem... after uploaded some medias (.ogg) I can't drag and drop in the calendar schedule page.
I'm using in the virtual server ubuntu 18.04, and in the client ubuntu 20.04 with firefox 77 and chrome 83.
Any ideas?

Captura de pantalla de 2020-06-06 15-42-42

Cannot schedule individual media items

Describe the bug
Cannot schedule individual media items. Works when scheduling media in a Playlist

To Reproduce
Steps to reproduce the behavior:

  1. Schedule media item
  2. Save

Player gives errors and crashes player when trying to play individual media items

Expected behavior
Schedule individual media items

  • Version All Obplayer and Observers 5.1.1

Additional context
Started last year when updating from 5.1 to 5.1.1

Can't schedule shows/playlist

If I try to drag a playlist into the schedule, nothing happens.

The Console log from Chrome shows this:

schedule.js?v=5.0.0-20180127:360 Uncaught TypeError: Cannot read property 'length' of null
    at Object.OB.Schedule.addeditShowWindow (schedule.js?v=5.0.0-20180127:360)
    at schedule.js?v=5.0.0-20180127:452
    at Object.OB.API.postSuccess (api.js?v=5.0.0-20180127:135)
    at Object.success (api.js?v=5.0.0-20180127:86)
    at j (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at x (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)

Adding Private flagged media to Playlist

From @radiorob on May 25, 2016 4:0

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.

Copied from original issue: openbroadcaster/obplayer#11

User Management

LDAP\ Enterprise integration to manage external users and better workflow tools to keep out spammers. TOS/challenge on sign up with email status messages to admins on new user sign up.

Upload Media stuck on 'Processing Media...'

Hi, first time installing, OS is Linux Mint 20.2 and had to manually install as the script wasn't working.

Have worked through everything so far with config and dependencies looking good, but when I try to upload media I can't get past 'Processing Media...'

I've made sure all dependencies are installed (except for using mysql rather than mariadb, and I used the symlink commands documented for ffmpeg as libav-tools was depreciated) and believe I correctly set recursive ownership for user www-data on the media folder structure.
The file does appear in the /assets/uploads/ directory but without knowing how to check a log file I'm clueless as to what the roadblock is now.

image

Expand Media and Playlist sidebar

Expand PL sidebar.

Fields to show who is creator\owner of PL media

Staleness Indicator in PL. Ie Show hasn't been updated in n days, not played or scheduled

Indicator if it is Public\Visible\Private

Scheduling carrying over until next day

Describe the bug
Scheduling a 3 hour show at 11:00 PM, doesn't show the 2 hours in next day in schedule

To Reproduce
Steps to reproduce the behavior:

  1. Schedule 3 Hour Show at 11:00 PM
  2. Save
  3. Where is the 2 hours from Midnight to 2:00 AM next day?

Expected behavior
Should show 2 hours next day beginning at midnight

Desktop (please complete the following information):

  • Version 5.1.1 [after the DST fix]

Expanded media sidebar blocks modal

Solution resize modals and align to visible workspace.

To reproduce. Expand sidebar and then click any menus, Search, my search, Simple.
Modal is masked by expanded media sidebar with other operations
Screenshot 2021-12-13 at 17-53-07 OpenBroadcaster
s

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.