Giter Site home page Giter Site logo

stevenhoving / camstudio Goto Github PK

View Code? Open in Web Editor NEW
94.0 7.0 37.0 81.42 MB

CamStudio fork

License: Other

C++ 45.92% C 40.37% Makefile 0.22% HTML 9.67% CSS 0.12% CMake 3.47% Batchfile 0.02% Inno Setup 0.21%
screen-capture screen-recorder avi windows camstudio region-capture h264 ffmpeg mkv cmake

camstudio's Introduction

CamStudio

Build status

The fork

This is a personal fork of the camstudio source code found in the mecurial repository on sourceforge.net. I have forked this project because:

  • The installers that are availible on the web are not kosher.
  • No h264/mkv support out of the box.
  • Flash based products are insecure, support must be removed.

Goals

Besides creating a clean installer for camstudio I have found myself a couple of additional goals.

  • Fix memory leaks - done.
  • Remove unmaintainable features:
    • swf support - removed.
    • xnote support - removed.
  • Upgrade/Remove project dependencies:
    • CxImage - removed.
    • zlib - done.
    • minilzo - done.
    • libconfig++ - removed.
    • libpng - removed.
  • Replace static visual studio project files with CMake - done.
  • Add support for mkv - done.
  • Replace libconfig with alternative - done.
  • Improve settings screen - done.
  • Create release - done.
  • Introduce unit test - in progress.
  • Replace UI framework with Qt.

Removed features

  • swf support.
  • xnote support.
  • audio recording support (re-implement audio recording is planned)

How to clone/build

  1. git clone https://github.com/stevenhoving/camstudio.git --recursive
  2. bootstrap.cmd
  3. Now open the project in the vs_build directory and build it.

The source forge project

https://sourceforge.net/p/camstudio

Dependencies

State Name Project
Official minilzo http://www.oberhumer.com/opensource/lzo
Official zlib https://github.com/madler/zlib
Official ffmpeg https://www.ffmpeg.org
Official cpptoml https://github.com/skystrife/cpptoml
Official fmtlib https://github.com/fmtlib/fmt
Official Aeon Cmake https://github.com/aeon-engine/libaeon-cmake
Official Google Test https://github.com/google/googletest
Official Google Benchmark https://github.com/google/benchmark

Credits

A big thanks goes out to the original CamStudio developers. And to bestlily who had a initial port of CamStudio (https://github.com/bestlily/Camstudio), thanks.

camstudio's People

Contributors

adler3d avatar codacy-badger avatar fnajera-rac-de avatar stevenhoving avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

camstudio's Issues

Are these installers free of malware?

Just verifying for a friend… CamStudio has had a history of using the infamous installcore malware. I just wanted to make sure it’s safe for them to install.

Reevaluate recording mouse position

Currently the position of the mouse is always recorded. If configured that you dont need the mouse cursor in the output file then this data gets disregarded. As i have experienced, recording mouse position while debugging is really slowing everything down. So also look at its performance.

Add commandline mode to recorder

For CamStudio v3 the command line utility was removed. This was because reworking the existing utility would postpone the release even further.
It is the intention to bring this functionality back. Options:

  • incorporate a command line mode into the main CamStudio recorder executable (a bit harder because of the use of MFC).
  • move all the recording logic to a separate library and write a new command line utility that uses it.

No audio recorded

No matter what combination of settings I try, I cannot get CS3A4 to record audio. I am using Windows 10. Please help!

Remove swf support

There is no place for flash based products on the web. It has a reputation of being insecure. So then the best thing to do is to remove it.

cleanup global variables

The entire code base is riddled with global variable to keep track of 'state'.

  • Add g_ prefix all the global's.
  • Move globals into structs and create a single runtime model to store them.

The future for this CamStudio fork

First of all: Thank you for creating this fork! As a happy user of CamStudio for many years, I have considered many times to create a fork - or to help in the development which seems to have stalled completely. It seems you have done a lot of good work already :-)

I have some questions that you hopefully have time to answer:

  1. How motivated are you about this project? Are you considering the work mostly done, or are you interested in getting other people involved? In other words, is it an option to make this more official - to use "GitHub Team for Open Source" - to avoid the forks of forks problem ...
  2. Did you contact Nick - the person behind camstudio.org and the SF project - about taking over the project and the domain? I know Camstudio has a bad reputation because of the downloads from camstudio.org, and I just hate those "driver" ads, so I am unsure about Nick's motivation ...
  3. I assume your version 3 has nothing to do with the version 3 that was mentioned back in 2010 ;-)
  4. If making this the official Camstudio is no option, have you considered rebranding it?
  5. Did you look at the competition - ShareX and others - before starting the work on this fork? If so, I would like to know what made you spend time on Camstudio? I don't know ShareX, but to me it seems bloated - I need just a screen recorder.

Anyway, the biggest problem is that your fork is hard to find. After verifying that your fork is as great as it seems, I will edit the Wikipedia article - which is a start.

Fix memory leaks

Throughout the code base cppcheck has identified a large number of memory leaks.

Rewrite settings system

  • replace the old libconfig + binary ini application settings with just a normal ini (like) settings system.
    • capture settings
    • application settings.
    • hotkey settings.

Camstudio (latest alpha) Crash on Region Record

Installed latest Alpha release on Windows 10 (latest build). Tried to record using Region with the ff settings:

Codec - Camstudio
Container - mp4
Framerate - 24
Encoder tune - Animation
All else are default.

. Expected the region selector to appear; instead screen became momentarily laggy then Camstudio crashed.

Was able to record using Fixed Region instead. File saved to selected directory.

Refactor video encoding (Add support for mkv)

Currently there is only seems to be a avi muxer. Conversions to other formats would be done by a external converter. If the comments in the avi muxer implementation are still relevant then it has a limit for 4gb files.

  • Pull in ffmpeg dependecy.
  • write video codec wrapper.
  • write format (muxer) wrapper.
  • write ffmpeg camcodec encoder.
  • update ui.

Mouse clicks (visualized with red/blue circles) in created video are not removed

When a click is done the video show a red circle (for left click) and blue (for right click).
The expected behavior should be that the circle should be visible for a specified time and then it should be removed but in the video this is not what is observed.
What is seen is that clicks are done and the red circle does not disappear.

Replace use of deprecated codecvt

One of the bolder moves of the cpp committee was to deprecate codecvt for C++17. My idea how to fix this is to actually resolve this differently.
Proposal:
Keep everything in std::string using utf8 encoding, and only convert to unicode (convert std::wstring) when actually use it.

git history rewrite

The 3 project directories (CamStudio, CamStudio2.7 and CamStudio2.7_DShow) could best to be perceived as development branches. Where CamStudio holds the 2.6 stable, CamStudio2.7 hold the 2.7 stable and CamStudio2.7_DShow a development branch as it seems.
So why don't we just split those into separate branches.

Milestone v3 alpha 5

List of tasks before we can release a new alpha:

  • fix record window (currently causes crashes or records invalid data or invalid part of the display).
  • verify multi display rect recording (record section of display 1 and a section of display 2).
  • integrate msvc runtime installer into installer.

Pause of video gives unexpected behavior (paused time part of end result)

Pausing while capturing gives a strange end-result.
When playing back the video the actual time paused is also shown in the video. The video just shows the last image before pausing. When the actual pause time expired it continues playing the video from there on. Example: Created video and paused after 47 seconds for 16 seconds. Result at 0:47 is show the last image recorded and after 16 seconds at 1:03 it continues playback.

Expected behavior: When pausing the capture it should also skip the pause in the resulting video

Which version of Visual Studio should I use?

So this is really not an issue. But I want to know which version of Visual Studio can I use to be able to work on this code? I want to know answers before I am going to test one. Cause maybe, you know, I don't want to spend $$ for a hobby project.

It will be really cool if anyone can answer me. Thanks!

Refactor audio recording and file muxing

Currently it seems that audio gets merged in the output as a post process step. Refactor this so we can record video and audio in the same file.

This is somewhat linked with the mkv muxer task.

Selecting Fixed Region causes crash

Running on windows 10 1809 with all the latest updates. Fresh install, when selecting an fixed region to record, then pressing the record button, Camstudio pauses, then crashes. If i press record without trying to set a selection or area( or any preset recording option ), it will record.

I tried to run as administrator, no change. Video card is an Nvidia GeForce GT 620.

Didnt see a log file, but might be looking in the wrong place. Be happy to attach it though.

Implement Desktop Duplication

The Desktop Duplication api has been added to Windows 8.
This will possibly solve any performance issues on windows 8 and higher.

Upgrade project dependencies

Upgrade project dependencies, i'm not going to elaborate why and how here.

  • minilzo 2.10 updated
  • tinyxml removed
  • CxImage update or replace.
  • libconfig update or replace.
  • libpng.
  • zlib.
  • minilzo.

Crash when using shortcuts to start/stop a recording

When I want to start a recording by pressing F7, Camstudio exits without any message. If I use the GUI button (or the system tray icon), the recordings starts without a problem.

The same problem occurs when I want to stop a recording with F8. Only using the GUI button or the system tray icon works without a crash.

I tested version 3.0 Alpha 2 on Windows 10 1809 x64.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.