Skip to main content
Glama
misbahsy

Video & Audio Editing MCP Server

by misbahsy

set_video_bitrate

Adjust video bitrate for optimal file size and quality. Specify input and output paths along with the desired bitrate to process and save videos effectively.

Instructions

Sets the video bitrate of a video, attempting to copy the audio stream. Args: input_video_path: Path to the source video file. output_video_path: Path to save the video with the new video bitrate. video_bitrate: Target video bitrate (e.g., '1M', '2500k'). Returns: A status message indicating success or failure.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
input_video_pathYes
output_video_pathYes
video_bitrateYes

Implementation Reference

  • The main handler function for the 'set_video_bitrate' MCP tool, decorated with @mcp.tool(). It sets the video bitrate using FFmpeg, attempting to copy the audio stream first and falling back to full re-encoding if needed.
    @mcp.tool() def set_video_bitrate(input_video_path: str, output_video_path: str, video_bitrate: str) -> str: """Sets the video bitrate of a video, attempting to copy the audio stream. Args: input_video_path: Path to the source video file. output_video_path: Path to save the video with the new video bitrate. video_bitrate: Target video bitrate (e.g., '1M', '2500k'). Returns: A status message indicating success or failure. """ primary_kwargs = {'video_bitrate': video_bitrate, 'acodec': 'copy'} fallback_kwargs = {'video_bitrate': video_bitrate} # Re-encode audio return _run_ffmpeg_with_fallback(input_video_path, output_video_path, primary_kwargs, fallback_kwargs)
  • Helper function _run_ffmpeg_with_fallback called by set_video_bitrate (and other tools) to execute FFmpeg with primary parameters (e.g., audio copy) and fallback to re-encoding on error.
    def _run_ffmpeg_with_fallback(input_path: str, output_path: str, primary_kwargs: dict, fallback_kwargs: dict) -> str: """Helper to run ffmpeg command with primary kwargs, falling back to other kwargs on ffmpeg.Error.""" try: ffmpeg.input(input_path).output(output_path, **primary_kwargs).run(capture_stdout=True, capture_stderr=True) return f"Operation successful (primary method) and saved to {output_path}" except ffmpeg.Error as e_primary: try: ffmpeg.input(input_path).output(output_path, **fallback_kwargs).run(capture_stdout=True, capture_stderr=True) return f"Operation successful (fallback method) and saved to {output_path}" except ffmpeg.Error as e_fallback: err_primary_msg = e_primary.stderr.decode('utf8') if e_primary.stderr else str(e_primary) err_fallback_msg = e_fallback.stderr.decode('utf8') if e_fallback.stderr else str(e_fallback) return f"Error. Primary method failed: {err_primary_msg}. Fallback method also failed: {err_fallback_msg}" except FileNotFoundError: return f"Error: Input file not found at {input_path}" except Exception as e: return f"An unexpected error occurred: {str(e)}"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/misbahsy/video-audio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server