Set Up For Recording Software Development Under Linux

Software development under Linux typically involves:
  • programming languages: one or more, such as Python or C++
  • IDEs - one or more
  • The installation of packages via the command-line using apt, snap, pip (for Python), npm (for Node.js), gem (for Ruby) and many others.
  • An execution environment: this depends on how and where the software is to be deployed.  Typically it is on a Cloud server.
  • Test mechanisms.  These will normally simulate execution to some degree
In order to demonstrate software as it is developed and how it is developed via video (i.e. Youtube or other systems) it is necessary to capture the above systems "in action" (or to simulate such capture).  This post gives some details of one set up to do this.

Preparing for Screen Capture

Since, typically, software development videos are for a general audience, it is worth preparing the recording environment well - removing personal details for example.  For instance by default for many distros, terminal windows title bars show the user and computer names of the account being used - this should probably be removed (see here how).  When recording web sites, remove tabs that are not relevant.  Also, it is not unusual to personalize background screens.  This can reveal personal details (e.g. personal photographs) or at least unnecessarily distract from the video.
If running software from the command line it can help to change parameters to reduce unnecessary output that is distracting - e.g. debug or warnings.  E.g. with Python warnings can be suppressed.
These changes should be carefully put into place prior to recording.

Capturing Windows with OBS Studio

Open Broadcaster Software (OBS) Studio is an integrated suite of software that allows both recording events on the desktop and broadcasting.  Installing it on Linux requires ffmpeg - a suite of video manipulation tools.

Editing Captured Videos

There are a number of Linux video editing tools.  Most of them make use of mature libraries like ffmpeg which are high quality and well optimized.  Sometimes the product as a whole can have bugs and stability problems as it evolves.  For example I initially used OpenShot Video Editor with some success, however even on my powerful laptop, playback (in the editor, not the output) is jumpy.
Therefore I am now evaluating Flowblade.  Both are fully-functional editors for video and audio.   Flowblade has the feature of being able to edit "proxies" of clips which reduces system load while not affecting output.   They (and others) are evolving fast so it's worth checking their progress as they may potentially leap-frog each other in features and quality.   Although they are available in most Linux distributions' packaging systems it is typically worth going to their websites to get the latest version.

Iterative Editing and Recording

With Flowblade (and others) it's possible to cut and manipulate clips straightforwardly.  You can also separate audio and overlay both audio and video using multiple tracks.


Comments

  1. Printed electronics is a set of printing strategies that enable electronic devices or circuitry to be printed on flexible materials such as labels, materials, and cardboard, by software of electronic or optical inks. Printed electronics is starting to be combined with 3D printing, Oversized Bath Sheets allowing for the printing of layered circuitry or devices. A natural outgrowth of this potent combo is that sometime you have the ability to|could possibly|might have the ability to} print out devices from 3D plans quite than buying them.

    ReplyDelete

Post a Comment

Popular posts from this blog

TEX on Linux

Freeze Changing HTML Element in Chrome Developer Tools

Change Unix terminal Title