mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	
		
			
	
	
		
			43 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | /** \page page_overview PipeWire Overview | ||
|  | 
 | ||
|  | PipeWire is a new low-level multimedia framework designed from scratch that | ||
|  | aims to provide | ||
|  | 
 | ||
|  | - graph based processing | ||
|  | - support for out-of-process processing graphs with minimal overhead | ||
|  | - flexible and extensible media format negotiation and buffer allocation | ||
|  | - Hard real-time capable plugins | ||
|  | - achieve very low-latency for both audio and video processing | ||
|  | 
 | ||
|  | The framework is used to build a modular daemon that can be configured to: | ||
|  | 
 | ||
|  | - be a low-latency audio server with features like pulseaudio and/or jack | ||
|  | - a video capture server that can manage hardware video capture devices and | ||
|  |   provide access to them | ||
|  | - a central hub where video can be made available for other applications | ||
|  |   such as the gnome-shell screencast API. | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Motivation | ||
|  | 
 | ||
|  | Linux has no unified framework for exchanging multimedia content between | ||
|  | applications or even devices. In most cases, developers realized that | ||
|  | a user-space daemon is needed to make this possible: | ||
|  | 
 | ||
|  | - For video content, we typically rely on the compositor to render our | ||
|  |   data. | ||
|  | - For video capture, we usually go directly to the hardware devices, with | ||
|  |   all security implications and inflexible routing that this brings. | ||
|  | - For consumer audio, we use PulseAudio to manage and mix multiple streams | ||
|  |   from clients | ||
|  | - For Pro audio, we use JACK to manage the graph of nodes. | ||
|  | 
 | ||
|  | None of these solutions (except perhaps to some extent Wayland), however, | ||
|  | were designed to support the security features that are required when | ||
|  | dealing with flatpaks or other containerized applications. PipeWire | ||
|  | aims to solve this problem and provides a unified framework to run both | ||
|  | consumer and Pro audio as well as video capture and processing in a | ||
|  | secure way. | ||
|  | 
 | ||
|  | */ |