Jump to content

kurtie

Members
  • Posts

    5
  • Joined

  • Last visited

Everything posted by kurtie

  1. Well... In Win 8+ Microsoft made it more convenient, but it was already possible in previous Windows, and I remember to had used that trick before in Windows 7: http://superuser.com/questions/62051/is-there-a-way-to-fake-a-dual-second-monitor Regards, Kurt.-
  2. Viewport Export v0.5.0 Hi there, Here we go. First release of the software is attached in this post. It is released under GPL license, and that means that it is free, open source, and it is meant to be that way forever. Requisites: - This is not one of those softwares that it is installed through a wizard. In order to use this, you have to be used to mess with files, wires, and setups of different softwares and hardwares. - It is a Java software. You will need the Java Runtime Environment, if you don't have already installed. You can get it here: http://www.java.com/en/download/ - You know how to create viewports of DCSW indicators. There are other threads that explain it in detail, like this: http://forums.eagle.ru/showthread.php?t=70716 What this software do Well... it captures part of the desktop, and export it through network. It is designed with the purpose in mind of exporting things like MFCds, radars, and other things that can only be rendered on one of the screens of the computer that is running DCS world. There are other tools for exporting the desktop remotely, for instance TeamViewer, and it is a very good software. But it is designed for other uses: it is designed to use very low bandwidth at the expense of high CPU and quality. This software is designed to be used in a LAN, where you can have easily a lot of bandwidth available, but it is designed to be very light on CPU, so that DCS World can have more resources to render more frames per second... it is also designed to have low latency and it is lossless, everything is exported with 100% fidelity. It works very well with Helios. How you can run it First download the ZIP and uncompress it somewhere. If you Java RE is correctly installed, you can execute the JAR by double clicking. If you like command line, then "java -jar ViewportExport.jar" would do the trick. You will have to execute two instances of Viewport Export. One is the emitter, that will be executed on the computer that runs DCS World. I suppose that you previously have your indicators rendered on a second monitor (Note: it can be done with just one monitor. Pressing Win + P on Windows 8 and 10, and clicking extend will create a virtual screen at the right of your main screen). The other one is the receiver, and has to be run on the computer / laptop / tablet where you want to render those DCS World indicators. You also probably will run Helios there. Once the application is opened, and after accepting the GPL license, you will see two buttons 'Launch emitter' and 'Launch receiver'. They explain themselves. You will also see a textfield where there is a path to a viewportexport.properties file. You can specify any path that you wish, but I recommed to create the file in the same directory that ViewportExport.jar resides. Now you will need to edit this files. Emitter properties This is an example viewportexport.properties for the emitter: port=12321 fps=10 viewport.source=800,0,1024,512 compression=LZ4 port: default value 12321. The TCP port where the emitter will listen to the receiver. fps: Frames per second viewport.source: This is the desktop rectangle (x, y, width and height) that will captured and transmitted through the network. compression: Default LZ4. Accepted values are LZ4 and GZIP. This is the compression algorithm to be used. LZ4 is very fast, but GZIP compresses a bit more. Receiver properties This is an example viewportexport.properties for the receiver: emitter=192.168.0.2 port=12321 background=405060 areas=MFCDl, MFCDr MFCDl.source=0,0,512,512 MFCDl.target=40,40,640,640 MFCDr.source=512,0,512,512 MFCDr.target=840,40,400,400 emitter: IP y nostname of the emitter computer port: It has to be the same as used in the emitter. background: RGB color for background (000000 for black, FFFFFF for white, etc) areas: this is a comma-separated list of area names. In the example there are two, MFCDl and MFCDr but you can have many, or only one. For each area you will define two properties, the source and target. Both of them are rectangles (x,y,width,height). The source is relative to the captured rectangle not to the origin of the desktop and the target is where you want that to be shown on the receiver screen. A tutorial Well, it's an easy application, but hard to use (emitters, receivers, ports, viewports). So I have prepared an easy sample. In the ZIP there is a sample viewportexport.properties with these contents: emitter= localhost port=12321 fps=10 background=405060 viewport.source=0,0,800,400 areas=left_big, right_small left_big.source=0,0,400,400 left_big.target=0,500,640,640 right_small.source=400,0,400,400 right_small.target=640,500,200,200 Now execute thar JAR once. Click on the "Launch emitter" and then on "Launch receiver" buttons. If everything goes well a window will open covering the desktop. Now open another window and move it over this top left part of this window, and you will see parts of your desktop reproduced on this window. Not useful but would illustrate how this works. Ok... let me know if you have questions or any kind of feedback. Regards, Kurt.- ViewportExport.zip
  3. I am a professional programmer, but I don't know much about video compression. What I do know is some kind of "delta compresssion": current frame is compared agains previous frame, and the difference is what is compressed and sent over the network. Comression algorithm is just a Gzip... it is fast, but sucks for images. This scheme works amazingly well with screens that do not change much from frame to frame (MFCDs, radars, or any text display)... but not so well with camera views. I will try to upload some kind of alpha this week. It is a very simple utility.... but some people may find it useful in their setups (I do). I will release it under a GPL license (free and open source) and I will put source code on GitHub, so if someone if reading this and knows better about video compression... you will be welcome. Regards, Kurt.-
  4. MFCD's was an example. This utility is very generic, it simply copies a part of the screen and transmits it to a remote point, and then draws it somewhere. It will work with any indicator you are able to export as a viewport on DCS World, so it is up to you what you want to export. Searching on these forums I found this: http://forums.eagle.ru/showpost.php?p=2278817&postcount=3, so yes, MIG-21 radar can be exported as a viewport. Regards, Kurt.-
  5. Hi there, I am working on a program that can be used to export DCS indicators (MFCDs, etc) to a remote computer. Now, you create viewports for all indicators in a screen in the computer that is executing DCS world (like in here: http://forums.eagle.ru/showthread.php?t=70716) Then you can run Helios on top of those viewports on the local machine. That's nice, but what if you want to view all of that in a separate machine (something like a tablet or a laptop)? You can run Helios on a remote machine, and it works, but MFCDs stays on the local machine and cannot be seen on a tablet right now. You can use something like TeamViewer or any other remote desktop utility to overcome that and transmit the desktop remotely. That works but I don't like it because you have to export the whole screen, with all Helios stuff and the DCS viewports, and that is a lot of work to do in real time (and don't forget that the machine has to run at the same time DCS World, which is a very demanding software) and performance is poor. So, what I did is a little Java application that captures only the indicated portion of screen, does a basic compression, and sends it over a network. It has a minimal impact on CPU. This way you can run DCS World on your computer, export indicators as viewports, run Helios on a separate Windows device (I am running it on a Surface Pro 3) and with this little app the MFCDs are transmitter over the network to this second device. I don't know if I was able to explain myself. It is designed to run on a local network, and preferrably on Ethernet but can also work on Wireless, but a lower framerates. I know that Java is not the best choice, but I am a Java programmer and it was the fastest way to do it for me. It can be improved (a lot) by adding a real video streaming, but that is beyond my skills right now. It already works and I've been using it successfully. I plan to polish it and release it as open source under LPGL or similar, but only if there is people interested in something like that. So, I take the trouble to finish and polish it to be more usable? What you say? Regards, Kurt.-
×
×
  • Create New...