[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HXKH4MBXKP1SCB0P3MD1ZA":3,"skill-same:01M6HXKH4MBXKP1SCB0P3MD1ZA":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":37,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6HXKH4MBXKP1SCB0P3MD1ZA","ffmpeg-encoder-check",null,"Check FFmpeg encoder availability before video encoding to avoid library mismatches","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",8029,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fffmpeg-encoder-check\u002FSKILL.md",[],[19,20,21,22,23,24,25],"check","ffmpeg","ffmpeg encoder check","library","encoding","Video","availability","2026-11-10 10:12:30",false,"---\nname: ffmpeg-encoder-check\ndescription: Check FFmpeg encoder availability before video encoding to avoid library mismatches\n---\n\n# FFmpeg Encoder Availability Check\n\n## Purpose\n\nBefore writing video encoding scripts, always verify which H.264 encoders are available in your FFmpeg installation. This prevents failures from library version mismatches, particularly with libopenh264.\n\n## Instructions\n\n### Step 1: Probe Available Encoders\n\nRun the following command to check available H.264 encoders:\n\n```bash\nffmpeg -encoders 2>\u002Fdev\u002Fnull | grep h264\n```\n\nThis shows which H.264 encoders are compiled into your FFmpeg build.\n\n### Step 2: Interpret Results\n\nCommon encoder options you may see:\n\n| Encoder | Description | Recommendation |\n|---------|-------------|----------------|\n| `libx264` | Software H.264 encoder | **Preferred** - widely compatible |\n| `libopenh264` | OpenH264 software encoder | Use with caution - often has library version mismatches |\n| `h264_nvenc` | NVIDIA hardware encoder | Good if NVIDIA GPU available |\n| `h264_videotoolbox` | macOS hardware encoder | Good on macOS |\n| `h264_vaapi` | Intel VAAPI hardware encoder | Good on Linux with Intel GPU |\n| `h264_qsv` | Intel QuickSync encoder | Good on Windows\u002FLinux with Intel GPU |\n\n### Step 3: Choose Encoding Strategy\n\n**For same-resolution sources (no re-encoding needed):**\n\n```bash\n# Best option - pass-through without quality loss\nffmpeg -i input.mp4 -c:v copy -c:a copy output.mp4\n```\n\n**If libx264 is available:**\n\n```bash\n# Reliable software encoding\nffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 -c:a aac output.mp4\n```\n\n**If only libopenh264 is available:**\n\n```bash\n# Use with caution - may have library issues\nffmpeg -i input.mp4 -c:v libopenh264 -c:a aac output.mp4\n```\n\n### Step 4: Validate Before Batch Processing\n\nAlways test your encoding command on a small sample file before processing multiple videos or long footage.\n\n## Best Practices\n\n1. **Default to `-c:v copy`** when source and target resolutions match - no quality loss, fastest processing\n2. **Prefer libx264** over libopenh264 for software encoding - more stable, better compatibility\n3. **Check encoder availability at script startup**, not during execution - fail fast with clear error\n4. **Cache encoder check results** if running multiple encoding operations in the same session\n5. **Provide fallback options** in automated scripts - try copy first, then libx264, then fail gracefully\n\n## Example Script Template\n\n```bash\n#!\u002Fbin\u002Fbash\n\n# Check available encoders at startup\nENCODERS=$(ffmpeg -encoders 2>\u002Fdev\u002Fnull | grep h264)\n\nif echo \"$ENCODERS\" | grep -q \"libx264\"; then\n    VIDEO_CODEC=\"libx264\"\n    echo \"Using libx264 encoder\"\nelif echo \"$ENCODERS\" | grep -q \"libopenh264\"; then\n    VIDEO_CODEC=\"libopenh264\"\n    echo \"Warning: Using libopenh264 (may have compatibility issues)\"\nelse\n    echo \"Error: No H.264 encoder available\"\n    echo \"Available encoders:\"\n    echo \"$ENCODERS\"\n    exit 1\nfi\n\n# For same-resolution sources, prefer copy\nif [ \"$SOURCE_RESOLUTION\" = \"$TARGET_RESOLUTION\" ]; then\n    VIDEO_CODEC=\"copy\"\n    echo \"Same resolution detected - using stream copy\"\nfi\n\n# Encode\nffmpeg -i \"$INPUT\" -c:v \"$VIDEO_CODEC\" -c:a aac \"$OUTPUT\"\n```\n\n## Common Errors to Avoid\n\n- **Do not assume libx264 is available** - FFmpeg builds vary by system\n- **Do not use libopenh264 without checking** - frequent library version mismatch errors\n- **Do not re-encode unnecessarily** - use `-c:v copy` when resolution matches\n- **Do not skip the encoder check** - always probe before writing encoding logic","# FFmpeg Encoder Availability Check\n\n## Purpose\n\nBefore writing video encoding scripts, always verify which H.264 encoders are available in your FFmpeg installation. This prevents failures from library version mismatches, particularly with libopenh264.\n\n## Instructions\n\n### Step 1: Probe Available Encoders\n\nRun the following command to check available H.264 encoders:\n\n```bash\nffmpeg -encoders 2>\u002Fdev\u002Fnull | grep h264\n```\n\nThis shows which H.264 encoders are compiled into your FFmpeg build.\n\n### Step 2: Interpret Results\n\nCommon encoder options you may see:\n\n| Encoder | Description | Recommendation |\n|---------|-------------|----------------|\n| `libx264` | Software H.264 encoder | **Preferred** - widely compatible |\n| `libopenh264` | OpenH264 software encoder | Use with caution - often has library version mismatches |\n| `h264_nvenc` | NVIDIA hardware encoder | Good if NVIDIA GPU available |\n| `h264_videotoolbox` | macOS hardware encoder | Good on macOS |\n| `h264_vaapi` | Intel VAAPI hardware encoder | Good on Linux with Intel GPU |\n| `h264_qsv` | Intel QuickSync encoder | Good on Windows\u002FLinux with Intel GPU |\n\n### Step 3: Choose Encoding Strategy\n\n**For same-resolution sources (no re-encoding needed):**\n\n```bash\n# Best option - pass-through without quality loss\nffmpeg -i input.mp4 -c:v copy -c:a copy output.mp4\n```\n\n**If libx264 is available:**\n\n```bash\n# Reliable software encoding\nffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 -c:a aac output.mp4\n```\n\n**If only libopenh264 is available:**\n\n```bash\n# Use with caution - may have library issues\nffmpeg -i input.mp4 -c:v libopenh264 -c:a aac output.mp4\n```\n\n### Step 4: Validate Before Batch Processing\n\nAlways test your encoding command on a small sample file before processing multiple videos or long footage.\n\n## Best Practices\n\n1. **Default to `-c:v copy`** when source and target resolutions match - no quality loss, fastest processing\n2. **Prefer libx264** over libopenh264 for software encoding - more stable, better compatibility\n3. **Check encoder availability at script startup**, not during execution - fail fast with clear error\n4. **Cache encoder check results** if running multiple encoding operations in the same session\n5. **Provide fallback options** in automated scripts - try copy first, then libx264, then fail gracefully\n\n## Example Script Template\n\n```bash\n#!\u002Fbin\u002Fbash\n\n# Check available encoders at startup\nENCODERS=$(ffmpeg -encoders 2>\u002Fdev\u002Fnull | grep h264)\n\nif echo \"$ENCODERS\" | grep -q \"libx264\"; then\n    VIDEO_CODEC=\"libx264\"\n    echo \"Using libx264 encoder\"\nelif echo \"$ENCODERS\" | grep -q \"libopenh264\"; then\n    VIDEO_CODEC=\"libopenh264\"\n    echo \"Warning: Using libopenh264 (may have compatibility issues)\"\nelse\n    echo \"Error: No H.264 encoder available\"\n    echo \"Available encoders:\"\n    echo \"$ENCODERS\"\n    exit 1\nfi\n\n# For same-resolution sources, prefer copy\nif [ \"$SOURCE_RESOLUTION\" = \"$TARGET_RESOLUTION\" ]; then\n    VIDEO_CODEC=\"copy\"\n    echo \"Same resolution detected - using stream copy\"\nfi\n\n# Encode\nffmpeg -i \"$INPUT\" -c:v \"$VIDEO_CODEC\" -c:a aac \"$OUTPUT\"\n```\n\n## Common Errors to Avoid\n\n- **Do not assume libx264 is available** - FFmpeg builds vary by system\n- **Do not use libopenh264 without checking** - frequent library version mismatch errors\n- **Do not re-encode unnecessarily** - use `-c:v copy` when resolution matches\n- **Do not skip the encoder check** - always probe before writing encoding logic",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fffmpeg-encoder-check",944,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot","https:\u002F\u002Fgithub.com\u002FHKUDS","https:\u002F\u002Fsites.google.com\u002Fview\u002Fchaoh","2026-11-12 22:26:39",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check",{"tool":45,"command":46},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check",{"tool":48,"command":49},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fffmpeg-encoder-check\u002FSKILL.md",true,[53],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},".skill_id","OTHER","其他",34,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fffmpeg-encoder-check\u002F.skill_id",[60,80,99,124,148,170],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":26},"01M6HYB297NDABRERJRVG0K8R0","agentpilot","Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fplugins\u002Fagentpilot\u002Fskills\u002Fagentpilot\u002FSKILL.md",[],[62,67,68,69,70,71,72,73,74,75,76,77,78,79],"prepare","requests","with","missing","installation","rsi","up","use","user","work","SET","run","experiments",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":26},"01M6HYAYWXTTE1J7DJM0MFNQ4H","remember","Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fskills\u002Fremember\u002FSKILL.md",[],[82,87,88,89,90,91,92,93,94,95,96,97,98],"memory","review","auto","openspace","changes","facts","detect","entries","local","conflicts","stale","duplicates",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":110,"publishedAt":26},"01M6HYAVMPM4SBDV60R2B5HPV8","skill-discovery","Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fskill-discovery\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[111,112,113,90,114,115,116,117,118,119,120,121,122,123],"skill discovery","discovery","reusable","step by step","tokens","packages","help","cloud","reliability","capabilities","browse","search","Tools",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":26},"01M6HYAR811B3RB0M50RBEDGN6","delegate-task","Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fdelegate-task\u002FSKILL.md",[130],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},[132,133,134,90,135,136,137,138,139,113,89,74,140,141,142,143,144,145,146,147],"delegate","task","delegate task","time","improve","desktop automation","worker","community","autonomous","tool","stack","for","share","tasks","automation","MCP",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":26},"01M6HYAM9FSGV6E52AYENDQXYH","write-special-chars-ts-check","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[155,156,19,157,158,159,160,161,162,163,164,165,166,167,143,168,169],"write special chars ts check","write","type","files","filters","only","template","file","python","typescript","output","Existing","type-checking","errors","script",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":26},"01M6HYAH05HGV7SVWSVR8PJRQD","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[177,178,156,69,143,169,179,180,181,182,183,161,162,184,185,163],"write special chars readback","readback","helper","post","via","scripts","read","verification","cleanup"]