Hubbry Logo
GuvcviewGuvcviewMain
Open search
Guvcview
Community hub
Guvcview
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Guvcview
Guvcview
from Wikipedia

Guvcview
Original authorPaulo Assis
Initial release2008; 17 years ago (2008)
Stable release
2.2.1 / 2 November 2024; 11 months ago (2024-11-02)[1]
Repository
Written inC
PlatformLinux
Size960.7 kB (Guvcview 2.0.1)[1]
TypePhoto capture program
LicenseGPL-2.0-or-later
Websiteguvcview.sourceforge.net

Guvcview (GTK+ UVC Viewer) is a webcam application, i.e. software to handle UVC streams, for the Linux desktop, started by Paulo Assis in 2008. The application is written in C[1][2] and is free and open-source software released under GPL-2.0-or-later.

Guvcview is compatible with all V4L2 camera devices, using the Linux UVC driver and based on luvcview for video rendering. Audio support employs the PortAudio open-source library. The application's user interface is built using GTK+ and is designed to be simple and easy to use.[3][4][5][6]

The application has been noted as using fewer resources than other webcam applications, such as the GNOME standard webcam application, Cheese, and is an alternative to other webcam applications, including Apple Photo Booth and KDE Kamoso.[2][7]

Features

[edit]

Guvcview uses a two-window interface in normal use. One window displays the camera image to be recorded and the other displays the settings and controls, as well as menus.[8]

Through the Linux UVC driver, Guvcview offers extension controls, vendor-specific controls included in the UVC specifications, which are dynamically loaded into the driver. At present only webcam-maker Logitech has provided the specifications for their UVC webcam extension controls and as a result Logitech camera extension controls are included.[3]

Starting with version 0.9.9, Guvcview was able to be operated in control window only mode and used to control images on other applications, including Ekiga, Cheese, mplayer and Skype.[3]

Still images can be recorded in .bmp, .jpg, .png, .raw and videos in .avi, .mkv (Matroska Multimedia Container open standard format) and Google's .webm open standard format.[1][7]

The video capture mode includes some basic special effects. These are: mirror, invert, negative, mono, pieces and particles, which can be combined by selecting more than one.[1][7]

Operating systems

[edit]

Guvcview has been available in Debian for many instruction sets,[9] and in the Ubuntu repositories since Ubuntu 13.10 in 2012.[5][10] Until the 18.10 release, it was the default webcam application included with Lubuntu.[11][12]

Guvcview is also available in the Debian and Puppy Linux repositories.[13][14]

Reception

[edit]

In reviewing Guvcview in February 2011, Jack Wallen wrote in Ghacks, "Recently I have had to do some video tutorials. I tried recording these tutorials with Ubuntu's default Cheese Webcam Booth, but unfortunately the combination of my Logitech Quickcam Pro 9000, Ubuntu 10.10, and Cheese didn't want to record video in any usable FPS. So I had to look elsewhere. My search turned me to GUVCView and I can't tell you how happy I have been with the results. Not only is this tool as easy to use as Cheese, it's far more flexible, and renders much better video... GUVCView, from my perspective, is a much better means of recording video than Cheese. This especially applies if the video you are recording is to be used for something other than, say, Skype chatting."[8]

Jim Lynch, writing on Linux Desktop Reviews in May 2011, was less enthusiastic about the application's inclusion in Lubuntu, "I actually like Cheese so I can’t say I’m real thrilled about it being replaced by guvcview, but it’s sort of six of one or half dozen of the other when it comes to these two programs. I could get by fine with either one though your mileage may vary depending on your needs and preferences."[12]

Hectic Geek reviewed the application in September 2012 and concluded "...I didn’t have any issues with it and successfully recorded videos (you can manually disable audio input) and took pictures, added few funny effects … all is good with guvcview...."[7]

The application is rated as 4.5/5 on SourceForge.[6]

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
Guvcview, also known as GTK+ UVC Viewer, is a application designed for that provides a simple graphical user interface built with GTK+ (or optionally Qt5) to capture and view video streams from devices supported by the Video4Linux2 (V4L2) kernel interface, with particular emphasis on those using the USB Video Class (UVC) driver. Developed by Paulo Assis and first released in 2008, Guvcview enables users to preview live video from webcams and similar hardware, adjust capture settings such as resolution, frame rate, and image controls, and save recordings in formats like MJPEG or YUYV. It supports audio input through backends like PortAudio or , allowing synchronized video and sound capture for applications such as video calls or streaming. The software is lightweight and versatile, compatible with a wide range of V4L2-compliant devices beyond just UVC, though it excels in handling UVC extensions for advanced controls on brands like . Key features include a control-only mode (invoked via command-line options like guvcview --control_only), which allows image and device adjustments to be applied to other programs such as Ekiga, Cheese, or without full video display, enhancing integration in multimedia workflows. Guvcview is distributed under the , with its source code hosted on , and it remains actively maintained for modern Linux distributions like , , and .

History and Development

Origins and Initial Release

Guvcview was founded in 2008 by developer Paulo Assis as a application to facilitate and viewing on systems, particularly targeting devices supported by the Video4Linux2 (V4L2) framework. The project's initial development centered on ensuring compatibility with USB Video Class (UVC) streams through V4L2, addressing the need for a straightforward tool to handle inputs on desktop environments where such support was a key focus. Written in , Guvcview emphasized simplicity and ease of use for basic video operations. The software made its first public release available via in 2008, quickly establishing itself as an accessible option for users seeking reliable functionality without the overhead of more complex applications. From inception, Guvcview was released under the GNU General Public License version 2.0 or later (GPL-2.0-or-later), promoting open-source collaboration and distribution.

Major Versions and Updates

The initial stable release of Guvcview, version 1.0.0, occurred in March 2009, introducing a command-line option to display the version and fixes for format negotiation issues in video capture. In March 2013, version 1.7.0 was released, featuring a refactoring of the AVI and MKV muxers along with support for VP8 and Theora video codecs, Vorbis audio codec, and the WebM container format. A significant major rewrite came with version 2.0.0 in September 2014, which modularized the codebase into four shared libraries (libv4l2src, libguvcview, libgviewrender, and libgviewencode) to improve maintainability and extensibility; it also added an SDL2-based rendering backend and integrated the for in effects processing. More recent releases include version 2.1.0 in January 2024, which addressed audio channel warnings when using FFmpeg for encoding. In November 2024, version 2.2.1 switched the user interface to Qt6 from Qt5, adopted the build system for easier compilation, and added support for the yuv420p pixel format in video output. Version 2.2.2, released in November 2025, incorporated SFML 3.0 for enhanced multimedia handling, added support for OBSMEET4K hardware via extension unit controls, and included patches for compatibility with FFmpeg 8 and libc. Beyond the primary developer Assis, key contributions have come from community members including Paul Zander for FFmpeg 8 and libc patches, Sam Liddicott for warning silences and GTK3 enhancements, Flavio Spagnuolo for muxer fixes, George Sedov for threaded video encoding improvements, and Richard Fuchs for audio-video synchronization patches.

Features

Video and Audio Capture

Guvcview primarily captures video from devices compatible with the Video4Linux2 (V4L2) framework, with a strong emphasis on USB Video Class (UVC) compliant webcams that enable live preview and recording without additional drivers. This support allows users to access a range of input sources, including standard webcams and other V4L2-enabled hardware, using capture methods such as memory-mapped () or read operations for efficient data handling. For video recording, Guvcview supports container formats including , MKV, and , paired with codecs such as H.264, , and to balance quality and file size. Still image capture is available in formats like BMP, JPG, , and RAW, providing flexibility for single-frame extraction during sessions. Audio integration in Guvcview is facilitated through the PortAudio library, which handles capture from microphones and supports output codecs including AAC, , and AC3, with options for mono or stereo channels to accommodate various recording needs. Capture modes include timed recording, where sessions can be limited to a specified duration in seconds, and interval-based photo sequences for automated still captures at set intervals. Additionally, (OSD) elements like crosshairs assist in precise framing during live preview and recording.

User Interface and Controls

Guvcview employs a primarily developed using the + toolkit, providing an intuitive setup for interaction, while alternative frontends based on Qt5 or Qt6 can be selected during compilation or runtime via command-line flags such as --gui-api=qt6. The interface generally operates in a dual-window configuration, featuring a dedicated preview for real-time video display and a separate control panel for managing settings, enabling users to monitor and adjust captures simultaneously. The control panel includes sections for selecting video devices (defaulting to /dev/video0), configuring capture resolutions (e.g., 640x480) and frame rates (e.g., 30 fps), and accessing hardware-specific extensions, such as Logitech webcam controls for focus, zoom, and tilt adjustments. A control-only mode, accessible via the --control-panel or --control_only command-line option, launches the application without the preview window, permitting parameter modifications for integration with other software like Ekiga or while conserving system resources. This mode was designed to facilitate efficient tuning of device settings in resource-constrained environments or during scripted operations. For non-graphical use, Guvcview supports headless operation through the --gui-api=none flag, alongside command-line options for tasks such as querying the application version (--version), listing supported formats (--list-formats), and specifying output resolutions or frame rates directly. These features enable automation and integration into broader workflows without visual elements. An optional SFML rendering backend, selectable via --render-api=sfml, provides an alternative to the default rendering for the preview window, offering improved performance on low-end hardware by leveraging lightweight graphics handling. This backend supports window management options like fullscreen (--render-window=full) or custom sizing (e.g., --render-window=800x600), enhancing usability across varied systems. The controls integrate seamlessly with capture functions, allowing real-time adjustments to parameters during preview or recording sessions.

Effects and Formats

Guvcview provides a range of built-in video effects applicable to both preview and recording sessions, enabling users to apply visual modifications post-acquisition. These include mirror for horizontal flipping, negative for color inversion, for black-and-white rendering, and more advanced options like pieces and particles for fragmented or dynamic distortions. Effects such as invert, which reverses the image vertically or horizontally, can also be combined to create layered visual alterations. Guvcview also supports audio effects such as , reverb, fuzz, croak, and duckling for modifying captured sound during sessions. In addition to these, basic color adjustments allow fine-tuning of the video output, covering parameters like , contrast, saturation, hue, white balance (gamma), sharpness, and backlight compensation. These controls facilitate real-time modifications during capture, optimizing the visual quality based on lighting conditions or user preference. The application handles format negotiation automatically to leverage the device's optimal capabilities, querying V4L2 interfaces for supported configurations. It accommodates various pixel formats, including MJPEG for compressed streams, YUY2 for uncompressed YUV 4:2:2, RGB for raw color data, and for efficient processing in modern workflows, with enhanced support for YUV420p in versions from 2.0.4 onward by prioritizing planar over packed formats. Output customization extends to adjustable settings for both images and videos, where users can select resolutions, frame rates, and parameters to balance file size and fidelity. For videos, container options include for simple streams and MKV for advanced of multi-track audio and video, supporting synchronized capture from microphones or overlaid elements. Image outputs default to formats like , , or BMP with configurable compression levels. Still capture enhancements include resolution presets that align with the device's maximum supported dimensions—up to 4K (3840x2160) in recent versions for compatible hardware like the Logitech Brio.

Technical Implementation

Architecture and Dependencies

Guvcview features a modular consisting of four shared libraries that separate core functionalities: libgviewv4l2core for video and audio handling, libgviewrender for rendering, libgviewaudio for audio processing, and libgviewencoder for encoding utilities. These libraries are installed to the system's library directory (e.g., ${prefix}/lib) and provide headers in ${prefix}/include/guvcview-2/, enabling reusable components for integration with other applications. The software relies on several key dependencies for its operations. Device access is facilitated by the Video4Linux2 (V4L2) framework through libv4l and libudev, supporting UVC-compliant hardware interfaces. Encoding and decoding, including support for H.264/AVC via libavcodec and libavutil from the FFmpeg project, handle multimedia processing. The user interface is built with GTK+ 3 (or optionally Qt5/Qt6), while audio input/output uses PortAudio (portaudio19); rendering is managed by SDL2 (or alternatives like SDL1 or SFML). Additional libraries such as libpng for image handling and optional ones like libpulse for audio or libgsl for signal processing may be required based on configuration. The build system has evolved from traditional autotools to , with the transition occurring in 2024 to improve cross-compilation and configuration flexibility. Builds can be configured to disable specific UI backends, such as GTK3 or Qt5, using options during the setup process. The standard build sequence involves running ./bootstrap.sh (for autotools legacy), followed by ./configure or invocation, make, and make install, with --prefix to specify installation paths. While primarily designed for Linux environments, Guvcview is compilable on embedded systems through patches for libc, extending its utility beyond glibc-based distributions.

Supported Hardware

Guvcview primarily supports hardware compatible with the Video4Linux2 (V4L2) framework, with a particular emphasis on USB Video Class (UVC)-compliant webcams that leverage the Linux UVC driver (uvcvideo kernel module). This enables seamless integration with a wide range of USB webcams, allowing capture and control of video streams without proprietary drivers. Resolutions supported are device-dependent but typically range from 320x240 up to 4K (3840x2160), contingent on the hardware's capabilities and the UVC standard's provisions. Beyond standard UVC webcams, Guvcview extends compatibility to other V4L2-compliant devices, including various USB cameras, TV tuners, and embedded camera modules such as those using the CSI interface when backed by appropriate V4L2 drivers or adaptations. For instance, CSI cameras can be accessed via Guvcview after enabling the V4L2-compatible driver, though performance may vary based on the specific module and kernel configuration. Specialized support includes extension controls for certain models, such as the C920, which allow adjustments for features like focus, zoom, and backlight compensation through UVC extensions accessible within the application's interface. Additionally, as of 2025, integration with the OBSBOT Meet 4K is facilitated via a dedicated Guvcview that adds GTK3 UI controls for its AI-powered features, enhancing usability on systems. Limitations include no native support for non-V4L2 hardware, requiring users to rely on kernel modules like uvcvideo for UVC functionality; devices outside this ecosystem may need third-party bridges or wrappers to interface properly.

Platform Availability

Linux Distributions

Guvcview is integrated into several major distributions through their official package repositories, allowing users to install it easily using standard package managers such as apt or zypper. This availability ensures broad accessibility for webcam capture and viewing on native Linux environments without requiring manual compilation in most cases. In , Guvcview has been included in the official repositories since version 11 (Bullseye, 2021), supporting multiple architectures including amd64, arm64, and i386, and can be installed directly via apt. For , packaging began with version 13.10 (released in October 2013), and it remains available in the universe repository for all subsequent releases, installable with sudo apt install guvcview. Other distributions like included it in their PET package repositories for lightweight installations in older releases such as Precise (2012). provides Guvcview through its Package Hub up to version 2.0.8, compatible with Leap and Tumbleweed releases. , being Debian-based, offers ARM builds installable via apt for hardware. Arch provides Guvcview in its official repositories (version 2.2.1 as of November 2025), installable via pacman. includes it through the RPM Fusion repository. To access the latest versions beyond distribution repositories, the Personal Package Archive (PPA) maintained by developer Paulo Assis offers updated builds, such as version 2.2.1 for Ubuntu 24.04 (Noble Numbat), added with sudo add-apt-repository ppa:pj-assis/ppa followed by an apt update and install. This PPA ensures users receive recent enhancements while maintaining compatibility with Ubuntu-based systems.

Ports and Builds for Other Systems

Guvcview, primarily designed for Linux environments, has seen experimental builds adapted for ARM-based embedded systems, particularly single-board computers. Community developer avafinger has modified versions such as 2.0.2.1 and 2.0.4 to support hardware like the Orange Pi PC, One, 2Plus, and 2E (using H3 SoCs and GC2035 CMOS cameras), Banana Pi M64 (with OV5640 sensors), and Pine64+ (A64 SoC with S5K4EC or OV5640 cameras). These builds require specific dependencies including libv4l-dev, libgtk-3-dev, and libavcodec-dev, followed by a bootstrap, configure (with options like --enable-yuyv), and make process, often on Armbian distributions. They enable USB and CMOS camera capture but are tailored for these boards' kernel configurations and may need purging of stock guvcview packages for compatibility. There is no official support for Windows or macOS, as guvcview relies on the Linux-specific Video4Linux2 (V4L2) framework for device access. For users on these platforms, community recommendations point to cross-platform alternatives like Webcamoid, a Qt-based webcam suite that provides similar capture, effects, and recording features across Windows, macOS, , and other systems. Webcamoid supports UVC-compliant devices without V4L2 dependencies, making it a viable substitute for guvcview's functionality in non-Linux environments. Development revisions from the official repository enable custom builds with enhanced portability options, such as Qt5 interfaces as an alternative to the default GTK3 backend. These Qt5 variants, available in packages like guvcview-qt5-git (based on version 2.0.4), allow compilation with cross-platform toolkits for broader support. Additionally, SFML rendering integration provides lightweight video output alternatives, configurable during build to improve performance on resource-constrained systems without altering core V4L2 dependencies.

Reception

Critical Reviews

Guvcview received positive coverage in a 2011 review on gHacks, where it was praised for its flexibility in capturing and recording video on , outperforming alternatives like Cheese in video quality and ease of parameter adjustment. A 2020 evaluation on Mateu Aguiló's technology blog described Guvcview as lightweight yet critiqued its for lacking the polished appearance of Cheese, while still recommending it for its extensive control options. In a 2024 article from Handbook, the release of version 2.1.0 was highlighted for addressing FFmpeg compatibility issues, such as deprecated audio channel warnings, solidifying Guvcview's role as a dependable tool for UVC management and integration with applications like . Aggregated user-submitted reviews on rate Guvcview at 4.4 out of 5 stars, with commenters frequently emphasizing its stability and reliability for webcam operations across environments.

User Feedback and Adoption

Guvcview has garnered positive user feedback, particularly for its simplicity and compatibility with various hardware setups. On , the application holds an average rating of 4.4 out of 5 based on 12 reviews, with users frequently praising its ease of use on low-end systems such as netbooks and lightweight distributions like LMDE and Salix OS, where it performs reliably for testing and recording without taxing resources. However, some reviews highlight occasional UI issues, including crashes during recording and difficulties switching between devices like and cards, which can disrupt workflow on certain configurations. The software sees notable adoption in embedded and educational contexts, especially among users for webcam-based projects such as surveillance and streaming setups. Discussions on forums demonstrate its popularity for these applications, with users recommending compatible and troubleshooting integration for higher frame rates in resource-constrained environments. It is also employed in Docker containers for live video streaming, as outlined in technical guides from 2023 that detail containerized deployments for isolated webcam capture. Community engagement remains active through the project's Git repository on SourceForge, where developers submit patches for bug fixes and feature enhancements, contributing to ongoing improvements in device support and stability. Tutorials, such as the 2011 YouTube video by NixiePixel, illustrate the application's recording capabilities and have helped sustain user interest by showcasing its straightforward interface for beginners. As of 2025, Guvcview maintains steady availability and downloads through Ubuntu's Launchpad repositories and SourceForge, with recent releases like version 2.2.2 ensuring compatibility with modern kernels and UVC drivers. Ongoing maintenance, including updates to address build issues with libraries like FFmpeg, keeps the tool relevant for contemporary applications.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.