It is currently September 19th, 2024, 12:36 pm

Introduction - Web TV Producer - Bob Grosh

Introduce yourself to the Rainmeter community!
User avatar
bobgrosh
Posts: 134
Joined: May 1st, 2011, 10:33 pm

Introduction - Web TV Producer - Bob Grosh

Post by bobgrosh »

I produce live streaming videos that are embedded into web pages for churches,radio stations,TV stations, civic groups, schools, and clubs.
I have in excess of 35 computers that I remote into the desktops during LIVE broadcasts. I need a simple, IDIOT PROOF user interface that a camera operator, radio station host or even a school teacher can use to point their camera and audio is going out to their audience.

Most of the time I have this automated with a scheduler program. This works well for Churches and radio stations (most of the time). I run into problems when there are specials like a remote Radio broadcast, special church concert, or other unscheduled event.

Football games can be challenging. Last season, I often had to manage 6 to 8 broadcasts at the same time on Friday nights. Not easy, when I have to insert station breaks during timouts and between plays, post scores, overlay graphics, and do weather radar reports if there are any thunderstorm.

My broadcasts originate from 5 different states and 16 different cities. I used four computers at the same time last year, each monitoring the desktops of two or more remote PC's during football games. THIS YEAR I WILL BE EXPANDING WITH AN ADDITIONAL 25 HS Football CHANNELS. Note that some channels use as many as 6 cameras and four remote PC's during a single 30 minute broadcast, and twice that many in the course of a single day.

I have two problems that I hope Rainmeter will solve.
My biggest problem is with my camera operators. I think Rainmeter may help.
  • 1 - On remote PC's I need a simple operator interface.
    2 - On my studio PC's I need quick and easy access to dozens of flash applications and remote desktops as well as some clocks and scheduleing applications.
I have already done most of what I need using system scheduler, and Samurize client and server, (a precursor to Rainmeter) I also use Dropbox to sync schedules, ini files and configurations on all the remote machines.

Samurize works well and is very easy to use because of it's graphical editing that lets me move, align and size all the elements. I originally chose it over Rainmeter because of Rainmeter's clunky notebook editor. However, My clients machines include windows 98, XP, Vista, and 7., so I worry about future support for Samurize. There have been no new posts on their forum for a couple years.

I'll be duplicating most of what I have working in Samurize with Rainmeter.
For the remote PC's Here is what I'll be going.

1 - I'll still use system scheduler to start and stop camera streams by executing Flash media Encoder 3 via the command line interface. I'll need Rainmeter to see if those processes are running and hide any buttons on the desktop that might try to start the same camera or stream to the same channel while a live show is on.
2 - I'll need buttons on the desktop to launch flash media encoder for special (unscheduled) broadcasts.
3 - I'll use system scheduler to create a flag to be monitored by Rainmeter, when true, Rainmeter will display a countdown timer to let the camera operator know a LIVE broadcast is about to start. Rainmeter will need to be able to check the schedule and display the show's start time and description of the show.
4 - I need a way to display an embedded channel from Livestream, Ustream, etc on the desktop and control which channel it is to display.
5 - I need pan tilt zoom controls for Logitech Orbit cameras.
6 - I need a VU meter to show the recording level of the Mic. (I expected somone would already have a skin for that, but haven't found one yet! Any sugestions?)
7 - I need A way to display a couple text files from the local dropbox folders for announcements, schedule changes and specials.
8 - I need a way to easily capture an on-screen form and send it to google docs so camera operators can add new shows (specials) to the schedule.

Anyway, I sort of defined my first project, now the fun begins.

Bob Grosh, Producer, TallasseeTV.com and other localy oriented video channels.
You do not have the required permissions to view the files attached to this post.
User avatar
Chewtoy
Moderator
Posts: 995
Joined: June 10th, 2009, 12:44 pm
Location: Sweden

Re: Introduction - Web TV Producer - Bob Grosh

Post by Chewtoy »

That's.... Quite a job you have there. Sounds interesting, and like you would have to live on caffeine to survive. :P

Anyhow. Welcome!
Samurize have been Rainmeters competitor for many years, but as the development seem to have stopped Rainmeter is now the leading software out there. Though you must understand that everything that was possible in Samurize is not possible in Rainmeter, and everything that is possible in Rainmeter is not possible in Samurize.
Not having a GUI to do the editing is an active choice we have continued to make over the years as we feel that a GUI would just limit the creativity. We are not saying no one should make one, if one feel like doing one they should, but it will most likely never be bundled with Rainmeter.

Rainmeter will not work as an interface, though it can help you do some things, it will not be all that awesome (though I doubt Samurize would be much better at that ;) ).

While Rainmeter won't handle any flash by itself, you can make shortcuts to the applications you need.
You can have as many clocks as you like! It's almost what Rainmeter is made for! Or, at least that is what it got famous for in the beginning.

As for the list of things you have there:

1. That would be possible I think. Measure if a process is running, then use a conditional to show and hide buttons that have LeftMouseUpAction's on them (the commands).
2. Possible. A simple dock of some kind.
3. Hmm... I'm not sure about this. While you can make a countdown I'm not sure how you would link this to a system flag. Rainmeter would need to see some 1 or 0 (or the like) and based on that show+start the countdown.
4. Not possible. Rainmeter do not handle any kind of video. It can send commands to it (if you got a program that supports it), but Rainmeter will in no way function as the actual player.
5. If it can take commands via CMD, it's possible. Else you will probably need a plugin for it.
6. Not possible at the moment. Need a plugin to get the levels, and so far we got none. No spectroscope, no nothing.
7. Very much possible. Take a look at all the note skins that are floating around out there.
8. I'm not sure about this. My first reaction is that if it's possible, it won't be all that easy. Rainmeter got no way of uploading a file to some place.

Anyhow, good luck and welcome! :)
I don't think, therefore I'm not.
User avatar
santa_ryan
Posts: 397
Joined: June 22nd, 2010, 4:11 am

Re: Introduction - Web TV Producer - Bob Grosh

Post by santa_ryan »

Pretty much all of what he wants can be done with AutoIt, Authotkey, rainmeter, and lua. :D
I have three rules when I'm trying to help you.
  • Don't get mad when you don't understand something
  • Be VERY specific with what you ask for.
    The more specific you are, the higher the quality of support you receive.
  • Do not just copy and paste what I put in examples and come back saying it doesn't work.
    It does work, but I purposely left blanks that you need to fill for your specific needs.
User avatar
bobgrosh
Posts: 134
Joined: May 1st, 2011, 10:33 pm

Re: Introduction - Web TV Producer - Bob Grosh

Post by bobgrosh »

santa_ryan wrote:Pretty much all of what he wants can be done with AutoIt, Authotkey, rainmeter, and lua. :D
OK, I'll bite, what is lua?

I already use Autohotkey, and yes, converting some of the key assignments to cmds does work with Rainmeter.

I got a schedule put together by editing a copy of gCal.
Changed the icon title and subtitle. Expanded it from 8 to 16 events.
I fixed one real problem with it, since I have several shows a day, the right end of the line would say something like:
Tue May 3 ...

I managed to change it to get:
Tue May 3, 9:01am - 10am

Which is better and works greate except for the first event, it shows up as:
Mon May2, 4:430pm - Mon May 2, 8:30pm

( added the red color to hi-light the part I don't want. )
The unwanted second "Mon May 2," also shows up in the tool tip for that line.

Another problem with gCal ( all variants ) is that it dosen't always diplay the Google Calender item correctly.
For example: the show entered into google calender as "Tuesday's with the Mayor" shows up in Rainmeter's gcal as:
Tuesday's with the Mayor Tue May 3, 7:45 - 8am

Next I have to get TWO different versions of gCal to show up on the desktop at the same time. (Some of my users simulcast on two channels at the same time and need to see both schedules.)

Here is what it looks like:
screen shot 2.jpg
CODE BELOW:

Code: Select all

[Rainmeter]
Author=bobgrosh
AppVersion=1003000 ; specifies oldest Rainmeter version this will work with
Update=1000        ; Likewise
MouseActionCursor=0
MiddleMouseDownAction=!RainmeterDeactivateConfig
BackgroundMode=1

[Metadata]
Name=Google Calendar
Description=Shows upcoming events in Google Calendar.
Instructions=Refer to the manual to display your Gcal events (activate Gnometer\Manual.ini).
Version=1.3.0
License=Creative Commons BY-NC-SA 3.0

[Variables]
skin.Style=Horizontal
GET=.*(?(?=.*<title).*<title.*>(.*)</title><summary.*: (.*)&am)
@Include=#ROOTCONFIGPATH#SETTINGS\Variables.inc
skin.Width=#width.Gcal#

; MEASURES ====================================

[mGcal]
Measure=Plugin
Plugin=WebParser.dll
UpdateRate=1800

;-----------------in the next line change results-nn to the number of lines needed.
Url=http://www.google.com/calendar/feeds/#gcal.URL#/basic?max-results=16&futureevents=true&singleevents=true&orderby=starttime&sortorder=a

;-----------------in the next line add more #GET# statements ( 8 of them for 8 lines, 8 more for 16, etc.
RegExp="(?siU)<email>#GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET##GET#"

; ---------------------------------
; Below are X groups of two definitions, ITEM and TIME
; if you want more than 8 you have to add more groups and edit them


; ------- group 1 below

[mItem1]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=1

[mTime1]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=2
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

; ------- end of group 1 above



[mItem2]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=3

[mTime2]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=4
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem3]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=5

[mTime3]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=6
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem4]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=7

[mTime4]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=8
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem5]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=16

[mTime5]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=10
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem6]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=11

[mTime6]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=12
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem7]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=13

[mTime7]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=14
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

[mItem8]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=15

[mTime8]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=16
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "

;-----------------------------------------
; add more groups below this,


;[mItem9]
;Measure=Plugin
;Plugin=WebParser.dll
;Url=[mGcal]
;DecodeCharacterReference=1
;StringIndex=17

;[mTime9]
;Measure=Plugin
;Plugin=WebParser.dll
;Url=[mGcal]
;StringIndex=18
;Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "



[mItem9]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=17

[mTime9]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=18
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "



[mItem10]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=19

[mTime10]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=20
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem11]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=21

[mTime11]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=22
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem12]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=23

[mTime12]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=24
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem13]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=25

[mTime13]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=26
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem14]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=27

[mTime14]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=28
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem15]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=29

[mTime15]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=30
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "




[mItem16]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
DecodeCharacterReference=1
StringIndex=31

[mTime16]
Measure=Plugin
Plugin=WebParser.dll
Url=[mGcal]
StringIndex=32
Substitute="2011 ":"","2012 ":"","2013 ":""," to ":" - "







;end of added groups of ITEM and TIME definitions
;-----------------------------------------




; STYLES ======================================

@Include2=#ROOTCONFIGPATH#SETTINGS\Style#skin.Style#.inc

[sPopup]
Hidden=0

[sTextL]
W=(#skin.Width#-250) 
; changed from 90 to 250 so that the entire date and time is displayed on the right
ToolTipText=%1
Hidden=0

[sTextR]
W=250
; changed above line from 90 to 250, ditto
Text="%1"
ToolTipText=%1
Hidden=0

[sSeperator]
Hidden=0

; METERS ======================================

[Line]
Meter=IMAGE
MeterStyle=sLine

[Icon]
Meter=IMAGE
MeterStyle=sIcon
ImageName=Gcal.png
ToolTipText="Open Google Calendar"
LeftMouseUpAction=!Execute [http://www.google.com/calendar]
MouseActionCursor=1

[Title]
Meter=STRING
; next line defines the text displayed to the right of the icon
MeterStyle=sTitle
Text="Tallassee TV"
; changed the above from "gcal"
[Subtitle]
Meter=STRING
MeterStyle=sSubtitle
Text="Schedule"
;     ________ changes events to Schedule


[Popup]
Meter=IMAGE
MeterStyle=sPopup
H=((#h.Other#*16)+45)
; changed *8 to *9 to add another line


; ----------------------- START of group 1 
[Item1Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem1
Y=#h.Item#

[Item1Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime1

[Item1Bar]
Meter=IMAGE
MeterStyle=sSeperator
; ----------------------- end of group 1 
[Item2Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem2
Y=5r

[Item2Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime2

[Item2Bar]
Meter=IMAGE
MeterStyle=sSeperator




[Item3Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem3
Y=5r

[Item3Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime3

[Item3Bar]
Meter=IMAGE
MeterStyle=sSeperator




[Item4Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem4
Y=5r

[Item4Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime4

[Item4Bar]
Meter=IMAGE
MeterStyle=sSeperator

[Item5Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem5
Y=5r

[Item5Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime5

[Item5Bar]
Meter=IMAGE
MeterStyle=sSeperator





[Item6Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem6
Y=5r

[Item6Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime6

[Item6Bar]
Meter=IMAGE
MeterStyle=sSeperator




[Item7Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem7
Y=5r

[Item7Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime7

[Item7Bar]
Meter=IMAGE
MeterStyle=sSeperator



[Item8Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem8
Y=5r

[Item8Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime8

[Item8Bar]
Meter=IMAGE
MeterStyle=sSeperator


;----------------------------------------
;added events below here

[Item9Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem9
Y=5r

[Item9Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime9

[Item9Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item10Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem10
Y=5r

[Item10Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime10

[Item10Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item11Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem11
Y=5r

[Item11Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime11

[Item11Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item12Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem12
Y=5r

[Item12Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime12

[Item12Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item13Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem13
Y=5r

[Item13Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime13

[Item13Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item14Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem14
Y=5r

[Item14Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime14

[Item14Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item15Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem15
Y=5r

[Item15Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime15

[Item15Bar]
Meter=IMAGE
MeterStyle=sSeperator






[Item16Left]
Meter=STRING
MeterStyle=sTextL
MeasureName=mItem16
Y=5r

[Item16Right]
Meter=STRING
MeterStyle=sTextR
MeasureName=mTime16

[Item16Bar]
Meter=IMAGE
MeterStyle=sSeperator







[Gap]
Meter=IMAGE
MeterStyle=sGap
You do not have the required permissions to view the files attached to this post.
User avatar
santa_ryan
Posts: 397
Joined: June 22nd, 2010, 4:11 am

Re: Introduction - Web TV Producer - Bob Grosh

Post by santa_ryan »

OK, I'll bite, what is lua?
Lua is the recently added scripting language. Read more about it here: http://www.lua.org/about.html; and here: http://rainmeter.net/cms/LuaScripting. It is EXTREMELY powerful in the right hands and has opened up a LOT of avenues for adventurous rainmeterers (if thats a word :lol: )

Which is better and works greate except for the first event, it shows up as:
Mon May2, 4:430pm - Mon May 2, 8:30pm

( added the red color to hi-light the part I don't want. )
The unwanted second "Mon May 2," also shows up in the tool tip for that line.
Might want to ask Poiru about that one. I don't have the time at the current moment to dive into his coding. If you don't get a response, then I'll try to help you ASAP.

Another problem with gCal ( all variants ) is that it dosen't always diplay the Google Calender item correctly.
For example: the show entered into google calender as "Tuesday's with the Mayor" shows up in Rainmeter's gcal as:
Tuesday's with the Mayor Tue May 3, 7:45 - 8am
The reasoning for this is how google codes their stuff. ' is a HTML Character Reference, explained here, http://rainmeter.net/cms/Plugins-WebParser, in the DecodeCharacterReference section and also here http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references.

This SHOULD be taken care of by the "DecodeCharacterReference=1" in all of the webparse measures, but apparently not.
Add Substitute="'":"'" to the [mItem1] measure and see if it fixes it.

This might be a bug and should be reported. I suggest upgrading rainmeter if you havent already and see if it fixes the problem. If not inform Poiru here: http://rainmeter.net/forum/viewtopic.php?f=5&t=4059

Next I have to get TWO different versions of gCal to show up on the desktop at the same time. (Some of my users simulcast on two channels at the same time and need to see both schedules.)
Well, if you knew what you were doing you could easily only transfer the specific files that you need into a new folder.
However, I would recommend just making a COPY of gnometer.
  1. Right click the gnometer folder
  • Click on copy
  • Deselect the gnometer folder
  • Right click anywhere in your skins folder
  • Click paste
  • Delete anything irrelevant if you wish (everything but the gcal and settings folder) - (Optional)
  • Rename the new folder to anything you like (Optional)
  • Restart rainmeter
You now have 2 copies of the GCal skin independent of each other. Its not "Sophisticated" but it gets the job done.
I have three rules when I'm trying to help you.
  • Don't get mad when you don't understand something
  • Be VERY specific with what you ask for.
    The more specific you are, the higher the quality of support you receive.
  • Do not just copy and paste what I put in examples and come back saying it doesn't work.
    It does work, but I purposely left blanks that you need to fill for your specific needs.
User avatar
bobgrosh
Posts: 134
Joined: May 1st, 2011, 10:33 pm

Re: Introduction - Web TV Producer - Bob Grosh

Post by bobgrosh »

More news from this newbie.

(... and a question somewhere near the end ...)

Thanks Santa for the guidance. It feels like Christmas here, what with my new Rainmeter toy.

I got a skin to report whether or not a channel at Livestream.com is live, just by parsing the channel's web page.

I finally got a few tools built to launch Flash Media Encoder to start and stop a video stream. I even made it work with a different channels, frame rates, bit rates and cameras. Lastly, I added check-boxes for options like Record the stream, add it to Video On Demand, and Auto pilot. ( I had a devil of a time getting the actual checkboxes to display correctly but eventually figured out I was using the wrong Bang! ) Typical newbie mistake.? !!!

I'm tempted to post these on the Livestream Forum. I know one of the most often asked questions is How to display the "LIVE" status for a channel, so, I bet there would be quite a few Livestream producers who could use these skins once I have them finished.

Break!

Been reading some of the forum posts. Seems like some here deny that Rainmeter is not like Java or any other "Programing" language!, It's hard for me to tell one form another. In the past, I think I've written an application in just about all of them. They all sort of run together. I liked all of them. (Except fourth, UGG!) My first home computer was a DED PDP-8. Entered machine code in octal through a row of switches on the front. A few years later I bought the first TRS-80 that Radio Shack ever sold in Chicago, Serial number was 0000-0097. Had to write my own symbolic compiler and disassembler for it.

Anyway, Rainmeter seems familiar, A lot like some of the industrial control languages I used to automate paper mills or Kitty litter plants, Perhaps Allen Bradly's older control system, before they went all GUI.

Another Break!

This is taking longer than I expected. I must be getting old. I have to deliver some new systems for some camera operators up in Alabama. Will start ordering the PC's and cameras Monday. Hope to have all traces of Windows fully hidden from the operators and Just Rainmeter on the screen. Want to do it before June 16th, so I have plenty of time.

Next Project....

;------------------------------------------------------------------------------
(And there is a question somewhere in here. :^)

Haven't thought this one out yet, but, the flash command line interface does not allow some features. They have to be configured through the Flash Media Encoder GUI. The GUI saves these features in a xml file. After that, the configuration can be used to start or stop video streams.

I figure to save a default configuration as "Template.xml" the use Rainmeter to modify the file.

So... I already can start or stop a stream with the Execute! bang by calling the FMLEcmd and passing the name of the Template.xml file.

Now I need to figure out how to modify the XML file as needed so that it will cause the server to put the stream in the On-Demand library, stream it to iphones, etc.

I already figured out how to parce the XML, BUT..........

QUESTION.....
How do I write the modified XML file back to disk?

For example , here is part of a TEMPLATE.XML profile for a stream.
In it I want to replace ",(PARM2)" with ",aspectHeight=9" and ",Parm3" with ",AspectWidth=9"

Code: Select all

 <?xml version="1.0" encoding="UTF-16"?>
-<flashmedialiveencoder_profile> 
   +<preset> 
   +<capture>--- 
   +<process>- 
   +<encode>
   +<restartinterval> 
   +<reconnectinterval> 
   -<output> 
      -<rtmp>
         <url>rtmp://publish.livestream.com/mogulus/RainmeterTV/username=RainmeterGuest/
                     password=retemniaR/isAutoLive=true,(PARM2),(PARM3)</url>
          <backup_url/>
              <stream>demo</stream>
      </rtmp>
 </output> 
+<metadata>------ 
+<preview>--- 
   -<log>
       <directory>C:\Users\Development\Rainmeter\Skins\Studio\Camera
       </directory>
    </log>
 </flashmedialiveencoder_profile>
...
...
...
I know how to read the file, locate the line with ",Parm1" and substitute ",AspectWidth=16" etc.

HERE IS THE QUESTION
---------------------------------------------------------------------
But, How do I write the entire file back out to a file named "webcam-LIVE-WideScreen.xml" with the changed line.?
(I'll also want to overwrite that file name if it already exists.)
---------------------------------------------------------------------

I don't need a detailed answer to this, just tell me where to find a similar example (writing lines from one file to another) or something in the manuals. I searched but haven't run across anything like this in the forum. Even a few hints would help.

That should keep the elves busy for a while.
I'll report back later with any progress I make.
Eventually, I'll figure out how to post the template in the proper form when I have a demo far enough along to be useful.

Later.
Bob
User avatar
santa_ryan
Posts: 397
Joined: June 22nd, 2010, 4:11 am

Re: Introduction - Web TV Producer - Bob Grosh

Post by santa_ryan »

This cannot be done with rainmeter directly.

HOWEVER!

You MIGHT be able to do this with lua. You would have to check with morley, as i dont know enough about how much of lua is implemented in rainmeter.


Also, if lua doesnt work then i know what will:
http://www.autoitscript.com/site/autoit/

Autoit will most definitely do what you want.

Using cmdline arguments, you could easily input what you need changed, etc, into the script, and seeing as how you know some programming, then you should pick this up VERY quickly. Its an extremely easy to learn BASIC-like scripting language.
I have three rules when I'm trying to help you.
  • Don't get mad when you don't understand something
  • Be VERY specific with what you ask for.
    The more specific you are, the higher the quality of support you receive.
  • Do not just copy and paste what I put in examples and come back saying it doesn't work.
    It does work, but I purposely left blanks that you need to fill for your specific needs.
User avatar
jsmorley
Developer
Posts: 22745
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Introduction - Web TV Producer - Bob Grosh

Post by jsmorley »

We chatted a bit on IRC. You could certainly do what he wants in Lua, and that would be how I would go. External .exe files are ok, and sometimes the only way, but you have the issue of getting a "busy" cursor when the skin executes it and such, so if I can do it with Lua, which is seamlessly bolted on to Rainmeter, that would be my choice.
User avatar
santa_ryan
Posts: 397
Joined: June 22nd, 2010, 4:11 am

Re: Introduction - Web TV Producer - Bob Grosh

Post by santa_ryan »

Ya, i just didnt know if lua could do it. Or, i should rather say, i knew lua could do it just fine, but i didnt know how straight foward it was. The I/O library is a standard library, but i dont know enough about it, to know if what he wanted to do was "easy" and didnt want to start feeding him information and send him on a wild goose chase.

Anywayz, thanks for clarifying morley, and the best of luck to you Bob :great: (Bob is an awesome name btw... 8-) )
I have three rules when I'm trying to help you.
  • Don't get mad when you don't understand something
  • Be VERY specific with what you ask for.
    The more specific you are, the higher the quality of support you receive.
  • Do not just copy and paste what I put in examples and come back saying it doesn't work.
    It does work, but I purposely left blanks that you need to fill for your specific needs.
User avatar
bobgrosh
Posts: 134
Joined: May 1st, 2011, 10:33 pm

Web TV Producer - Bob Grosh Progress Report

Post by bobgrosh »

I can't believe it! Five weeks since I discovered Rainmeter!

Purchased the hardware for a client three weeks ago. two PC's,Cameras, Mixers, etc for broadcasting on one of my web channels. One camera is a remote controlled PTZ with a 12 to 1 optical zoom, auto focus, etc. to be previewed and controlled from the PC and from my studio.

The only user interface is Rainmeter.

I feel like I made lots of progress on it today. Another week and I will be ready to ship the system.

Today, for the first time I was able to perform all the basic functions I need for their system.
Schedules broadcasts start and stop with all the operator displays of the videos and status information.
All controls lock out the operator during scheduled broadcasts.
Unscheduled broadcast can be started and stopped via the Rainmeter skins, including weather
reports, commercial breaks and program announcements.
Advance program Scheduling is done via google Calender and all upcoming shows are displayed on the
destop inside a 16:9 widescreen area of the desktop which can be sent out live on the channel
with a PIP of the operator.
Most operations can be done with a single button touch.

I still have a way to go before I have all the features I want, and some screen layout yet to do, but it is starting to come together nicely.
preview.jpg
Included is a screen capture showing the progress.

The basic user controls are to the left and right of the 512x288 video capture area. Those are the BIG controls for the operator. The smaller controls will be hidden except from the remote desktop. The small controls allow me to configure the skins for any of my 25 different channels. The blue vertical swirls are not the wallpaper, they are a HD video playing on the desktop under Rainmeter. A portion of that video is captured and provides a background for the weather and other graphics controlled by the right hand buttons. The left hand buttons control where the video is sent, This PC can send to three different web channels a local radio station and a feed to 7 different regional cable networks. ( These Rainmeter skins can be seen on thousands of tv's in 14 Alabama counties...

As part of my testing I'll be webcasting my desktop live until midnight on a Livestream channel I set up for development. You can watch it at RainmeterTV.blogspot.com
Thanks for all the help. (I'll probably need more)
You do not have the required permissions to view the files attached to this post.