llama.cpp b11136让llama-server兼容OpenAI的video_url视频输入
llama-server此前只认非标准的input_video类型并拒绝data: 视频URI,符合OpenAI规范的客户端会被报“unsupported content[].type”或“Invalid uri format”;b11136把video_url作为input_video的别名接受,并放行data:video/* URI。
AI解读:这次更新解决的是一个具体的对接问题:llama-server的视频输入接口此前和OpenAI的Chat Completions规范对不上。OpenAI规定视频内容块的类型是video_url,客户端通常传的是data:video/mp4;base64,... 这类内联URI,而llama-server只认自己那套“input_video”,还把视频的data: URI挡在门外,结果任何按OpenAI规范写的客户端一调用就报错。
改动本身很小:把video_url当作input_video的别名接受,媒体对象从客户端实际使用的那个键里读,并允许视频使用data: URI——图片早就允许这么传了。也就是说,用llama.cpp自建服务、又想让它替掉OpenAI接口的开发者,现在能直接接那些只按OpenAI规范发请求的前端和SDK,不必再改客户端去迁就llama-server的私有字段。
限制也要说清楚:这次只是把入口的类型和URI格式对齐,来源没有给出视频解码、帧数或推理性能方面的任何说明,能不能跑得动仍然取决于服务端模型本身是否支持视频输入。
部署渠道方面,这次发布的二进制覆盖macOS(Apple Silicon与Intel)、iOS、Linux(Ubuntu x64/arm64/s390x,含Vulkan、CUDA 12/13、ROCm、OpenVINO、SYCL,以及骁龙CPU/Adreno GPU/Hexagon NPU)、Android、Windows(含CUDA、Vulkan、OpenVINO、SYCL、ROCm)和UI包;openEuler与macOS上启用KleidiAI的构建标注为DISABLED。
llama.cpp发布b11136版本,其中一项改动是让llama-server接受OpenAI Chat Completions API里的video_url内容类型和data: 视频URI(PR #27921)。
按发布说明,OpenAI Chat Completions API规定内容块类型为 "video_url",配一个 {"url": ...} 对象,客户端通常发送data: URI,例如data:video/mp4;base64,...。而llama-server此前只接受非标准的 "input_video" 类型,并对视频拒绝data: URI(accept_base64_uri=false),因此任何符合OpenAI规范的客户端都会以 "unsupported content[].type" 或 "Invalid uri format" 失败。
这次改动包含三点:接受 "video_url" 作为 "input_video" 的别名;无论客户端使用哪个键,都从该键读取媒体对象;允许视频使用data: URI(data:video/*),与图片此前的做法一致。
发布页同时列出了b11136的各平台构建产物:macOS Apple Silicon(arm64)与Intel(x64)、iOS XCFramework;Linux的Ubuntu x64/arm64(CPU)、s390x、x64/arm64(Vulkan)、x64 CUDA 12.8、x64 CUDA 13.4、arm64 CUDA 13.4、x64 ROCm 10.0、x64 OpenVINO 2026.4、x64 SYCL FP32/FP16,以及Linux arm64骁龙(CPU、Adreno GPU、Hexagon NPU)。
Android提供arm64 CPU版和骁龙(CPU、Adreno GPU、Hexagon NPU)版;Windows提供x64/arm64 CPU、arm64 OpenCL Adreno、x64 CUDA 12.4、x64/arm64 CUDA 13.4、x64 Vulkan、x64 OpenVINO 2026.4、x64 SYCL、x64 ROCm 10.0;另有UI包。
发布页标注macOS Apple Silicon的KleidiAI启用版与openEuler相关构建为DISABLED。