Language Selection

English French German Italian Portuguese Spanish

Screencasting Under Linux--A brief Story

Filed under
Linux

My first consideration for making A/V screencasts under Linux is Software. What programs are available to do screen-recordings with simultaneous audio narration under Linux? I've probably tried them all: recordmydesktop (which has both gtk-recordmydesktop and qt-recordmydesktop GUI font ends), Istanbul, xvidcap, and wink. Frankly, none of these yielded the high-quality screen capture I wanted. But the real problem is that the audio quality was worse. After thrashing about, I finally end up with a non open source commercial product called DemoRecorder.

Now DemoRecorder is a commercial, proprietary program, which costs $47.00US, $77.00US, or $247.00US depending on the desired feature set. I purchased the $77.00 license. This does not work under Mandriva 2010 in nested desktop mode, but the openGL mode of capture works well. No dropped frames on the video side, and relativey smooth modion. On the audio side, no major sound glitches like I had with recordmydesktop.

Using DemoRecorder in the openGL mode is a two-phase process--Running the demorec --opengl program to perform the initial capture of the video and audio files, then the transcoding or assembly into a finished product using demorec-to-avi (or demorec-to-dv, demorec-to-flv, demorec-to-mpeg1, demorec-to-mpeg2, demorec-to-ogg-theora or whatever video codec/container you wish).

While the sound quality is considerably improved, it's still a bit hollow and tinny when recorded from my Logitech headset. I found the captured sound file produced by demorecorder, which I could then import into Audacity in raw format. I could then edit and improve the sound in Audacity, and export the edited sound file back to the drive before the assembly/transcoding of the video files and the sound file into one avi file.

This works--still, the sound isn't quite professional quality, but close. The real issue with this is that this type of post-production sound-editing takes a lot of time. Better, if possible, to get a high-quality sound recording to begin with, and bypass the editing step. Time for some research into sound production.

I have no experience in sound recording--I'm a computer guy, but I do like to play with hardware.
Fortunately, I already have a really good high-quality sound card in my working desktop computer--an HT Omega Claro Plus.

Turns out, you can get a decent quality mic, and a device called a sound mixer, and you can record really great sound. Good to know. I end up purchasing a Behringer XENYX 1204FX model mixer for $179.99US. This model of mixer turns out to be overkill on my part, and I now know I could have got by just fine with a cheaper mixer (prices for a mixer can range from $99.00US to several thousand US dollars).

As is often the case, one purchase often begets another. So, on to buy a decent, but relatively inexpensive condensor mike (after shelling out too many $$$ on the mixer). I end up purchasing an MXL 990 condenser microphone with a shock mount for $49.00US. Then a proLine desktop mic stand, model MS112 ($29.99US). Finally, I purchase assorted cables and adapters.

After all my sound gear arrives, I connect the mic to my mixer, the mixer to my sound card. Then I fire up Audacity to run some tests. After fiddling with the gear for about an hour, I'm amazed at the quality of the sound captures. Now I can start recording those educational screencasts in earnest.

More in Tux Machines

today's howtos

Python Programming

  • Python 3.8.5 : Linked List - part 001.
  • Doug Hellmann: sphinxcontrib.datatemplates 0.7.0

    sphinxcontrib.datatemplates is an extension for Sphinx to render parts of reStructuredText pages from data files in formats like JSON, YAML, XML, and CSV.

  • Python : 10 Ways to Filter Pandas DataFrame

    In this article, we will cover various methods to filter pandas dataframe in Python. Data Filtering is one of the most frequent data manipulation operation. It is similar to WHERE clause in SQL or you must have used filter in MS Excel for selecting specific rows based on some conditions. In terms of speed, python has an efficient way to perform filtering and aggregation. It has an excellent package called pandas for data wrangling tasks. Pandas has been built on top of numpy package which was written in C language which is a low level language. Hence data manipulation using pandas package is fast and smart way to handle big sized datasets.

  • Top GUI Frameworks that is every Python Developer's Favorite

    Python is one of the most popular and widely known programming languages that is a favorite in the developer community. Its advanced libraries and file extensions enable developers to build state-of-the-art tools for real-world problems, or simply design a GUI (Graphic User Interface). GUI plays an essential role in the computer world as it makes human-machine interaction easier. Python offers a diverse range of options for GUI frameworks. Some of these frameworks are more preferred by the developers to build both .apk and .exe applications. Moreover, its GUI toolkits include TK, GTK, QT, and wxWidgets, which come with more features than other platform-specific kits. Though the Python wiki on GUI programming lists on 30 cross-platform frameworks, we have selected our top 4 picks. They are: Kivy: It an open-source Python library for the rapid development of applications that makes use of innovative user interfaces, such as multi-touch apps. This liberal MIT-licensed Kivy is based on OpenGL ES 2 and includes native multi-touch for each platform. It is an event-driven framework based around the main loop, making it very suitable for game development. It supports multiple platforms, namely, Windows, MacOSX, Linux, Android-iOS, and Raspberry Pi. Unlike QtCreator, Kivy doesn’t have a visual layout program, but it uses its own design language to help you associate UI layout with code objects.

C/C++ Programming

  • How to use Strcpy() in C language?

    In this article, we are going to learn about the strcpy() function in the C programming language. The strcpy() function is a very popular standard library function to perform the string copy operation in the C programming language. There are several standard header files in C programming language to perform standard operations. The “string.h” is one of such header files, which provides several standard library functions to perform string operations. The “strcpy()” function is one of the library functions provided by “string.h”.

  • How to Use C++ Vector

    An array is a series of same object types in consecutive memory locations. An array cannot increase ore reduce in length. A vector is like an array, but its length can be increased or reduced. A vector, therefore, has many more operations than an array. C++ has many libraries, all of which form the C++ Standard Library. One of these libraries is the container library. A container is a collection of objects, and certain operations can be performed on the collection. C++ containers can be grouped into two sets: sequence containers and associative containers. Sequence containers are vector, array (not the same array discussed previously), deque, forward_list, and list. These are different collections (array-like data structures), and each offers distinct trade-offs. Any programmer should know how to decide whether to use a vector, an array, a deque, a forward_list, or a list. When a programmer needs a structure that requires more operations than those associated with an ordinary array, the ordinary array should not be used. If the task involves frequent insertions and deletions in the middle of the sequence, then a list or forward_list should be used. If the task involves frequent insertions and deletions in the beginning or end of a sequence, then a deque should be used. A vector should be used when these kinds of operations are not required.

  • How to Use isalpha() in C Language

    There are several standard library header files in the C programming language used to perform various standard operations. The “ctype.h” is one such header file, and the “isalpha()” function is one of the library functions provided by “ctype.h.” The isalpha() library function is used to identify whether a character is an alphabet. In this article, you will learn about the isalpha() library function in C language.

  • NVIDIA C++ Standard Library Now Available Via GitHub

    Introduced last year as part of CUDA 10.2 was libcu++ as the CUDA C++ standard library, which works with not only NVIDIA CUDA enabled configurations but also CPUs. The libcu++ sources are now available via GitHub.

FreeBSD 12.2-BETA2 Now Available


The second BETA build of the 12.2-RELEASE release cycle is now
available.

Installation images are available for:

o 12.2-BETA2 amd64 GENERIC
o 12.2-BETA2 i386 GENERIC
o 12.2-BETA2 powerpc GENERIC
o 12.2-BETA2 powerpc64 GENERIC64
o 12.2-BETA2 powerpcspe MPC85XXSPE
o 12.2-BETA2 sparc64 GENERIC
o 12.2-BETA2 armv6 RPI-B
o 12.2-BETA2 armv7 BANANAPI
o 12.2-BETA2 armv7 BEAGLEBONE
o 12.2-BETA2 armv7 CUBIEBOARD
o 12.2-BETA2 armv7 CUBIEBOARD2
o 12.2-BETA2 armv7 CUBOX-HUMMINGBOARD
o 12.2-BETA2 armv7 RPI2
o 12.2-BETA2 armv7 WANDBOARD
o 12.2-BETA2 armv7 GENERICSD
o 12.2-BETA2 aarch64 GENERIC
o 12.2-BETA2 aarch64 RPI3
o 12.2-BETA2 aarch64 PINE64
o 12.2-BETA2 aarch64 PINE64-LTS

Note regarding arm SD card images: For convenience for those without
console access to the system, a freebsd user with a password of
freebsd is available by default for ssh(1) access.  Additionally,
the root user password is set to root.  It is strongly recommended
to change the password for both users after gaining access to the
system.

Installer images and memory stick images are available here:

    https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.2/

The image checksums follow at the end of this e-mail.

If you notice problems you can report them through the Bugzilla PR
system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing
system, use the "releng/12.2" branch.

A summary of changes since 12.1-BETA1 includes:

o A regression affecting the PowerPC architecture had been fixed.

o A race condition that could lead to a system crash when using jails
  with VIMAGE had been fixed.

o Several wireless driver updates, including an update to ath(4), as
  well as 802.11n support for run(4) and otus(4).

o Capsicum support had been added to rtsol(8) and rtsold(8).

o A fix to certctl(8) to prevent overwriting a file on rehash.

o TRIM support had been added to the bhyve(4) virtio-blk backend.

o Fixes to libcompiler_rt have been added.

o The ice(4) driver had been added, providing support for Intel 100Gb
  ethernet cards.

o Fixes to ixl(4) affecting the PowerPC64 architecture have been added.

o Support for the Novatel Wireless MiFi 8000 and 8800 have been added to
  the urndis(4) driver.

o Fixes to the ure(4) driver to prevent packet-in-packet attacks have
  been addressed.  [SA-20:27]

o Fixes to bhyve(4) to prevent privilege escalation via VMCS access have
  been addressed.  [SA-20:28, SA-20:29]

o A fix to the ftpd(8) daemon to prevent privilege escalation via
  ftpchroot(5) had been addressed.  [SA-20:30]

Please note, the release notes page is not yet complete, and will be
updated on an ongoing basis as the 12.2-RELEASE cycle progresses.
Read more Also: FreeBSD 12.2 BETA2 Brings TRIM For Bhyve's VirtIO-BLK, Intel ICE Added