> ## Documentation Index
> Fetch the complete documentation index at: https://daily-mb-reorg-api-reference-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TransportParams

> Base configuration parameters shared by all transport implementations

## Overview

`TransportParams` is the base configuration class for all Pipecat transports. It controls audio input/output settings, video settings, and voice activity detection. Every transport's params class (`DailyParams`, `LiveKitParams`, `WebsocketServerParams`, etc.) inherits from `TransportParams`.

You typically pass these via the transport's `params` argument:

```python theme={null}
from pipecat.transports.daily import DailyTransport, DailyParams

transport = DailyTransport(
    room_url,
    token,
    "Bot",
    params=DailyParams(
        audio_in_enabled=True,
        audio_out_enabled=True,
        audio_out_sample_rate=24000,
        video_out_enabled=True,
        video_out_width=1280,
        video_out_height=720,
    ),
)
```

## Audio Output

<ParamField path="audio_out_enabled" type="bool" default="False">
  Enable audio output streaming.
</ParamField>

<ParamField path="audio_out_sample_rate" type="int" default="None">
  Output audio sample rate in Hz. When `None`, uses the default rate from the
  TTS service.
</ParamField>

<ParamField path="audio_out_channels" type="int" default="1">
  Number of output audio channels.
</ParamField>

<ParamField path="audio_out_bitrate" type="int" default="96000">
  Output audio bitrate in bits per second.
</ParamField>

<ParamField path="audio_out_10ms_chunks" type="int" default="4">
  Number of 10ms chunks to buffer before sending output audio. Higher values
  increase latency but reduce overhead.
</ParamField>

<ParamField path="audio_out_mixer" type="BaseAudioMixer | Mapping[str, BaseAudioMixer]" default="None">
  Audio mixer instance for combining audio streams, or a mapping of destination
  names to mixer instances.
</ParamField>

<ParamField path="audio_out_destinations" type="List[str]" default="[]">
  List of audio output destination identifiers for routing audio to specific
  participants or endpoints.
</ParamField>

<ParamField path="audio_out_end_silence_secs" type="int" default="2">
  Seconds of silence to send after an `EndFrame`. Set to `0` to disable.
</ParamField>

<ParamField path="audio_out_auto_silence" type="bool" default="True">
  Insert silence frames when the audio output queue is empty. When `False`, the
  transport waits for audio data instead of inserting silence, which is useful
  for scenarios that require uninterrupted audio playback without artificial
  gaps.
</ParamField>

## Audio Input

<ParamField path="audio_in_enabled" type="bool" default="False">
  Enable audio input streaming.
</ParamField>

<ParamField path="audio_in_sample_rate" type="int" default="None">
  Input audio sample rate in Hz. When `None`, uses the transport's native rate.
</ParamField>

<ParamField path="audio_in_channels" type="int" default="1">
  Number of input audio channels.
</ParamField>

<ParamField path="audio_in_filter" type="BaseAudioFilter" default="None">
  Audio filter to apply to incoming audio (e.g., noise suppression).
</ParamField>

<ParamField path="audio_in_stream_on_start" type="bool" default="True">
  Start audio input streaming immediately when the transport starts. Set to
  `False` to manually control when audio input begins.
</ParamField>

<ParamField path="audio_in_passthrough" type="bool" default="True">
  Pass input audio frames downstream through the pipeline. When `False`, audio
  is consumed by VAD but not forwarded.
</ParamField>

## Video Output

<ParamField path="video_out_enabled" type="bool" default="False">
  Enable video output streaming.
</ParamField>

<ParamField path="video_out_is_live" type="bool" default="False">
  Enable real-time video output. When `True`, frames are sent as they arrive
  rather than buffered.
</ParamField>

<ParamField path="video_out_width" type="int" default="1024">
  Video output width in pixels.
</ParamField>

<ParamField path="video_out_height" type="int" default="768">
  Video output height in pixels.
</ParamField>

<ParamField path="video_out_bitrate" type="int" default="800000">
  Video output bitrate in bits per second.
</ParamField>

<ParamField path="video_out_framerate" type="int" default="30">
  Video output frame rate in frames per second.
</ParamField>

<ParamField path="video_out_color_format" type="str" default="RGB">
  Video output color format string.
</ParamField>

<ParamField path="video_out_codec" type="str" default="None">
  Preferred video codec for output (e.g., `VP8`, `H264`, `H265`).
</ParamField>

<ParamField path="video_out_destinations" type="List[str]" default="[]">
  List of video output destination identifiers.
</ParamField>

## Video Input

<ParamField path="video_in_enabled" type="bool" default="False">
  Enable video input streaming.
</ParamField>

## Deprecated Parameters

<Warning>
  The following parameters are deprecated and should not be used in new code. See the migration guidance for each parameter.
</Warning>

<ParamField path="vad_analyzer" type="VADAnalyzer" default="None">
  Voice Activity Detection analyzer instance.

  **Deprecated in 0.0.101**. Use `LLMUserAggregator`'s `vad_analyzer` parameter, or `VADProcessor` if no `LLMUserAggregator` is needed.

  Migration example:

  ```python theme={null}
  # Old (deprecated)
  transport = DailyTransport(
      room_url, token, "Bot",
      params=DailyParams(
          audio_in_enabled=True,
          vad_analyzer=SileroVADAnalyzer(),
      )
  )

  # New (recommended with LLMUserAggregator)
  from pipecat.processors.aggregators.llm_response_universal import (
      LLMContextAggregatorPair,
      LLMUserAggregatorParams,
  )

  transport = DailyTransport(
      room_url, token, "Bot",
      params=DailyParams(audio_in_enabled=True)
  )

  user_aggregator, assistant_aggregator = LLMContextAggregatorPair(
      context,
      user_params=LLMUserAggregatorParams(
          vad_analyzer=SileroVADAnalyzer()
      ),
  )

  # Or use VADProcessor if no LLMUserAggregator is needed
  from pipecat.processors.audio.vad_processor import VADProcessor

  transport = DailyTransport(
      room_url, token, "Bot",
      params=DailyParams(audio_in_enabled=True)
  )

  vad_processor = VADProcessor(vad_analyzer=SileroVADAnalyzer())
  pipeline = Pipeline([transport.input(), vad_processor, ...])
  ```
</ParamField>

<ParamField path="turn_analyzer" type="BaseTurnAnalyzer" default="None">
  Turn-taking analyzer instance for conversation management.

  **Deprecated in 0.0.99**. Use `LLMUserAggregator`'s `user_turn_strategies` parameter instead.
</ParamField>

## Transport Subclasses

Each transport extends `TransportParams` with provider-specific fields:

| Transport                                                                               | Params Class             | Additional Fields                                                                          |
| --------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------ |
| [DailyTransport](/api-reference/server/services/transport/daily)                        | `DailyParams`            | `api_key`, `api_url`, `dialin_settings`, `transcription_enabled`, `transcription_settings` |
| [LiveKitTransport](/api-reference/server/services/transport/livekit)                    | `LiveKitParams`          | (no additional fields)                                                                     |
| [SmallWebRTCTransport](/api-reference/server/services/transport/small-webrtc)           | `TransportParams`        | Uses base class directly                                                                   |
| [WebsocketServerTransport](/api-reference/server/services/transport/websocket-server)   | `WebsocketServerParams`  | `add_wav_header`, `serializer`, `session_timeout`                                          |
| [FastAPIWebsocketTransport](/api-reference/server/services/transport/fastapi-websocket) | `FastAPIWebsocketParams` | `serializer`, `session_timeout`                                                            |
