Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 06 2018 15:15
    MathewSachin closed #22
  • Jun 06 2018 15:15
    MathewSachin labeled #22
  • May 30 2018 12:08
    MathewSachin commented #22
  • May 30 2018 11:59
    alexam1 opened #22
  • Mar 15 2018 13:55
    MathewSachin commented #21
  • Mar 15 2018 12:29
    abramovi opened #21
  • Jan 18 2018 17:56
    MathewSachin commented #20
  • Jan 18 2018 17:52
    parolo commented #20
  • Nov 17 2017 15:14
    MathewSachin commented #20
  • Nov 17 2017 14:34
    lukasz-pyrzyk commented #20
  • Nov 17 2017 14:27
    MathewSachin labeled #20
  • Nov 17 2017 14:27
    MathewSachin commented #20
  • Nov 17 2017 14:10
    lukasz-pyrzyk opened #20
  • Nov 06 2017 21:29
    PavelValentov commented #19
  • Nov 06 2017 14:08
    MathewSachin commented #19
  • Nov 06 2017 13:52
    PavelValentov commented #19
  • Nov 06 2017 13:46
    MathewSachin commented #19
  • Nov 06 2017 13:44
    PavelValentov commented #19
  • Nov 06 2017 13:31
    PavelValentov commented #19
  • Nov 06 2017 11:38
    PavelValentov commented #19
Florian Grill
@grill2010
Okay, I will check. Thank you very much.
sh-tomer
@sh-tomer
Hi, I'm trying to use Captura (which seems great this far by the way, well done!) to record the computer screen. The problem I ran into is that from some reason it won't record the window of the hosting application, but only other windows in the background (in the region I specified). Any clue what causes that? I assume it's the default behavior, to make sure that the recording application isn't interfiring with the recorded video, but I actually want the window to show up in the video.
Mathew Sachin
@MathewSachin
@sh-tomer Captura's window should be there in recordings. Is it in the specified region?
sh-tomer
@sh-tomer
@MathewSachin , I am actually using the capture core in my app code. It records perfectly, but only the windows behind my app window itself. I am using it with a rectangle region. Any thoughts on what may be the cause?
Mathew Sachin
@MathewSachin
@sh-tomer Sorry, I don't have any idea here. I might be able to help if you could provide a link to your code.
sh-tomer
@sh-tomer
@MathewSachin, thanks! I extracted the code that is responsible for the capturing process (around 15 lines of code) - https://codepaste.net/arfix0
As you can see, for testing purposes I'm trying to capture the entire screen's region (in the future it will be a more specific region). The outcome of this code is that it records the screen perfectly, but only the windows behind the recording application.
Is there any code which in Captura which is responsible for choosing which windows to capture? Any documentation on how does it work so I could dig a little bit deeper into resolving this?
sh-tomer
@sh-tomer
Seems like I tracked down the problem - it seems that Captura doesn't capture C# Windows Forms which are inheriting from MetroForm (https://thielj.github.io/MetroFramework/). I assume it some sort of a flag on the form? Or maybe it's drawn in a different way than a regular windows Form? Trying to look into it now.
sh-tomer
@sh-tomer
If you have any thoughts on which form definition it could be that hides the form from Captura I would really appreciate any advice :)
Mathew Sachin
@MathewSachin
not sure of why MetroForm are not captured. Have you tried with DesktopDuplication?
sh-tomer
@sh-tomer
Not sure what
Not sure what DesktopDuplication is. Any code samples available on that feature? How is it different than region capture?
sh-tomer
@sh-tomer
Just gave up on MetroForm and recording video with a regular form works great now.
But from some reason, captura doesn't recognize an audio device on neither of my computers. @MathewSachin - is there anything special that needs to be done for it to recognize the audio device to record from? Captura UI just shows empty drop boxes in the audio section, even though there are sound card and speakers that can perfectly play sound. Thanks for your help!
Mathew Sachin
@MathewSachin
bass.dll and bassmix.dll are require for audio. You can find them in releases.
sh-tomer
@sh-tomer
Thanks, but it didn't seem to make any positive effect. In addition to copying those dlls to the Captura UI build folder, I also tried to download Captura-Portable.zip from the releases section and start Captura UI from there, but it still shows "No Audio" in the audio dropdowns.
sh-tomer
@sh-tomer
My bad, I got it to work. Thanks for all your help :)
Roman
@Roemer
Hey Mathew
Just wondering why you use rawimages (bitmap) to capture the video.
I tried using a png instead and send that to the pipe and it seems to consume massively less memory with no performance loss

I convert the image like this:

using (var stream = new MemoryStream())
            {
                bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                return stream.ToArray();
            }

Did you try to compress the image in memory as well?

Mathew Sachin
@MathewSachin
i used to pipe pngs to ffmpeg but is uses a lot of CPU
i suppose cpu is more critical resource than memory
the cpu first needs to compress to png, then again decompressed by ffmpeg
Roman
@Roemer
Yes this is true but I found that memory is more crucial if you run tests on a big VM-farm
Maybe jpeg could be an alternative? I might give it a try
Mathew Sachin
@MathewSachin
The problem is that this method causes significant drop in Framerate on regular machines. I think that JPEG might consume even more CPU but lesser memory.
Roman
@Roemer
xvid encoding seems to use far less cpu power
BlowofDeath
@BlowofDeath
Hi, i have a problem with Captura, when i record video with ffmpeg and i want to edit it with vegas pro 14, the media files start's be black and white, i have this problem only when i use ffmpeg , when i use sharpavi i don't have any problems. Is there any posibility to use something different than ffmpeg?
Mathew Sachin
@MathewSachin
I have not found any suitable alternatives to ffmpeg except sharpavi, any suggestions are welcome though
bukwyrm
@bukwyrm
Hi, I have set the fps to 2, Quality at 1% with FFMPeg and the x264 Codec - it's a lovely compression to keep an eye on automated goings-on for whole nights. Only problem: The mouse-clicks only get captured when they randomly fall into special time slots. With 10 fps that problem is mostly gone, but the files get bigger than i like them. Is there any chance to get the keyboard & clicks (& possibly even the mouse movements) as a true overlay, i.e. metadata? - or is there some switch that needs to be set to get the in-video click-markers to persist longer (as the keyboard-input does)?
Mathew Sachin
@MathewSachin
The overlays are drawn over the frames, so for 2 fps, it is possible to display change in overlay state only twice per second. So, as per my knowledge, I don't think your requirement can be implemented.
Mathew Sachin
@MathewSachin
@dleaf4r_twitter sorry that i'm late, a new feature is in development which allows yuv444p to be selected as pixel format which might fix the color issue. Please test with the latest dev build here. Go to Configure | FFMpeg | Configure Codecs and then set Pixel Format to yuv444p.
bukwyrm
@bukwyrm
So the mouse-clicks might fall through the cracks even at normal (e.g. 25 fps) framerates? how do the framerates of the monitor, the polling-frequency of the mouse/usb-port and the framerate set in Captura interact? Would setting the framerate of the capture to the framerate of the monitor guarantee coverage?
I just experimented a little, seems the click event is always covered if the mouse-down and mouse-up events are timed apart by more than (1/fps), so for 3 fps i would have to space them by at least 333ms to guarantee coverage.
After looking into the source, i notice that keystrokes get to be in some sort of stack, while mouse-events are polled in the moment of the overlay-drawing. Would a stack for the mouse events not work?
Sorry for the flow-of-consciousnessness of this post...
Mathew Sachin
@MathewSachin
I'll try if a stack implementation is possible. It seems like a mouse click timeout setting might be required.
Mathew Sachin
@MathewSachin
I implemented something, a click timeout parameter is determined as 1/fps and used to determine whether mouse click overlay is to be shown
working on click-timeout branch
bukwyrm
@bukwyrm
That is blinding speed! Thank you very much! I tested it, and now every mouseclick is accounted for.
If i might make a suggestion, though: Currently, the _hook.MouseDown only fills _mouseClicked (bool) and _lastClickTime - it is hooked into GlobalEvents, though, so at that time also a position-reading could be taken, instead of taking it later, when the Circle is overlayed (thus painting the circle where the mouse is later, not at the click-position).
I propose to get rid of _mouseClicked and _lastClickTime, and instead fill something like _listOfClickPositions<(x,y)> at the time of the hook triggering, then at time of graphics drawing go with a if(_listOfClickPositions.count > 0) {Paint circles at list-positions; _listOfClickPositions.clear() } .
This way you get rid of the DateTime - calling and the _clickTimeout (which might lead to weirdness in case of normal fps)
Cheers!
Mathew Sachin
@MathewSachin
@bukwyrm I think a problem with your suggestion would be to handle operation like drag and drop
i agree that position reading should be taken at same time
bukwyrm
@bukwyrm
I guess the Drag&Drop-Problem could be avoided with separate mouse-down/mouse -up events with separate position readings and separate overlay colors.
But i just tested it, and because of the current implementation of the drawing-routine that asks not only for the bool _mouseClicked but also for any click-events at that time (if i understood it correctly), the output is already pretty good in the drag&drop regard, because drag&drop is mostly longer duration than just-click, and so the frames get overlyed for as long as the button is pressed, at the "current" location of the mouse - looks natural at 3 fps.
Another solution would be to take coupled mouse down/mouse up - readings, and then draw a rectangle or an ellipse between those points, if both happend before the frame ends, otherwise draw the form from mouse-down-position to current position (if mouse down is single) or current position to mouse-up position (if mouse-up is single).
Sim4n6 🐦
@sim4n6_twitter
Hi there
please I've got a kind of a newbie question related to Captura ...
It is programmed in which programming language
?
C# perfect
thank u
good bye
Mathew Sachin
@MathewSachin
Screna is no longer maintaned. Use the new chat room for communications related to Captura: https://gitter.im/MathewSachin/Captura