Skip to content

Commit a6ebcf7

Browse files
authored
Merge pull request #2 from jeffmikels/electron
Electron
2 parents 17d4fb1 + 7a3b585 commit a6ebcf7

File tree

11 files changed

+1185
-149
lines changed

11 files changed

+1185
-149
lines changed

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# vMix Snapshot Proxy
22

3-
43
vMix has a robust API, but one key limitation of the API is that while you can
54
tell vMix to take a snapshot of an input, it will save the image on the vMix
65
machine but not send the image over the network.
@@ -10,11 +9,10 @@ for those images.
109

1110
The application is especially helpful in providing preview images of each input for
1211

13-
[Unofficial vMix Remote Control](https://play.google.com/store/apps/details?id=org.jeffmikels.vmix_remote)
14-
15-
12+
[Unofficial vMix Remote Control for Android](https://play.google.com/store/apps/details?id=org.jeffmikels.vmix_remote)
13+
[Unofficial vMix Remote Control for iOS](https://apps.apple.com/us/app/unofficial-vmix-remote-control/id1551404035)
1614

17-
## Installation
15+
## Installation for Advanced Users
1816

1917
These commands should be run on the same computer that is running vMix.
2018

@@ -53,4 +51,4 @@ Open a browser and visit:
5351

5452
`http://[PROXY_IP_ADDRESS]:8098/[INPUT_NUMBER].jpg`
5553

56-
Every time you visit that address, you will receive a new snapshot image of the selected input.
54+
Every time you visit that address, you will receive a new snapshot image of the selected input.

build-win.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
# this process assembles the electron app manually
4+
# assuming the binary has already been downloaded into the release directory
5+
6+
TARGET=release/vmix-snapshot-proxy/resources/app
7+
if [[ ! -d $TARGET ]]; then mkdir "$TARGET"; fi
8+
rm -rf $TARGET/*
9+
mkdir "$TARGET/lib"
10+
11+
install() {
12+
cp "$1" "$TARGET/$1"
13+
}
14+
15+
install package.json
16+
install main.js
17+
install preload.js
18+
install renderer.js
19+
install index.html
20+
install lib/vue.js
21+
22+
# install node_modules
23+
pushd "$TARGET"
24+
npm i --production
25+
popd

index.html

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
6+
<!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"> -->
7+
<!-- <meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'"> -->
8+
<!-- <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" /> -->
9+
<link rel="stylesheet" type="text/css" href="./style.css" />
10+
<title>vMix Snapshot Proxy</title>
11+
</head>
12+
<body>
13+
<div id="app">
14+
<div id="status" :class="status">{{status}}</div>
15+
<h1>vMix Snapshot Proxy</h1>
16+
17+
<h2>Instructions: <button @click="show_instructions = !show_instructions">{{show_instructions? 'HIDE':'SHOW'}}</button></h2>
18+
<div id="instructions" v-if="show_instructions">
19+
<ul>
20+
<li>This app should be running on the same computer that's running vMix.</li>
21+
<li>vMix Settings must enable remote access over port 8088.</li>
22+
<li>You must configure the vMix Storage directory and select it here.</li>
23+
</ul>
24+
</div>
25+
26+
<h2>Server Settings: <button @click="show_status = !show_status">{{show_status? 'HIDE':'SHOW'}}</button></h2>
27+
<div v-if="show_status">
28+
<div>
29+
<label for="storage_dir">vMix Storage Directory: </label>
30+
<input name="storage_dir" id="storage_dir" v-model="storage_dir" @change="updateStorageDir" style="width: 100%" />
31+
</div>
32+
<p><pre>{{msg}}</pre></p>
33+
</div>
34+
35+
<h2>Debug: <button @click="show_debug = !show_debug">{{show_debug? 'HIDE':'SHOW'}}</button></h2>
36+
<div v-if="show_debug">
37+
<p><pre>{{output}}</pre></p>
38+
</div>
39+
40+
<h2>Inputs: <button @click="show_inputs = !show_inputs">{{show_inputs? 'HIDE':'SHOW'}}</button></h2>
41+
<p v-if="loading">loading inputs...</p>
42+
<div id="inputs" v-if="show_inputs" >
43+
<div v-for="input in inputs" class="input">
44+
<img class="preview" v-if="input.url" v-bind:src="input.url" alt="" />
45+
<div class="preview" v-if="!input.url">&nbsp;</div>
46+
<div class="caption">{{input.number}}. {{input.text}}</div>
47+
</div>
48+
</div>
49+
</div>
50+
<script src="./lib/vue.js"></script>
51+
<script src="./renderer.js"></script>
52+
</body>
53+
</html>

lib/vue.js

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)