Shaka Packager MCP Server
一个 MCP 服务器,集成了 Shaka Packager 和 Claude AI 应用,使 Claude 能够分析、转码和打包视频文件,以便以 HLS 和 DASH 等格式进行流式传输。
README
Shaka Packager MCP 服务器
⚠️ 实验性状态免责声明
本项目处于早期 alpha 阶段,具有高度实验性。不建议用于生产环境。它也可能非常混乱!
当前限制:
- 您可能会遇到不一致的行为
- 高级功能(打包、转换等)仍在积极开发中
- Docker 和主机环境之间的路径转换可能需要手动配置
- 预计会有频繁的重大更改和潜在的不稳定性
请报告您遇到的任何问题,以帮助改进项目。
一个 MCP(模型上下文协议)服务器,它将 Shaka Packager 与 Claude AI 应用程序集成,用于视频转码、打包和分析。
该服务器与 Filesystem MCP Server 协同工作,使 Claude Desktop 能够访问和处理您计算机上的视频文件,从而将 Claude 变成一个强大的媒体处理助手。
特性
- 视频分析:分析视频文件以提取详细的流信息、编解码器、比特率等
- 媒体打包:转换视频以进行 HLS 和 DASH 格式的流式传输,支持 VOD 和直播
- 高级选项:
- 应用 DRM 加密(Widevine、PlayReady、FairPlay)
- 配置广告插入标记
- 在格式之间转换(MP4、TS 等)
- 智能路径处理:自动转换 Docker 和主机环境之间的路径
- 强大的错误管理:提供有意义的错误分析和解决方案建议
- 命令辅助:帮助正确格式化 Shaka Packager 命令以获得最佳结果
- 交互式文档:内置帮助和示例,指导用户完成复杂的操作
- 详细输出:所有操作的全面摘要和执行细节
前提条件
- Python 3.10 或更高版本
- Shaka Packager 已安装并在您的 PATH 中可用
- 从 GitHub 下载
- 或按照这些说明从源代码构建
- 兼容 MCP 的客户端(如 Claude Desktop)
安装
使用 pip 或 uv (即将推出)
使用 pip 安装软件包:
pip install shaka-packager-mcp
或者使用 uv:
uv pip install shaka-packager-mcp
从源代码安装(推荐)
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
pip install -e .
或者使用 uv:
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
uv pip install -e .
Claude Desktop 集成
由于 Claude Desktop 不直接支持上传视频文件,我们将使用双服务器方法:
- 一个简化的 filesystem MCP server 来访问您计算机上的视频文件
- Shaka Packager MCP server 来分析和处理这些视频
步骤 1:设置 MCP 文件系统服务器
使用官方 MCP 文件系统服务器允许 Claude 访问您的视频文件:
-
使用 Docker 安装官方文件系统服务器:
docker pull mcp/filesystem -
或者,您可以按照 Filesystem MCP Server 仓库 中的说明从源代码构建它
步骤 2:查找配置文件
找到您的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
如果该文件不存在,请创建它。
步骤 3:将两个服务器添加到配置中
添加以下配置,确保使用绝对路径:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/PATH/TO/VIDEOS/DIRECTORY,dst=/projects/video-drop",
"mcp/filesystem",
"/projects"
]
},
"shaka-packager": {
"command": "/ABSOLUTE/PATH/TO/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"/ABSOLUTE/PATH/TO/shaka_packager_mcp.py"
],
"env": {
"VIDEO_PATH": "/PATH/TO/VIDEOS/DIRECTORY",
"SHAKA_PACKAGER_PATH": "/PATH/TO/PACKAGER"
}
}
}
}
替换:
/PATH/TO/VIDEOS/DIRECTORY为包含您的视频文件的目录的路径/ABSOLUTE/PATH/TO/uv为您的 uv 可执行文件的完整路径/ABSOLUTE/PATH/TO/shaka_packager_mcp.py为脚本文件的完整路径/PATH/TO/PACKAGER为您的 Shaka Packager 可执行文件的完整路径
例如:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/Users/username/Videos,dst=/projects/video-drop",
"mcp/filesystem",
"/projects"
]
},
"shaka-packager": {
"command": "/Users/username/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"/Users/username/Development/shaka-packager-mcp/shaka_packager_mcp.py"
],
"env": {
"VIDEO_PATH": "/Users/username/Videos",
"SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager"
}
}
}
}
步骤 4:重启 Claude Desktop
编辑配置文件后,重启 Claude Desktop 以应用更改。
如何使用双服务器方法
-
首先,使用简化的文件系统服务器浏览您的视频文件:
- 询问 Claude “列出我的视频目录中的文件”
- 导航到您要分析或处理的视频文件
-
找到您的视频文件后,将其路径与 Shaka Packager 工具一起使用:
- 对于分析:“请分析此视频:/Users/username/Videos/example.mp4”
- 对于处理:“请将此视频打包为 HLS:/Users/username/Videos/example.mp4”
故障排除
如果您遇到任何问题:
- 确保两个服务器都已使用绝对路径正确配置
- 验证 Shaka Packager 是否已安装且可访问
- 确保为文件系统服务器指定的目录存在并且包含视频
- 在以下位置检查 Claude Desktop 日志中的错误:
- macOS:
~/Library/Logs/Claude/mcp*.log - Windows:
%APPDATA%\Claude\logs\mcp*.log
- macOS:
用法
一旦 Filesystem MCP 服务器和 Shaka Packager MCP 服务器都在 Claude Desktop 中运行:
-
访问您的视频文件:
请显示我的 Videos 目录中的文件 -
导航到您的视频文件:
请显示 Movies 子目录中的文件 -
复制您要处理的视频的 file:// URI 路径
-
将 Shaka Packager 工具与文件路径一起使用:
请分析此视频:file:///Users/username/Videos/my_video.mp4或者
请将此视频打包为 HLS 和 DASH 流媒体:file:///Users/username/Videos/my_video.mp4 -
服务器将执行适当的 Shaka Packager 命令并提供结果的详细摘要
如果您知道视频文件的确切位置,也可以使用直接文件路径:
请分析此视频:/Users/username/Videos/my_video.mp4
工具
服务器提供以下工具:
- analyze_video: 检查视频文件并提供详细的流信息以及智能错误处理
- run_shaka_packager: 使用自定义参数和正确的路径处理执行任何 Shaka Packager 命令
- get_shaka_options: 检索可用的命令选项和版本信息
- get_shaka_documentation: 提供使用 Shaka Packager 的全面文档和示例
提示
服务器包括以下提示模板:
- MP4 到 TS 转换
- HLS 和 DASH 中的 VOD 打包
- 直播流媒体打包
- 内容加密
- 广告插入准备
- 视频分析
- 命令格式提醒
- 错误解释指南
配置
可以使用环境变量配置服务器:
SHAKA_PACKAGER_PATH:Shaka Packager 可执行文件的路径(强烈建议用于 Claude Desktop)VIDEO_PATH:本地视频目录的路径(用于转换 Docker 和主机之间的路径)DOCKER_PATH:Docker 容器挂载路径(默认值:"/projects/video-drop")TEMP_DIR:用于文件上传的自定义临时目录LOG_LEVEL:日志记录级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)COMMAND_TIMEOUT:Shaka Packager 命令的超时时间(以秒为单位)(默认值:300)
您可以在以下位置设置这些变量:
- 您的 Claude Desktop 配置文件(首选
SHAKA_PACKAGER_PATH和VIDEO_PATH) - 您的环境变量
- 与脚本位于同一目录中的
.env文件
.env 文件示例:
SHAKA_PACKAGER_PATH=/usr/local/bin/packager
VIDEO_PATH=/Users/yourusername/Videos
LOG_LEVEL=DEBUG
开发
设置开发环境
# 克隆仓库
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
# 使用 pip 安装开发依赖项
pip install -e ".[dev]"
# 或者使用 uv
uv pip install -e ".[dev]"
运行测试
pytest
代码格式化
black .
isort .
了解代码结构
Shaka Packager MCP 服务器的主要组件是:
shaka_packager_mcp.py:带有 MCP 工具和提示的主服务器实现tests/:用于验证功能的测试套件
该服务器旨在与官方 MCP 文件系统服务器协同工作以访问视频文件。
实现中的关键特性
- 强大的路径处理:自动转换 Docker 和主机环境之间的路径
- 智能错误处理:提供有意义的错误消息和建议
- 命令语法辅助:帮助正确格式化 Shaka Packager 命令
- 文档集成:提供全面的文档和示例
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
获取帮助
随意使用 AI 代码副驾驶,作者就是这么做的。
如果您遇到任何问题或有任何疑问:
- 查看本 README 中的故障排除部分
- 查看 Shaka Packager 文档
- 使用
get_shaka_documentation工具在 Claude 中获得交互式帮助 - 在 GitHub 上打开一个 issue
致谢
- Shaka Packager,感谢其强大的视频处理能力
- 模型上下文协议 (MCP),感谢其通信框架
- Claude,感谢其 AI 助手能力
- Anthropic,感谢其开发 Claude 和 MCP 标准
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。