[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HWG9PPFDX92REFRWR42VT8":3,"skill-same:01M6HWG9PPFDX92REFRWR42VT8":60},{"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":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6HWG9PPFDX92REFRWR42VT8","ffmpeg-encoder-check-4855c0",null,"Check available FFmpeg encoders before writing encoding scripts to avoid library version mismatches","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",7996,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Fffmpeg-encoder-check-4855c0\u002FSKILL.md",[],[19,20,21,22,23,24,25,26],"check","ffmpeg","ffmpeg encoder check 4855c0","writing","library","encoding","version","scripts","2026-11-10 10:12:30",false,"---\nname: ffmpeg-encoder-check-4855c0\ndescription: Check available FFmpeg encoders before writing encoding scripts to avoid library version mismatches\n---\n\n# FFmpeg Encoder Availability Check\n\n## Purpose\n\nBefore writing any FFmpeg encoding script, always probe the system for available encoders. This prevents failures from missing or incompatible codec libraries (especially libopenh264 which frequently has version mismatches).\n\n## Core Pattern\n\n### Step 1: Probe Available Encoders\n\nAlways run this command before deciding on encoding parameters:\n\n```bash\nffmpeg -encoders | grep h264\n```\n\nThis shows which H.264 encoders are available on the system.\n\n### Step 2: Choose Encoder Based on Availability\n\n**Priority order for H.264 encoding:**\n\n1. **`-c:v copy`** - If source and target resolution\u002Fformat match, copy the stream without re-encoding (fastest, no quality loss)\n\n2. **`-c:v libx264`** - If available, this is the most reliable and widely-compatible H.264 encoder\n\n3. **`-c:v h264`** - Hardware acceleration if available (varies by system)\n\n4. **Avoid `libopenh264`** - This encoder frequently has library version mismatches causing runtime failures\n\n### Step 3: Verify Before Execution\n\nAfter choosing an encoder, verify it works with a short test:\n\n```bash\nffmpeg -t 5 -i input.mp4 -c:v libx264 -preset fast -crf 23 -c:a copy test_output.mp4\n```\n\n## Example Decision Flow\n\n```bash\n#!\u002Fbin\u002Fbash\n\n# Check available encoders\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 \"h264\"; then\n    VIDEO_CODEC=\"h264\"\n    echo \"Using h264 encoder\"\nelse\n    VIDEO_CODEC=\"copy\"\n    echo \"No H.264 encoder available, using stream copy\"\nfi\n\n# Use $VIDEO_CODEC in your ffmpeg command\nffmpeg -i input.mp4 -c:v $VIDEO_CODEC output.mp4\n```\n\n## When to Use Stream Copy\n\nUse `-c:v copy` when:\n- Source and target resolution are identical\n- Source codec is already H.264\n- You only need to change container format or audio\n- Speed is critical and re-encoding is unnecessary\n\n## Common Pitfalls\n\n- **Don't assume encoder availability** - Different systems have different FFmpeg builds\n- **Don't hardcode libopenh264** - High failure rate due to library mismatches\n- **Always test encoding** - Run a short segment test before processing full files\n- **Check both video and audio codecs** - Audio encoder availability matters too","# FFmpeg Encoder Availability Check\n\n## Purpose\n\nBefore writing any FFmpeg encoding script, always probe the system for available encoders. This prevents failures from missing or incompatible codec libraries (especially libopenh264 which frequently has version mismatches).\n\n## Core Pattern\n\n### Step 1: Probe Available Encoders\n\nAlways run this command before deciding on encoding parameters:\n\n```bash\nffmpeg -encoders | grep h264\n```\n\nThis shows which H.264 encoders are available on the system.\n\n### Step 2: Choose Encoder Based on Availability\n\n**Priority order for H.264 encoding:**\n\n1. **`-c:v copy`** - If source and target resolution\u002Fformat match, copy the stream without re-encoding (fastest, no quality loss)\n\n2. **`-c:v libx264`** - If available, this is the most reliable and widely-compatible H.264 encoder\n\n3. **`-c:v h264`** - Hardware acceleration if available (varies by system)\n\n4. **Avoid `libopenh264`** - This encoder frequently has library version mismatches causing runtime failures\n\n### Step 3: Verify Before Execution\n\nAfter choosing an encoder, verify it works with a short test:\n\n```bash\nffmpeg -t 5 -i input.mp4 -c:v libx264 -preset fast -crf 23 -c:a copy test_output.mp4\n```\n\n## Example Decision Flow\n\n```bash\n#!\u002Fbin\u002Fbash\n\n# Check available encoders\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 \"h264\"; then\n    VIDEO_CODEC=\"h264\"\n    echo \"Using h264 encoder\"\nelse\n    VIDEO_CODEC=\"copy\"\n    echo \"No H.264 encoder available, using stream copy\"\nfi\n\n# Use $VIDEO_CODEC in your ffmpeg command\nffmpeg -i input.mp4 -c:v $VIDEO_CODEC output.mp4\n```\n\n## When to Use Stream Copy\n\nUse `-c:v copy` when:\n- Source and target resolution are identical\n- Source codec is already H.264\n- You only need to change container format or audio\n- Speed is critical and re-encoding is unnecessary\n\n## Common Pitfalls\n\n- **Don't assume encoder availability** - Different systems have different FFmpeg builds\n- **Don't hardcode libopenh264** - High failure rate due to library mismatches\n- **Always test encoding** - Run a short segment test before processing full files\n- **Check both video and audio codecs** - Audio encoder availability matters too",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Fffmpeg-encoder-check-4855c0",941,"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":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check-4855c0",{"tool":46,"command":47},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check-4855c0",{"tool":49,"command":50},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill ffmpeg-encoder-check-4855c0","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Fffmpeg-encoder-check-4855c0\u002FSKILL.md",true,[54],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},".skill_id","OTHER","其他",41,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Fffmpeg-encoder-check-4855c0\u002F.skill_id",[61,81,100,125,149,171],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":27},"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",[],[63,68,69,70,71,72,73,74,75,76,77,78,79,80],"prepare","requests","with","missing","installation","rsi","up","use","user","work","SET","run","experiments",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":27},"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",[],[83,88,89,90,91,92,93,94,95,96,97,98,99],"memory","review","auto","openspace","changes","facts","detect","entries","local","conflicts","stale","duplicates",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":111,"publishedAt":27},"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",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[112,113,114,91,115,116,117,118,119,120,121,122,123,124],"skill discovery","discovery","reusable","step by step","tokens","packages","help","cloud","reliability","capabilities","browse","search","Tools",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":132,"publishedAt":27},"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",[131],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},[133,134,135,91,136,137,138,139,140,114,90,75,141,142,143,144,145,146,147,148],"delegate","task","delegate task","time","improve","desktop automation","worker","community","autonomous","tool","stack","for","share","tasks","automation","MCP",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":27},"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",[],[156,157,19,158,159,160,161,162,163,164,165,166,167,168,144,169,170],"write special chars ts check","write","type","files","filters","only","template","file","python","typescript","output","Existing","type-checking","errors","script",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":27},"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",[],[178,179,157,70,144,170,180,181,182,26,183,162,163,184,185,164],"write special chars readback","readback","helper","post","via","read","verification","cleanup"]