[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XEDZ63FC3R082EBH2M6F2A":3,"skill-same:01M6XEDZ63FC3R082EBH2M6F2A":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":13,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6XEDZ63FC3R082EBH2M6F2A","FFmpeg Media Info",null,"Analyze media file properties - duration, resolution, bitrate, codecs, and stream information","Waaaalnut\u002Fskillsbench","Waaaalnut","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103995656?v=4","01M6XCS9K1V51EY3JMB7DGMX24","01M6XCS9Q4WPW88W62C55G1H44",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Fffmpeg-media-info\u002FSKILL.md",[],[18,19,20,5,21,22,23,24,25,26],"Media","info","ffmpeg","file","analyze","properties","resolution","information","stream","2026-11-10 10:12:30",false,"---\nname: FFmpeg Media Info\ndescription: Analyze media file properties - duration, resolution, bitrate, codecs, and stream information\n---\n\n# FFmpeg Media Info Skill\n\nExtract and analyze media file metadata using ffprobe and ffmpeg.\n\n## When to Use\n\n- Get video\u002Faudio file properties\n- Check codec information\n- Verify resolution and bitrate\n- Analyze stream details\n- Debug media file issues\n\n## Basic Info Commands\n\n```bash\n# Show all file info\nffmpeg -i input.mp4\n\n# JSON format (detailed)\nffprobe -v quiet -print_format json -show_format -show_streams input.mp4\n\n# Simple format\nffprobe -v quiet -print_format json -show_format input.mp4\n```\n\n## Duration\n\n```bash\n# Get duration in seconds\nffprobe -v error -show_entries format=duration \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Duration with timestamp format\nffprobe -v error -show_entries format=duration \\\n  -of default=noprint_wrappers=1:nokey=1 -sexagesimal input.mp4\n```\n\n## Resolution\n\n```bash\n# Get video resolution\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=width,height \\\n  -of csv=s=x:p=0 input.mp4\n\n# Get resolution as JSON\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=width,height \\\n  -of json input.mp4\n```\n\n## Bitrate\n\n```bash\n# Get overall bitrate\nffprobe -v error -show_entries format=bit_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Get video bitrate\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=bit_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Codec Information\n\n```bash\n# Video codec\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=codec_name,codec_long_name \\\n  -of default=noprint_wrappers=1 input.mp4\n\n# Audio codec\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=codec_name,codec_long_name \\\n  -of default=noprint_wrappers=1 input.mp4\n```\n\n## Sample Rate and Channels\n\n```bash\n# Audio sample rate\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=sample_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Audio channels\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=channels \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Stream Count\n\n```bash\n# Count video streams\nffprobe -v error -select_streams v -show_entries stream=index \\\n  -of csv=p=0 input.mp4 | wc -l\n\n# Count audio streams\nffprobe -v error -select_streams a -show_entries stream=index \\\n  -of csv=p=0 input.mp4 | wc -l\n```\n\n## Frame Rate\n\n```bash\n# Get frame rate\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=r_frame_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Notes\n\n- Use `-v error` to suppress warnings\n- `-of json` for structured output\n- `-select_streams` to target specific streams (v:0 for first video, a:0 for first audio)\n","# FFmpeg Media Info Skill\n\nExtract and analyze media file metadata using ffprobe and ffmpeg.\n\n## When to Use\n\n- Get video\u002Faudio file properties\n- Check codec information\n- Verify resolution and bitrate\n- Analyze stream details\n- Debug media file issues\n\n## Basic Info Commands\n\n```bash\n# Show all file info\nffmpeg -i input.mp4\n\n# JSON format (detailed)\nffprobe -v quiet -print_format json -show_format -show_streams input.mp4\n\n# Simple format\nffprobe -v quiet -print_format json -show_format input.mp4\n```\n\n## Duration\n\n```bash\n# Get duration in seconds\nffprobe -v error -show_entries format=duration \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Duration with timestamp format\nffprobe -v error -show_entries format=duration \\\n  -of default=noprint_wrappers=1:nokey=1 -sexagesimal input.mp4\n```\n\n## Resolution\n\n```bash\n# Get video resolution\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=width,height \\\n  -of csv=s=x:p=0 input.mp4\n\n# Get resolution as JSON\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=width,height \\\n  -of json input.mp4\n```\n\n## Bitrate\n\n```bash\n# Get overall bitrate\nffprobe -v error -show_entries format=bit_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Get video bitrate\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=bit_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Codec Information\n\n```bash\n# Video codec\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=codec_name,codec_long_name \\\n  -of default=noprint_wrappers=1 input.mp4\n\n# Audio codec\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=codec_name,codec_long_name \\\n  -of default=noprint_wrappers=1 input.mp4\n```\n\n## Sample Rate and Channels\n\n```bash\n# Audio sample rate\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=sample_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n\n# Audio channels\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=channels \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Stream Count\n\n```bash\n# Count video streams\nffprobe -v error -select_streams v -show_entries stream=index \\\n  -of csv=p=0 input.mp4 | wc -l\n\n# Count audio streams\nffprobe -v error -select_streams a -show_entries stream=index \\\n  -of csv=p=0 input.mp4 | wc -l\n```\n\n## Frame Rate\n\n```bash\n# Get frame rate\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=r_frame_rate \\\n  -of default=noprint_wrappers=1:nokey=1 input.mp4\n```\n\n## Notes\n\n- Use `-v error` to suppress warnings\n- `-of json` for structured output\n- `-select_streams` to target specific streams (v:0 for first video, a:0 for first audio)\n",{"name":5,"description":7},"main","7eeb258ada72b7f58119b0e7a2c00ea89d9beedd","tasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Fffmpeg-media-info","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench","https:\u002F\u002Fgithub.com\u002FWaaaalnut","student of Zhejiang University","2026-04-21 23:16:23",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add Waaaalnut\u002Fskillsbench --skill \"FFmpeg Media Info\"",{"tool":45,"command":46},"bunx","bunx skills add Waaaalnut\u002Fskillsbench --skill \"FFmpeg Media Info\"",{"tool":48,"command":49},"pnpm","pnpm dlx skills add Waaaalnut\u002Fskillsbench --skill \"FFmpeg Media Info\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Fffmpeg-media-info\u002FSKILL.md",true,[],[54,68,83,110,132,151],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":64,"publishedAt":27},"01M6XEWMJ6VY3ZC53MPDCPG3GH","data-reconciliation","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fxlsx-recover-data\u002Fenvironment\u002Fskills\u002Fdata-reconciliation\u002FSKILL.md",[59],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[65,66,67],"data reconciliation","reconciliation","data",{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":27},"01M6XEW8MNPMF1KRXV6ATGFRQF","speech-to-text","Transcribe video to timestamped text using Whisper tiny model (pre-installed).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-tutorial-indexer\u002Fenvironment\u002Fskills\u002Fspeech-to-text\u002FSKILL.md",[],[75,76,77,78,79,80,81,82],"speech","text","speech to text","transcribe video","whisper","model","Video","transcribe",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":94,"publishedAt":27},"01M6XEW3FQZP0T1RKQQJFXVY9T","video-processor","Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses\u002Fopenings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fvideo-processor\u002FSKILL.md",[89],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[81,95,96,97,98,99,100,101,102,103,104,105,106,107,20,108,109],"processor","video processor","batch","create","reels","when","parts","segments","process","videos","you","segment","filter","use","remove",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":27},"01M6XEVXJ5KZ0NTY3XZKRY4AS1","silence-detector","Detect initial silence segments in audio\u002Fvideo using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsilence-detector\u002FSKILL.md",[116],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},[118,119,120,121,100,105,122,123,124,125,126,102,127,128,81,129,130,131,108],"detector","silence detector","title","slides","time","energy","at","recordings","detect","find","Audio","analysis","start","setup",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":27},"01M6XEVT3NGRN1FT7JPMAPXS6M","segment-combiner","Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsegment-combiner\u002FSKILL.md",[],[106,139,81,140,141,142,143,144,100,145,146,102,105,147,148,108,149,150],"segment combiner","detection","prepare","merge","video processing","for","outputs","combine","processing","consolidate","results","list",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":160,"publishedAt":27},"01M6XEVMPVASGS2KX86QK4FMT7","report-generator","Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Freport-generator\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000034","行政与办公人员",[161,162,163,106,100,144,105,164,147,165,166,167,108,143,168,81,169,170,98],"generator","report generator","report","with","statistics","structured","reports","json","compression","generate"]