NewVideoRecorder is a Linux-based video capture software that offers exceptional video quality and performance. It is a comprehensive toolkit designed for seamless video recording.
One of the best features of nvrec is its deep-buffering capabilities. This allows for minimized frame drops, even under high load situations. Furthermore, nvrec has a smooth frame-dropping algorithm in place to ensure that the video remains as smooth as possible if frames do need to be dropped.
Additionally, nvrec has an audio "stretcher" function that writes the exact amount of audio to the output file. This function compensates for any lack of clock synchronization between video and audio cards. Users can easily integrate this software into existing applications or even add their output formats due to nvrec's highly modular design.
The engine's use of deep buffers helps to maintain audio and video quality, buffering video in the driver to avoid costly userspace copies, and audio in a userspace ring buffer. All buffers are timestamped as soon as they're received by either the kernel or gettimeofday() (offset by the current depth of the kernel buffer). At the start of recording, audio or video is dropped until both are in sync. Then, only audio and video timestamped for the same period is processed.
The audio stream regularly warps dynamically to ensure the output file contains precisely the right amount of audio for each video frame written to the file. A simple P-I controller adjusts the warping factor to maintain synchronization.
The code also ensures that internal buffers remain between 10% and 40% full to avoid running out of data or having uncontrolled dropping. If the buffer drops below 10% full, the system simply sleeps for one frame period. If the buffer exceeds 40% full, the system gradually drops more frames per second until it reaches a stable point.
With NewVideoRecorder, users currently have the option to choose from five output cores to save files. The qtfile_core produces RTjpeg, YUV2 or RAW encoded quicktime files. The divxfile_core produces DivX encoded avi files, and the nuvfile_core creates NuppelVideo0.4 files. The rtefile_core produces MPEG-1 program streams, while ffmpegfile_core generates a range of file types, including mpeg4, mpeg2, mpeg1, wmv, dv, and h263.
In the recent release, NewVideoRecorder added support for recording radio, fixed ffmpegrec support, and added support for split files on the fly by specifying the size of each file chunk and the basename used for each file. Additionally, some compile warnings have been fixed, and the code compiles without any problems in gcc 2.95 and gcc 3.3.
Overall, NewVideoRecorder is a highly functional and versatile video capture toolkit that stands out for its modular design and deep-buffering capabilities.
Version 20041227: N/A