{"record":{"id":"ef077b289553ae79","repo":"HKUDS/DeepTutor","slug":"failed-to-extract-review-frames","errorCode":null,"errorMessage":"Failed to extract review frames: ","messagePattern":"Failed to extract review frames: ","errorType":"exception","errorClass":"ManimRenderError","httpStatus":null,"severity":"error","filePath":"deeptutor/agents/math_animator/visual_review.py","lineNumber":85,"sourceCode":"                f\"{timestamp:.3f}\",\n                \"-i\",\n                str(video_path),\n                \"-frames:v\",\n                \"1\",\n                str(frame_path),\n            ]\n            await self._emit_progress(\n                f\"Extracting review frame {idx}/{len(timestamps)} at {timestamp:.1f}s.\",\n                raw=True,\n            )\n            process = await asyncio.create_subprocess_exec(\n                *command,\n                stdout=asyncio.subprocess.PIPE,\n                stderr=asyncio.subprocess.PIPE,\n            )\n            _stdout, stderr = await process.communicate()\n            if process.returncode != 0 or not frame_path.exists():\n                raise ManimRenderError(\n                    \"Failed to extract review frames: \" + stderr.decode(errors=\"ignore\").strip()\n                )\n            frame_paths.append(frame_path)\n        return frame_paths\n\n    async def _probe_duration(self, video_path: Path) -> float:\n        command = [\n            \"ffprobe\",\n            \"-v\",\n            \"error\",\n            \"-show_entries\",\n            \"format=duration\",\n            \"-of\",\n            \"default=noprint_wrappers=1:nokey=1\",\n            str(video_path),\n        ]\n        process = await asyncio.create_subprocess_exec(\n            *command,","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/agents/math_animator/visual_review.py#L67-L103","documentation":"Error \"Failed to extract review frames: \" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/agents/math_animator/visual_review.py:85 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}