Coder Social home page Coder Social logo

obsproject / obs-websocket Goto Github PK

View Code? Open in Web Editor NEW
3.7K 108.0 698.0 3.69 MB

Remote-control of OBS Studio through WebSocket

License: GNU General Public License v2.0

CMake 2.52% C++ 94.68% Shell 0.16% C 2.64%
obs-studio websocket remote-control hacktoberfest

obs-websocket's Introduction

obs-websocket

WebSocket API for OBS Studio.

Discord Financial Contributors on Open Collective

Downloads

obs-websocket is now included by default with OBS Studio 28.0.0 and above. As such, there should be no need to download obs-websocket if you have OBS Studio > 28.0.0.

Binaries for OBS Studio < 28.0.0 on Windows, MacOS, and Linux are available in the Releases section.

Using obs-websocket

It is highly recommended to keep obs-websocket protected with a password against unauthorized control. obs-websocket generates a password for you automatically when you load it for the first time. To change this, open the "obs-websocket Settings" dialog under OBS' "Tools" menu. In the settings dialog, you can enable or disable authentication and set a password for it.

(Psst. You can use --websocket_port(value), --websocket_password(value), --websocket_debug(flag) and --websocket_ipv4_only(flag) on the command line to override the configured values.)

Possible use cases

  • Remote control OBS from a phone or tablet on the same local network
  • Change your stream overlay/graphics based on the current scene
  • Automate scene switching with a third-party program (e.g. : auto-pilot, foot pedal, ...)

Client software

Client libraries (for developers)

Here's a list of available language APIs for obs-websocket:

The 5.x server is a typical WebSocket server running by default on port 4455 (the port number can be changed in the Settings dialog under Tools). The protocol we use is documented in PROTOCOL.md.

We'd like to know what you're building with obs-websocket! If you do something in this fashion, feel free to drop a message in #project-showoff in the discord server!

Contributors

Code Contributors

This project exists thanks to all the people who contribute. Contribute Code.

Financial Contributors

Become a financial contributor and help us sustain our community. Contribute Financially

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. Contribute

obs-websocket's People

Contributors

aki-954315 avatar alessionossa avatar andreykaipov avatar barraider avatar brendonovich avatar bryce-seifert avatar chefski avatar christophecvb avatar csunday95 avatar derrod avatar dnaka91 avatar exeldro avatar faithoflifedev avatar gxalpha avatar jdudetv avatar jeiea avatar lain-b avatar manuelmayer-dev avatar matteogheza avatar mattrossman avatar norihiro avatar notr1ch avatar palakis avatar patthemav avatar rosuav avatar rytoex avatar tt2468 avatar tytan652 avatar vainock avatar you-win 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  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

obs-websocket's Issues

Issues with Character Encoding

Originally mentioned in obs-websocket-community-projects/obs-websocket-js#6

Desired Scene Name: Änd

16:29:59.123: Source 'Scene 2' renamed to 'Änd'
16:30:25.151: obs-data.c: [obs_data_create_from_json] Failed reading json string (1): unable to decode byte 0xc4 near '"'
16:30:25.151: [obs-websockets] invalid JSON payload for '{"scene-name":"Änd","message-id":"11","request-type":"SetCurrentScene"}'

Sending 'getCurrentScene' or similar functions returns the correct scene name, but sending a request to setCurrentScene fails
https://github.com/Palakis/obs-websocket/blob/master/WSRequestHandler.cpp#L64-L77

recording folder

congratulations for the project, I would like to know if it is possible to get through the API target of the recordings folder. I would not set them only for reading
Thank you

How to install on Debian Jessie

At first: Many thanks for the project!

Unfortunately, I can't get it to work on Debian Jessie. I installed the newest version of OBS, then installed obs-websocket with the commands provided in your readme.md but the socket is not listed in the tools of OBS.

Is there a more detailed installation guide or has someone an idea / guess of what could be wrong?

Many thanks!

Notify clients when sources are changed in a scene

An event to notify clients when sources are renamed or the visibility has been changed.

"SceneItemChanged"

An item has been changed in the current scene.

  • "scene-name" (string) : name of scene
  • "item-name" (string) : old name of the changed item
  • "new-item-name" (string) : old or new name of the changed item if renamed

SetCurrentTransition doesn't work

Whatever transition name is given as parameter, SetCurrentTransition always responds with an error ; "requested transition does not exist".

Problems installing obs-websocket on obs-ftl

Hi, I am using obs-ftl found here: https://github.com/WatchBeam/obs-studio-ftl/releases

I am trying to install obs-websocket plugin on this version, but cannot seem to figure out why it isn't working. I am getting the following error when I am trying to start obs after a successful install.

capture

The error seems similar to the one mentioned in this issue: #22

I have no experience in compiling anything, I have only tried the windows-installer. I hope anyone can help me out, or have any ideas. Or maybe point me in the right direction on how to compile the obs-ftl version with obs-websocket.

Regards,
Hamatzu

Release Timeline

Hi Palakis,

Apologies, as I could not figure out any other way to communicate with you.
I am excited to consume your next version with the fixes and features I am aware of to date.
Asking for release dates is contentious so I would be content with an estimate of days, weeks or months :)

HTTPS connection not working

I don't know if it is the fault of the obs-websocket itself or the obs-websocket-js I'm using but I can't seem to get a working HTTPS connection (I need it because github.io pages are all HTTPS).
I tried to change the request from 'ws' to 'wss' but there is no respond.

StartStopStreaming - Broken when streaming is TRUE

#OBS Studio 17.0.2

Let me take another shot at this, I confused the issue as I had my main function on the brain and this is just about getstreamingstatus, not startstopstreaming.

When the stream is offline and I call getstreamingstatus I get what is expected, a nice json response with "streaming" set to false.

When the stream is online and I call getstreamingstatus I get:
{'preview-only': False, 'update-type': 'StreamStarting'}
Most times OBS crashes (log attached) but I'll share the top here...

Thread 2934 (Crashed)
Stack EIP Arg0 Arg1 Arg2 Arg3 Address
0115C1A8 71A86B2E 0115C454 0E01EAB4 00000000 0115D4F0 msvcr120.dll!0x71a86b2e
0115C43C 71AF4AAF 0115C4B0 00000FFF 0E01EAB4 00000000 msvcr120.dll!0x71af4aaf
0115C47C 71AF4A29 0115C4B0 00000FFF 0E01EAB4 0115D4F0 msvcr120.dll!0x71af4a29
0115C498 00EB2E36 0000012C 0E01EAB4 0115D4F0 0115FC0C obs32.exe!do_log+0x36
0115D4BC 029E7008 0000012C 0E01EAB4 0115D4F0 0115D548 obs.dll!blogva+0x18
0115D4D4 029E6FE2 0000012C 0E01EAB4 00313A3A 14AA4550 obs.dll!blog+0x12
0115D4E8 0E014F25 00000001 25AD4FC8 141C25B8 0115D578 obs-websocket.dll!0xe014f25
0115D550 6650EBDB 00000000 00000000 00000000 00000000 qt5core.dll!0x6650ebdb

Crash 2017-01-29 21-50-24.txt

Raise events for preview window changes?

Hey there! First off, I wanted to thank you for obs-websocket--this is awesome software and I love integrating with it.

Second, a feature request--maybe it's not possible because of the way that OBS works, but I'm wondering about the feasibility of preview scene notifications in Studio Mode. I use HTML5/Canvas overlays (a shared BrowserSource per "scene category"; cameras can switch in a single scene category without replacing the overlay) and it would be super useful from a CPU conservation standpoint to be able to disable rendering on inactive scenes. But, obviously, we want to render them in preview, too.

My C++ is rusty to the point of comedy but I'd be happy to help out if I can.

Ability to Start/Stop WebSocket Server

Desired:

  • The ability to start or stop the server in the settings menu.
  • The ability to store that choice for future sessions.

Nice to have:

  • Main window Indicator/Icon that shows if the server is running.
  • Indication of the server address in the options menu. Ideally the public facing IP with port number.

Issue & Request

Hi, my Issue is, for some reason source bounds (cx & cy) are 0, I'm using obs-websocket-js and I can't work out if this issue is from here or there

image

my request is for more events/functions, for example, I want to be able to change a sources position and dimensions when, for example, I use jQueryUI draggable() and resize() to change them on my webUI

image The WebUI so far, this is for a friend to be able to control his OBS when he's at conventions, etc...

I also posted this over at obs-websocket-js

[Enhancement] Allow user to change port.

Currently, there can only be one OBS window open at a time if I want to use this project. I would love for there to be a feature allowing me to change the listen port for each window, and if possible, set it in the main OBS settings so it remains set for the specific profile.

Plugin crash OBS Studio FTL on startup

I have problems with running obs-websocket in OBS Studio FTL

After plugin installation OBS does not starting. In Event log I see that record:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Name="Application Error" />
        <EventID Qualifiers="0">1000</EventID>
        <Level>2</Level>
        <Task>100</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2017-04-01T09:04:08.659185700Z" />
        <EventRecordID>153858</EventRecordID>
        <Channel>Application</Channel>
        <Computer>DevStudio</Computer>
        <Security />
    </System>
    <EventData>
        <Data>obs64.exe</Data>
        <Data>0.0.0.0</Data>
        <Data>58d29914</Data>
        <Data>ucrtbase.dll</Data>
        <Data>10.0.14393.0</Data>
        <Data>578997b5</Data>
        <Data>c0000409</Data>
        <Data>000000000006ea1e</Data>
        <Data>52b0</Data>
        <Data>01d2aac6eb07e641</Data>
        <Data>C:\Program Files (x86)\OBS Studio - FTL\bin\64bit\obs64.exe</Data>
        <Data>C:\WINDOWS\System32\ucrtbase.dll</Data>
        <Data>9935b9b7-80c0-45f6-a1d2-b0d34d92212f</Data>
        <Data />
        <Data />
    </EventData>
</Event>

Add more transition features

Suggestion for more "Transition Aware" Events...

getTransitionDuration( callback[ err, data ] )
Returns the current Transition name and duration in Milliseconds


setTransitionDuration( int milliseconds )
Sets the duration of the current transition in milliseconds


onTransitionDurationChange( )
Returns the current transition name and duration in milliseconds if it is changed. should include if the websocket client itself made the change, not just other clients or manually via the OBS UI


onSceneTransitionStart
Fires when...

  • A scene has just been set to be switched to
  • A transition has a duration greater than 0
  • A transition is not a "Cut" (Cut visibly does NOT have a duration input field in OBS)

onSceneTransitionEnd
Fires when the transition has finished and we have successfully switched scenes


onSceneTransitionStopped
This example requires more detail. You have 3 scenes. A, B, and C.

  • "A" is the Current Scene.
  • "B" is the scene you are transitioning to
  • In the MIDDLE of the transition, you select "C" to be the new scene
  • onSceneTransitionStopped fires instead of onSceneTransitionEnd
  • onSceneTransitionStart fires for the transition from "A" to "C" (since "B" was never fully transitioned to). IF the scene switch would use "Cut" or have a transition duration of 0, onSceneTransitionStart would not fire, as per its rules stated above

Translations

It would be nice to have more localizations, like German (done), Spanish, Portuguese (done), ...

Add a settings dialog

A Qt dialog with the following settings :

  • Enable or disable authentication (checkbox)
  • Authentication password (hidden text)

Notify clients when sources are added/removed/rearranged in a scene

Add event types SourceOrderChanged and RepopulateSources

"SourceOrderChanged"

Scene items have been rearranged.

  • "scene-name" (string) : name of the scene where items have been reordered

"SceneItemAdded"

An item has been added to the current scene.

  • "scene-name" (string) : name of the scene
  • "item-name" (string) : name of the item added to scene-name

"SceneItemRemoved"

An item has been removed from the current scene.

  • "scene-name" (string) : name of the scene
  • "item-name" (string) : name of the item removed from scene-name

release

do you have any plans to release it as a plugin (in binary form)?

issue carsh

hello .

I installed obs-studio 17.0.2 and obs-websocket 0.3.2 with client connection for a few times to change the source show off will occur crash

Crashes when sending GetSceneList after ScenesChanged on scene delete

Was randomly adding and removing scenes when suddenly removing scenes ended up in a crash, so far been able to constantly reproduce by opening test case, refreshing the page and then removing a scene in obs

test case, logs and stack trace: https://www.dropbox.com/sh/uc0vhjm76ozoy43/AAAHv4vSrz9WI0Is2E8EmhMBa?dl=0

socket traffic:

obs:recieve Object { update-type: "ScenesChanged" }  test.html:28:4
obs:sending Object { request-type: "GetSceneList", message-id: String }  test.html:36:5
obs:recieve Object { current-scene: "Scene 3", message-id: "1", scenes: Array[6], status: "ok" }  test.html:28:4
obs:recieve Object { scene-name: "Scene 3", update-type: "SwitchScenes" }  test.html:28:4
obs:recieve Object { update-type: "ScenesChanged" }  test.html:28:4
obs:sending Object { request-type: "GetSceneList", message-id: String }  test.html:36:5
obs:recieve Object { current-scene: "Scene 2", message-id: "2", scenes: Array[5], status: "ok" }  test.html:28:4

Won't load module in Linux

I'm using ubuntu 16.04 with OBS 0.16.2 and plugin version 0.3.1. I've installed via deb.

When I go to run OBS I get this:

error: os_dlopen(/usr//lib/obs-plugins/obs-websocket.so->/usr//lib/obs-plugins/obs-websocket.so): libobs-frontend-api.so.0: cannot open shared object file: No such file or directory

warning: Module '/usr//lib/obs-plugins/obs-websocket.so' not found

I've listed the directory in question and the file obs-websocket.so is there.

SetCurrentScene Request and SceneChange Event handled out of order

When calling HandleSetCurrentScene, OnSceneChange is emit before the scene change finishes?

Based on the logs, it looks like the SceneChange emit is before the SetCurrentScene sends its OK response. Not familiar with the whole process of releasing obs_sources/scenes - but it might be related to that and may just be an issue with the obs api.

Example:

setCurrentScene('scene 2')
sceneChange => 'scene 1'
(setCurrentScene response)

setCurrentScene('scene 1')
sceneChange => 'scene 2'
(setCurrentScene response)

setCurrentScene('scene 1')
sceneChange => 'scene 1'
(setCurrentScene response)

On another note, I've had some crashes that might be related to this commit, but my new machine's build environment is all screwed up. I'll see if I can reconfigure and actually build the updates locally.

  • I've also had some funky business where it will list a set of scenes, but attempting to switch to one will produce a "scene does not exist" - then going into OBS and trying to switch to that scene will crash the program. Crash logs point to obs_scene_release.
  • I've also had something similar crashes happen and have it clear my scene list on restart.
  • Disconnecting from the socket then reconnecting within a short time window (~2 seconds?) will crash obs.

Again, I'll see if I can update my machine and test with your changes since the last build.

Audio mixing commands

Add a command named SetVolume to set the volume of a specific source.

"SetVolume"

Request fields :

  • "source" (string) : name of the source which volume will be set
  • "volume" (double) : desired volume, ranging from 0.0 to 1.0

Response : OK if source exists, error otherwise. No additional fields.

Problems building on Windows

I setup the solution and I can compile the project without errors. However I when try to add the DLLs in obs's plugin directory and try to run obs I get a number of errors like:

The procedure entry point ?toUtf8@QString@@QEGBA?AVQByteArray@@XZ could not be located in the dynamic link library C:\Program Files (x86)\obs-studio\obs-plugins\64bit\obs-websocket.dll

The procedure entry point ?toLatin1@QString@@QEGBA?AVQByteArray@@XZ could not be located in the dynamic link library C:\Program Files (x86)\obs-studio\obs-plugins\64bit\QT5Network.dll

I'm using Qt5.8 and building using VS2015 on Windows 10. Not sure what I'm doing wrong, but I assume that I am not building obs-websocket.dll properly even though I seem to compile without issue.

Switch to being Client or let others talk

Ok I'm very excited at how this project is coming along.
Did some initial tests on the rec-timecode and I couldn't have asked for more. Then I started testing if the clients could pass on information to each other as they already had a connection to each other and may need to exchange info.

Oh no. Every message that isn't directed at the server is interpreted as bad json and a message to that effect is shared. Now my future webpage/app could account for this and just ignore the messages, but that's a lot of useless chatter. Can we add an option to ignore other chatter?

Then I thought more about it and realized that maybe I'd want the websocket server to not be hosted by OBS itself and maybe just be another client on an existing websocket server. Then I realized I might want to have multiple obs websocket clients check in on that server and be individually commendable! So we have to name each OBS websocket instance and have them respond to that individual name or an "all" name.

This rabbit whole is getting big.
Hopefully this all makes sense, I just woke from a hot sweat dreaming about the possibilitys.

Thank you for your brilliant tool and time.

Connection confirmation prompt

Show a prompt when an unknown client attempts a connection to the server. Users will then have to choose what to do :

  • Allow for X minutes
  • Allow until OBS is closed
  • Always allow (client fingerprint will be saved)
  • Deny connection

Time-Codes Please EX: {"recTimecode": "00:05:47"}

Can you have the events return recording timecodes on each event?
EX: {"recTimecode": "00:05:47"}

or better Ex:

{
    "scene-name": "Game",
    "update-type": "SwitchScenes",
    "rec-Timecode": "00:05:47",
    "stream-Timecode": "00:05:37"
}
{
    "scene-name": "Intro",
    "update-type": "SwitchScenes",
    "rec-Timecode": "00:08:53",
    "stream-Timecode": "00:06:37"
}

I'm hopping to use this to whole thing to dynamically create an EDL file so we can Quickly edit the recordings instantly after recording has completed.
Maybe in the future OBS can introduce Chapter Markers too, then we can use our web socket connection to add events to the feed, making it easy to do quick edits based on time-coding events within a recording...

Thank you for the consideration

Possible crash when a client disconnects

We've been using the websocket as a remote tool to change scenes and get information on current status. This is installed using the zip file.

We coded a custom web application to access the websocket, following the API documentations using the node API library.

The remote control web-app stays connected for hours at a time, and we've had it crash [consistently] after refreshing.

Crash dump:

Unhandled exception: c0000005
Date/Time: 2016-12-12, 00:04:11
Fault address: 545001F3 (c:\program files (x86)\obs-studio\bin\64bit\qt5core.dll)
libobs version: 0.16.6
Windows version: 6.3 build 9600 (revision: 17415; 64-bit)
CPU: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz


Thread 31E4 (Crashed)
Stack            EIP              Arg0             Arg1             Arg2             Arg3             Address
000000373FDCB810 00000000545001F3 00000037528F0870 000000000000000C 000000000000000C 0000000000000000 qt5core.dll!0x545001f3
000000373FDCB900 00007FFF72DC1274 00000037528F0870 000000373FE9EE40 0000000000000000 000000375277A490 qt5websockets.dll!0x7fff72dc1274
000000373FDCB940 0000000054505907 000000373FEB52E0 000000373FEBAD40 00000037528F0870 0000003752895130 qt5core.dll!0x54505907
000000373FDCBAF0 00000000548A7CA0 000000373FE9EE10 000000373FDCBC20 0000003752895130 00000000542A2C6E qt5widgets.dll!0x548a7ca0
000000373FDCBB20 00000000548A6BFA 000000373FDCFB40 000000373FE9EE10 0000003752895130 00000037528F0800 qt5widgets.dll!0x548a6bfa
000000373FDCC260 00000000544E23C9 00007FFF935545FA 0000000000000000 0000003752895130 000000373FDCC368 qt5core.dll!0x544e23c9
000000373FDCC2E0 00000000544E4161 000000373FE9EE40 0000000000000000 000000373FEBF3D0 000000373FDCC390 qt5core.dll!0x544e4161
000000373FDCC390 00007FFF78916F7F 0000003700000024 0000000000000000 0000000000000401 000000373FDCC598 qwindows.dll!0x7fff78916f7f
000000373FDCC3C0 0000000054527B25 0000000000000401 000000373FDCC598 000000373FDCC5C8 00000000000306C4 qt5core.dll!0x54527b25
000000373FDCC4D0 00007FFF935524FD 000000374044B690 000000373FDCC660 00000000000306C4 000002400350CFE6 user32.dll!0x7fff935524fd
000000373FDCC5A0 00007FFF93552357 00000000060003FF 0000000006000301 0000000000000000 0000000000000000 user32.dll!0x7fff93552357
000000373FDCC620 0000000054527299 0000000000000000 0000003700000024 0000000000000000 000000373FDCFB40 qt5core.dll!0x54527299
000000373FDCF9B0 00007FFF78916F59 000000373FEB52E0 0000003700000014 000000373FDCFA88 000000373FE9EE10 qwindows.dll!0x7fff78916f59
000000373FDCF9E0 00000000544DEDA1 000000373FEBB960 0000003700000000 000000373FE9EE10 00007FF7C1C043F0 qt5core.dll!0x544deda1
000000373FDCFA60 00000000544E1237 000000373FEAAE40 00007FF7C1C043F0 000000373FDCFD30 000000373FEA2F20 qt5core.dll!0x544e1237
000000373FDCFAD0 00007FF7C1AF6833 0000000000000000 0000000000000001 0000003700000000 0000000000000000 obs64.exe!run_program+0x1a3
000000373FDCFC30 00007FF7C1AF862E 0000000000000001 0000000000000000 000000373FDCFC68 000000373FEA9DE0 obs64.exe!main+0x35e
000000373FDCFDB0 00007FF7C1BE2195 000000373FE92938 0000000000000000 0000000000000001 0000000000000000 obs64.exe!WinMain+0x155
000000373FDCFE40 00007FF7C1BE1BA5 00007FF7C1BE1A48 00007FF7C13CF000 0000000000000000 0000000000000000 obs64.exe!__tmainCRTStartup+0x149
000000373FDCFE80 00007FFF913D13D2 00007FFF913D13B0 0000000000000000 0000000000000000 0000000000000000 kernel32.dll!0x7fff913d13d2
000000373FDCFEB0 00007FFF938A54E4 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ntdll.dll!0x7fff938a54e4

OS X builds

Right now I can build the plugin on Windows and Linux. However, I need access to an OS X system to build and test an OS X version.

Ability to change a scene item's size and position

"SetSceneItemPosition"

Request fields :

  • "item" (string) : The name of the scene item.
  • "x" (float) : x coordinate
  • "y" (float) : y coordinate

Response : OK if specified item exists, error otherwise.

"SetSceneItemTransform"

Request fields :

  • "item" (string) : The name of the scene item.
  • "x-scale" (float) : width scale factor
  • "y-scale" (float) : height scale factor
  • "rotation" (float) : item rotation (in degrees)

Response : OK if specified item exists, error otherwise.

Additionally, JSON objects describing scene items will also give the item's original size.

Unable to compile on Ubuntu 14.04 LTS

this distro is equipped with Qt 5.2.1 and is still supported until April 2019.
obs-studio provides build instructions PPA repository and packages for trusty with ffmpeg-next enabled.

obs-websocket compile breaks on:

/home/travis/build/asquelt/obs-websocket/WSEvents.cpp:81:3: error: no matching function for call to ‘QTimer::singleShot(int, WSEvents::WSEvents(WSServer*)::__lambda0)’
  });
   ^
/home/travis/build/asquelt/obs-websocket/WSEvents.cpp:81:3: note: candidates are:
In file included from /usr/include/qt5/QtCore/QTimer:1:0,
                 from /home/travis/build/asquelt/obs-websocket/WSEvents.cpp:21:
/usr/include/qt5/QtCore/qtimer.h:81:17: note: static void QTimer::singleShot(int, const QObject*, const char*)
     static void singleShot(int msec, const QObject *receiver, const char *member);
                 ^
/usr/include/qt5/QtCore/qtimer.h:81:17: note:   candidate expects 3 arguments, 2 provided
/usr/include/qt5/QtCore/qtimer.h:82:17: note: static void QTimer::singleShot(int, Qt::TimerType, const QObject*, const char*)
     static void singleShot(int msec, Qt::TimerType timerType, const QObject *receiver, const char *member);
                 ^
/usr/include/qt5/QtCore/qtimer.h:82:17: note:   candidate expects 4 arguments, 2 provided

whole build log: https://travis-ci.org/asquelt/obs-websocket/jobs/219241067

Machine-readable protocol definition

As of now, PROTOCOL.md is written by hand.
The idea would be to have protocol definitions in a machine-readable format somewhere in the repo (a separate file or inline comments in the source code) that will serve as a base for an automatically generated PROTOCOL.md and/or an eventual test suite.

Error in OBS studio running

After build sucess, I just copy obs-websocket.dll & obs-websocket.pdb to obs studio plugin path.
And then got an debug error:
QWidget: Must construct a QApplication before a QWidget
image

OBS crash on second sent message

OBS (32 and 64bit) crashes whenever I send a second message.

Steps to reproduce the crash:

  • start OBS with enabled obs-websocket
  • go to http://www.websocket.org/echo.html
  • enter correct location (ws://localhost:4444)
  • press Connect
  • enter into Message field: {"message-id":"1","request-type":"GetSceneList"}
  • press Send
  • correct answer is received:
    RECEIVED: { "current-scene": "Scene 1", "message-id": "2", "scenes": [ { "name": "Scene 1", "sources": [ { "cx": 1920.0, "cy": 1080.0, "name": "Image", "render": true, "type": "image_source", "volume": 1.0, "x": 0.0, "y": 0.0 } ] }, { "name": "Scene 2", "sources": [ { "cx": 1920.0, "cy": 1080.0, "name": "Image 1", "render": true, "type": "image_source", "volume": 1.0, "x": 0.0, "y": 0.0 } ] } ], "status": "ok" }
  • press Send again (changing the message-id to 2 doesn't change anything)
  • OBS crashes with the following error:
Problemsignatur:
  Problemereignisname:	APPCRASH
  Anwendungsname:	obs64.exe
  Anwendungsversion:	0.0.0.0
  Anwendungszeitstempel:	5831e36c
  Fehlermodulname:	StackHash_571a
  Fehlermodulversion:	6.3.9600.18438
  Fehlermodulzeitstempel:	57ae642e
  Ausnahmecode:	c0000374
  Ausnahmeoffset:	PCH_03_FROM_ntdll+0x0000000000090C6A
  Betriebsystemversion:	6.3.9600.2.0.0.144.8
  Gebietsschema-ID:	1031
  Zusatzinformation 1:	571a
  Zusatzinformation 2:	571a82f8f669fe6504f96cd83e647d6c
  Zusatzinformation 3:	fbfe
  Zusatzinformation 4:	fbfe6d11217e4e4d97ba18df8e2619c0

When I click debug VisualStudio tries to open the following file: obs2\deps\w32-pthreads\pthread_mutex_trylock.c

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.