Fast Screen Recorder

2 views
Skip to first unread message

Vella Massart

unread,
Aug 5, 2024, 11:18:29 AM8/5/24
to xaistopezam
Iunderstand how it can be done, and have several test solutions working - but we have trouble achieving decent performance. We need to capture about 4 megapixels screen space of changing text and vector graphics, on a computer where CPU is already heavily utilized.

Any suggestions on how to encode using as little processing power as possible: May be a very fast codec? Or some tricks to avoid copying images in memory? Is capturing screen with DirectX (most of screen is in WPF) worth doing?


High Quality DXT Compression using CUDA. This example shows how to implement an existing computationally-intensive CPU compression algorithm in parallel on the GPU, and obtain an order of magnitude performance improvement.


I just ran into this while searching for CUDA and screen capture and thought I should add my experience. I've created a solution in the past using VNC and FFMPEG. If you have a look at the VNC protocols, you'll see that it does its transmissions based off of delta windows with a new image. Basically, previous screen + changes = new screen. The only thing that needs to be transmitted are the changes. You'll find lots of tricks to minimize transmission cost and lots of different payload extensions to transfer the data and it's a great resource even if you decide to roll your own with the knowledge gained. Once we were using VNC to move the pixel data, we found that raw pixel data was more expensive to our cpu than the jpeg data because the buffer copies were more expensive than the compression.


Screenflick has a unique and custom-built recording engine, that is turbo-charged to utilize all of your Mac's power. Record any area of the screen from a thumbnail to 5K resolution at 60 fps (or higher, on ProMotion displays).


No problem. A simple tweak of the max capture rate and recording scale can reduce the workload to by over 14x, leaving processing and battery power for everything else, and making for faster exports too.


Want to show off your hours-worth-of-work project in a minutes-long movie? Record at a customizable super low frame rate, then speed it up on export to create timelapse screen captures. Timelapse recordings are perfect for exhibiting your digital art skills.


The core of Screenflick is built around a highly-optimized recording engine which captures very large resolutions at high speed and high quality. More than taking advantage of the graphics processor and multiple processor cores, Screenflick is coded for exceptional efficiency. This means that Screenflick can capture those super smooth and sharp 60 FPS animations even on 5K retina displays.


Have you ever wanted to just grab a pen and start drawing on your screen to explain something? Well now you can. With Screenflick's screen markup, you can now use a paintbrush to draw on the screen, illustrating your point and highlighting critical elements on screen, so your viewers will know exactly what you mean. Pick amongst several colors, and change brush sizes. This is a great tool for teachers and lecturers who need to mark on slides or even draw onto video lessons.


Need a moment? Not a problem, Screenflick will wait. At any time you can pause the screen recording, and continue when you're ready. Practice your lines, take care of the dog, wait for the next game level to load... Just hit resume and Screenflick will pick up right where you left off.


Get rid of unwanted distractions in your videos. With Screenflick, hide the files on your Desktop by covering them with a color or custom image. You can even prevent windows from other applications being recorded at all.Tell Screenflick which applications you want (or don't want) to be recorded, and if any unwanted window opens during the recording (a notification, a chat invite, etc), you'll see it on screen, but not in the recording. It's like magic.


Using Screenflick to record from the camera built into your iPhone or iPad is awesome. On macOS 13 or later, just open the camera on your iOS device, select it from the popup in Screenflick, and start recording! It's the easiest and fastest way to get great quality camera recording, and it's built-in for free.


Use Screenflick Remote to control Screenflick running on your Mac. Using the remote, you can start a recording, pause, resume, and stop, all without the Screenflick interface being visible in your final recording. You can even control Screenflick running on multiple Macs at the same time.


Rather than picking some quality settings, exporting the entire movie, and hoping the result is what you wanted, use "Quick Test" to export a short clip of the recording, verify the quality and size are what you were targeting, and then export the entire movie with confidence.


In fact, if macOS would update the screen fast enough, Screenflick running on a Mac Studio with an M1 Max has the power to capture full 5K resolution at over 180 frames per second. Yes. Really. That's a mind-blowing 10 GIGABYTES worth of pixels every second.


Screenflick's custom recording engine can capture at higher frame rates and higher quality (perceptually lossless) than direct-to-H.264/HEVC recorders. You can even record with lossless audio, and export to lossless ProRes 4444 for the highest possible media imports into Final Cut, Adobe Premiere, or any other editor. All media assets (screen, system audio, microphone audio, and camera) can be exported separately.


Integrate Screenflick as part of an automation workflow using Shortcuts or Automator. Automatically start a recording (even scheduled at a certain time), stop the recording, and export it, all while away from your desk.


but there is a problem with the save speed.

When I measured the while loop refresh rate it was 900 ms. I came to the conclusion that the user32.dll file was causing the slow operation.

No matter what I do, I cannot record the recording at normal speed. The video is recorded with very fast steps. Because the number of photos it takes is very low. Does anyone know the solution to this?


The while loop refresh rate also varies depending on the type of codec selected when recording screen video. is the "Motion JPEG (NI Vision)" codec type that I use now. The FPS specified in IMAQ AVI2 Create VI only determines the playback speed of the video. For example, if I choose 30 FPS, the video is recorded at 30 frames per second according to the time, but in reality 30 photos are not taken in one second, only 6 photos are taken. I can take a maximum of 15 photos. The while loop refresh rate has an effect on the number of photos that can be taken here. And the video in general moves very fast.


Thanks for your help. I think I understand the problem better now. The reason for the FPS drop is 2 screen usage. The example you shared is 30 FPS with one screen and 15 FPS recording with two screens. codec:Motion JPEG (NI Vision)


For further enhancement there are two obvious points - capturing and encoding. GDI+ is not the only possible way to capture, may be something DirectX-based will be faster (but I'm not very familiar with this). Encoder can be replaced with OpenCV (you will get more codecs available). Also using ffmpeg could be possible. If your actual recording tool is open source you can take a look inside how it works and which technology used behind, but integration into LabVIEW (if you prefer to have recorder frames in IMAQ images) could be painful.


Frankly

I need to do some research on how to capture with directx. But I don't know the exact possibility of doing this.

I've never worked with -labview opencv. I wonder how it could work. However, I think this requires extensive knowledge.

The FPS capture I want with NI-Vision seems a bit difficult. Because AVI files are large in size. It takes some time to process.


This example is based on .net Wrapper, which is slightly obsolete and wasn't updated for last 12 years. My attempt to target it to latest .net framework and recompile in VS 2022 was just failed. In additional, some possible overhead could be expexted in managed/unmanaged code.


My manager knows that we can edit a single video, but from what I just tested, it can be trimmed or cropped, and volume can be increased, but nothing to speed up either the single video movie or to speed up the frames in a slide by slide insertion. Am I correct that Storyline does not offer that?


There isn't a feature within Storyline's video editing or screen recording fine tuning to speed up the playback, but it's certainly something worth sharing in the form of a feature request. Those go to our product development team and we're always interested to hear about new features or ideas you have that would make working with Articulate products easier and faster for you!


I had a similar issue - I had View, Try and Test screen recordings but I wanted to speed up the data entry bits on the View recording (i.e. I didn't want to force the viewer to endure each key depression when showing data entry of names and addresses).


I got round it by right-clicking on the screen recording in the timeline, selecting "Timing" option and reducing the recording time length. You need to slide the (now reduced screen recording timeline object) along to the end of the timeline - for it to work. If you leave it where it is, on the timeline, it still plays at the original speed.


3) Duplicate the slide, then cut the end off the 1st one and the start off the Duplicate. Put a playful "some time later" graphic fading into the end of the 1st and out at the start of the 2nd and voila. User doesn't have to sit through 30+ seconds of me typing.

3a8082e126
Reply all
Reply to author
Forward
0 new messages