TEN-framework / TEN-framework/ten-framework
[FEATURE] Video (vision) input support for gemini_mllm_python — regression from legacy gemini_v2v_python
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 11.1k
- Forks
- 1.4k
- Avg merge
- 2d 15m
- Merged PRs (30d)
- 22
Description
Description
The legacy TEN-Agent extension gemini_v2v_python supported realtime vision: it consumed RTC
video_frame input, converted frames to JPEG, and forwarded them to the Gemini Live API
alongside audio (this was a flagship demo — "realtime vision and realtime screenshare detection").
The current generation gemini_mllm_python (v0.2.1) appears to be audio-only:
extension.pyonly implements the audio ingress path (send_realtime_input(audio=...));
there is novideo_framehandling.- The shared MLLM interface (
ten_ai_base/api/mllm-interface.json) only defines
audio_frame_in/audio_frame_out— no video input channel. The same applies to
openai_mllm_pythonandglm_mllm_python.
Gemini Live natively supports continuous video input (processed at 1 fps server-side),
so this looks like a capability regression introduced by the v2v → mllm rewrite rather
than a provider limitation.
Use case
We are building a realtime voice + video call agent on TEN (agora_rtc + gemini_mllm_python).
Voice works out of the box, but the camera track cannot reach Gemini because the MLLM
interface has no video path.
Request
- Add a video input channel to the MLLM interface (
ten_ai_base); - Restore video frame forwarding in
gemini_mllm_python, similar to what the legacy
gemini_v2v_pythondid (see PR #474).
Questions
- Is video support for the mllm extensions already on the roadmap?
- If not, would a PR be welcome? Guidance on how you'd like the
ten_ai_baseinterface
change to be split would help.
Severity
Major
Additional Information
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing gemini_mllm_python's extension.py and ten_ai_base/api/mllm-interface.json with the legacy gemini_v2v_python implementation referenced by PR #474. Trace the existing audio ingress path and its interface channel, then determine the corresponding video-frame path. Done means the shared interface exposes video input and gemini_mllm_python forwards RTC frames to Gemini alongside audio.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ai, audio-video-rtc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100