Closed peppertechie closed 4 years ago
I'm going to attach a bounty to this request. Willing to discuss actual value.
@peppertechie sorry I've not had time to do anything with this, have you got a dev enviroment for testing?
@EventReplay something I can give you access to or something for me to test in?
Since we aren't streaming from church right now I may be able to bring it home where I have companion running. I don't yet have a production implementation at the moment so dev should be possible.
I have Companion on a Pi4 and an 2012 Mac Mini for config and console right now.
Something for you to do some testing before code gets pushed to a beta build. I have no way of testing as I don't have access to a unit and the powers that be quite rightly like confirmation testing has been done before inclusion. I've started to add sending additional commands which could be tested first, then I'll look at feedback. I could create a branch to test code. @bryce-seifert are these additional commands of interest to you and are you willing to do some testing?
No problem. I should be able to get a dev environment ready by the end of the weekend. I'm not sure how to pull in a branch yet, but can figure it out.
My access to a box is currently quite spotty, but I may be able to get in some testing.
@peppertechie I'll create a branch when I get a chance. @bryce-seifert whatever you can do I'm sure would be appreciated.
@peppertechie I've created a branch add-commands, you could just replace the index.js from here into master for a test.
@EventReplay thank you for the new commands. I have completed testing the initial version. Everything works except the start and stop RTMP commands. I have specific notes at the bottom to help correct this issue.
I tested the basic commands with the current version, then updated the index.js and restarted Companion. I retested the basic commands and then moved onto the new ones.
Let me know if you need more information and when further testing is needed.
Existing commands regression Route input to output A or B Input 1 to A - Pass Input 2 to A - Pass Recall a saved user preset - not tested Recall a saved input preset - not tested Recall a saved layout preset Recall Layout 1 - pass Recall Layout 9 - pass Recall Layout 10 - pass Stop/Record/Pause Record start - pass Change layouts while recording - pass Record pause - pass Record pause to restart - pass Record Stop - pass Extend recording - not used Feedback Change colors for record state - pass
New Cannot test B as I only have A and Confidence A
Recall saved stream preset Recall 1 on A - Pass Recall 2 on A - Pass Recall 3 on A - Pass Recall 1 on Confidence A - Pass Recall 2 on Confidence A - Pass Recall 3 on Confidence A - Pass
Recall saved encoder preset Recall 1 on A - Pass Recall 2 on A - Pass Recall 20 on A - Pass Recall 1 on Confidence A - Pass Recall 2 on Confidence A - Pass Recall 21 on Confidence A - Pass
RTMP Stream Start Stream - FAIL Stop Stream - FAIL
In index.js you have
case 'rtmp_stream':
cmd = '\x1BE' + opt.rtmp_stream + '*' + opt.state + 'STRC';
break;
Using TCPDUMP I captured "E1*1STRC"
This looks to be the command for enabling or disabling a stream
The Extron is returning a "E13" – Invalid parameter (number is out of range) for this command
It's also not the command I need to start a push RTMP stream to YouTube, Facebook, or an Nginx RTMP server
Working commands Connecting to the Extron via Telnet I was successful in starting, stopping, and getting stream status with the following.
User guide p126
RTMP Stream Enable/Disable
Enable RTMP push stream
Enable push stream on Archive Ch 1
Esc E1*1RTMP
View RTMP push stream
Esc E1RTMP
Query primary RTMP Status
Esc s1*1RTMP
Telnet capture ^[ is escape key
^[e1*1RTMP
RtmpE01*1
^[E1rtmp
1
^[s1*1RTMP
1
^[E1*0RTMP
RtmpE01*0
^[E1rtmp
0
^[s1*1rtmp
0
Thanks for such a detailed response. Sorry my mistake I used the wrong command for stream. Amended command should be good now.
Did a quick regression and tested the Start and STOP RTMP. Everything passed.
To clarify the feedback feature this is the entry for the status I am requesting. Thank you so much.
Original request Under "RTMP Stream Status" Query primary RTMP Status (this one is Offline or Live and changes after the connection is actually made to the destination)
@peppertechie I have now added some feedback for the primary stream only at the moment.
Feedback works like this at the moment, when you start a stream a response from the unit will trigger the bank colour change, then the heartbeat takes over querying status every 5 seconds.
Let me know how this works.
@EventReplay
The first load and tests it seemed to get stuck in the ON position, but after I cleared everything my test cases were successful and I couldn't cause it to get stuck. I'll make sure to run extra tests in future version to see if I can replicate it getting stuck.
Does the state visibly change for the following cases (tested both the positive and negative state option): Start stream from Companion: Pass Stop stream from Companion: Pass Start stream from Extron GUI: Pass Stop stream from Extron GUI: Pass
I couldn't come up with any more test cases for state so this version passes as far as I am concerned.
I think the stuck ON is because I changed code for on/off and prob needs an updaterscript to sort that if you had an existing companion config already. I generally reset companion and start a fresh for testing.
So if happy with how feedback works your just missing feedback for the backup stream?
I am happy. This is really great.
I have not used a backup stream yet, but I think it would be appropriate to add for completeness.
Secondary stream feedback added, that should fulfill your request hopefully. If you have no issues I'll try to get this pushed to a build.
@peppertechie @bryce-seifert module upgraded
Using the production version of index.js here are some QA cases to close out this request.
Thank you again to @EventReplay
Existing commands regression Route input to output A or B Input 1 to A - Pass Input 2 to A - Pass Recall a saved user preset - not tested Recall a saved input preset - not tested Recall a saved layout preset Recall Layout 1 - Pass Recall Layout 8 - Pass Recall Layout 9 - Pass Stop/Record/Pause Record start - Pass Change layouts while recording - Pass Record pause - Pass Record pause to restart - Pass Record Stop - Pass Extend recording - not used Recording Feedback Change colors for record state - Pass
New Cannot test B as I only have A and Confidence A
Recall saved stream preset Recall 1 on A - Pass Recall 2 on A - Pass Recall 3 on A - Pass Recall 1 on Confidence A - Pass Recall 2 on Confidence A - Pass Recall 3 on Confidence A - Pass
Recall saved encoder preset Recall 1 on A - Pass Recall 2 on A - Pass Recall 20 on A - Pass Recall 1 on Confidence A - Pass Recall 2 on Confidence A - Pass Recall 21 on Confidence A - Pass
RTMP Stream Start Stream on A - Pass Stop Stream on A - Pass Stream feedback on A - Pass Stream feedback on A secondary/backup stream - Pass Start Stream on Confidence A -Pass Stop Stream on Confidence A -Pass Stream feedback on Confidence A - Pass Stream feedback on Confidence A secondary/backup stream - Pass
Requesting additional control for the module "companion-module-extron-smp351"
Manual is at the following link with control info starting on page 105 https://media.extron.com/public/download/files/userman/smp_300_series_68-2238-01_K.pdf
Looking for the following commands to be added: Recall encoding preset $number (to choice of archive or confidence) Recall streaming preset $number (to choice of archive or confidence) Start RTMP stream (on choice of archive or confidence) with feedback on stream status
I have a unit, but it's at church so testing will be intermittent as I am not there much right now.