[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7C33PYNPD5MMASQBM0XQQF2":3,"skill-same:01M7C33PYNPD5MMASQBM0XQQF2":45},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7C33PYNPD5MMASQBM0XQQF2","ffmpeg-audio-processing",null,"Extract, normalize, mix, and process audio tracks - audio manipulation and analysis","linyouxue\u002Fskill-repair-benchmark","linyouxue","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F216151464?v=4","01M7BJEVCXKD74KH6FG9CBVSQB","林宥学","01M7BJEVE02NP217V93BKZFC0J",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FWML\u002Ftasks\u002Fmultilingual-video-dubbing\u002Frepaired_skill\u002Fffmpeg-audio-processing\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: ffmpeg-audio-processing\ndescription: Extract, normalize, mix, and process audio tracks - audio manipulation and analysis\n---\n\n# FFmpeg Audio Processing Skill\n\nExtract, normalize, mix, and process audio tracks from video files.\n\n## When to Use\n\n- Extract audio from video\n- Normalize audio levels\n- Mix multiple audio tracks\n- Convert audio formats\n- Extract specific channels\n- Adjust audio volume\n\n## Extract Audio\n\n```bash\n# Extract as MP3\nffmpeg -i video.mp4 -vn -acodec libmp3lame -q:a 2 audio.mp3\n\n# Extract as AAC (copy, no re-encode)\nffmpeg -i video.mp4 -vn -c:a copy audio.aac\n\n# Extract as WAV (uncompressed)\nffmpeg -i video.mp4 -vn -acodec pcm_s16le audio.wav\n\n# Extract specific audio stream\nffmpeg -i video.mp4 -map 0:a:1 -c:a copy audio2.aac\n```\n\n## Normalize Audio\n\n```bash\n# Normalize loudness (ITU-R BS.1770-4)\nffmpeg -i input.mp4 -af \"loudnorm=I=-23:TP=-1.5:LRA=11\" output.mp4\n\n# Simple normalization\nffmpeg -i input.mp4 -af \"volume=2.0\" output.mp4\n\n# Peak normalization\nffmpeg -i input.mp4 -af \"volumedetect\" -f null -\n# Then use the detected peak to normalize\nffmpeg -i input.mp4 -af \"volume=0.5\" output.mp4\n```\n\n## Volume Adjustment\n\n```bash\n# Increase volume by 6dB\nffmpeg -i input.mp4 -af \"volume=6dB\" output.mp4\n\n# Decrease volume by 3dB\nffmpeg -i input.mp4 -af \"volume=-3dB\" output.mp4\n\n# Set absolute volume\nffmpeg -i input.mp4 -af \"volume=0.5\" output.mp4\n```\n\n## Channel Operations\n\n```bash\n# Extract left channel\nffmpeg -i stereo.mp3 -map_channel 0.0.0 left.mp3\n\n# Extract right channel\nffmpeg -i stereo.mp3 -map_channel 0.0.1 right.mp3\n\n# Convert stereo to mono\nffmpeg -i stereo.mp3 -ac 1 mono.mp3\n\n# Convert mono to stereo\nffmpeg -i mono.mp3 -ac 2 stereo.mp3\n```\n\n## Mix Audio Tracks\n\n```bash\n# Replace audio track\nffmpeg -i video.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4\n\n# Mix two audio tracks\nffmpeg -i video.mp4 -i audio2.mp3 \\\n  -filter_complex \"[0:a][1:a]amix=inputs=2:duration=first\" \\\n  -c:v copy output.mp4\n\n# Mix with volume control\nffmpeg -i video.mp4 -i bgm.mp3 \\\n  -filter_complex \"[0:a]volume=1.0[voice];[1:a]volume=0.3[music];[voice][music]amix=inputs=2:duration=first\" \\\n  -c:v copy output.mp4\n```\n\n## Audio Delay\n\n```bash\n# Delay audio by 0.5 seconds\nffmpeg -i video.mp4 -itsoffset 0.5 -i video.mp4 \\\n  -map 0:v -map 1:a -c copy output.mp4\n\n# Using adelay filter (milliseconds)\nffmpeg -i input.mp4 -af \"adelay=500|500\" output.mp4\n```\n\n## Sample Rate Conversion\n\n```bash\n# Resample to 48kHz\nffmpeg -i input.mp4 -af \"aresample=48000\" output.mp4\n\n# Resample audio only\nffmpeg -i input.mp4 -vn -af \"aresample=48000\" -ar 48000 audio.wav\n```\n\n## Audio Filters\n\n```bash\n# High-pass filter (remove low frequencies)\nffmpeg -i input.mp4 -af \"highpass=f=200\" output.mp4\n\n# Low-pass filter (remove high frequencies)\nffmpeg -i input.mp4 -af \"lowpass=f=3000\" output.mp4\n\n# Band-pass filter\nffmpeg -i input.mp4 -af \"bandpass=f=1000:width_type=h:w=500\" output.mp4\n\n# Fade in\u002Fout\nffmpeg -i input.mp4 -af \"afade=t=in:st=0:d=2,afade=t=out:st=8:d=2\" output.mp4\n```\n\n## Audio Analysis\n\n```bash\n# Detect volume levels\nffmpeg -i input.mp4 -af \"volumedetect\" -f null -\n\n# Measure loudness (LUFS)\nffmpeg -i input.mp4 -af \"ebur128=peak=true\" -f null -\n\n# Get audio statistics\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=sample_rate,channels,bit_rate \\\n  -of json input.mp4\n```\n\n## Combine Multiple Audio Files\n\n```bash\n# Concatenate audio files\nffmpeg -i \"concat:audio1.mp3|audio2.mp3|audio3.mp3\" -c copy output.mp3\n\n# Using file list\n# file 'audio1.mp3'\n# file 'audio2.mp3'\nffmpeg -f concat -safe 0 -i list.txt -c copy output.mp3\n```\n\n## Notes\n\n- Use `-vn` to disable video when extracting audio\n- `-map` to select specific streams\n- `-af` for audio filters\n- `-ac` for channel count\n- `-ar` for sample rate\n- Normalization may require two passes for accurate results\n","# FFmpeg Audio Processing Skill\n\nExtract, normalize, mix, and process audio tracks from video files.\n\n## When to Use\n\n- Extract audio from video\n- Normalize audio levels\n- Mix multiple audio tracks\n- Convert audio formats\n- Extract specific channels\n- Adjust audio volume\n\n## Extract Audio\n\n```bash\n# Extract as MP3\nffmpeg -i video.mp4 -vn -acodec libmp3lame -q:a 2 audio.mp3\n\n# Extract as AAC (copy, no re-encode)\nffmpeg -i video.mp4 -vn -c:a copy audio.aac\n\n# Extract as WAV (uncompressed)\nffmpeg -i video.mp4 -vn -acodec pcm_s16le audio.wav\n\n# Extract specific audio stream\nffmpeg -i video.mp4 -map 0:a:1 -c:a copy audio2.aac\n```\n\n## Normalize Audio\n\n```bash\n# Normalize loudness (ITU-R BS.1770-4)\nffmpeg -i input.mp4 -af \"loudnorm=I=-23:TP=-1.5:LRA=11\" output.mp4\n\n# Simple normalization\nffmpeg -i input.mp4 -af \"volume=2.0\" output.mp4\n\n# Peak normalization\nffmpeg -i input.mp4 -af \"volumedetect\" -f null -\n# Then use the detected peak to normalize\nffmpeg -i input.mp4 -af \"volume=0.5\" output.mp4\n```\n\n## Volume Adjustment\n\n```bash\n# Increase volume by 6dB\nffmpeg -i input.mp4 -af \"volume=6dB\" output.mp4\n\n# Decrease volume by 3dB\nffmpeg -i input.mp4 -af \"volume=-3dB\" output.mp4\n\n# Set absolute volume\nffmpeg -i input.mp4 -af \"volume=0.5\" output.mp4\n```\n\n## Channel Operations\n\n```bash\n# Extract left channel\nffmpeg -i stereo.mp3 -map_channel 0.0.0 left.mp3\n\n# Extract right channel\nffmpeg -i stereo.mp3 -map_channel 0.0.1 right.mp3\n\n# Convert stereo to mono\nffmpeg -i stereo.mp3 -ac 1 mono.mp3\n\n# Convert mono to stereo\nffmpeg -i mono.mp3 -ac 2 stereo.mp3\n```\n\n## Mix Audio Tracks\n\n```bash\n# Replace audio track\nffmpeg -i video.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4\n\n# Mix two audio tracks\nffmpeg -i video.mp4 -i audio2.mp3 \\\n  -filter_complex \"[0:a][1:a]amix=inputs=2:duration=first\" \\\n  -c:v copy output.mp4\n\n# Mix with volume control\nffmpeg -i video.mp4 -i bgm.mp3 \\\n  -filter_complex \"[0:a]volume=1.0[voice];[1:a]volume=0.3[music];[voice][music]amix=inputs=2:duration=first\" \\\n  -c:v copy output.mp4\n```\n\n## Audio Delay\n\n```bash\n# Delay audio by 0.5 seconds\nffmpeg -i video.mp4 -itsoffset 0.5 -i video.mp4 \\\n  -map 0:v -map 1:a -c copy output.mp4\n\n# Using adelay filter (milliseconds)\nffmpeg -i input.mp4 -af \"adelay=500|500\" output.mp4\n```\n\n## Sample Rate Conversion\n\n```bash\n# Resample to 48kHz\nffmpeg -i input.mp4 -af \"aresample=48000\" output.mp4\n\n# Resample audio only\nffmpeg -i input.mp4 -vn -af \"aresample=48000\" -ar 48000 audio.wav\n```\n\n## Audio Filters\n\n```bash\n# High-pass filter (remove low frequencies)\nffmpeg -i input.mp4 -af \"highpass=f=200\" output.mp4\n\n# Low-pass filter (remove high frequencies)\nffmpeg -i input.mp4 -af \"lowpass=f=3000\" output.mp4\n\n# Band-pass filter\nffmpeg -i input.mp4 -af \"bandpass=f=1000:width_type=h:w=500\" output.mp4\n\n# Fade in\u002Fout\nffmpeg -i input.mp4 -af \"afade=t=in:st=0:d=2,afade=t=out:st=8:d=2\" output.mp4\n```\n\n## Audio Analysis\n\n```bash\n# Detect volume levels\nffmpeg -i input.mp4 -af \"volumedetect\" -f null -\n\n# Measure loudness (LUFS)\nffmpeg -i input.mp4 -af \"ebur128=peak=true\" -f null -\n\n# Get audio statistics\nffprobe -v error -select_streams a:0 \\\n  -show_entries stream=sample_rate,channels,bit_rate \\\n  -of json input.mp4\n```\n\n## Combine Multiple Audio Files\n\n```bash\n# Concatenate audio files\nffmpeg -i \"concat:audio1.mp3|audio2.mp3|audio3.mp3\" -c copy output.mp3\n\n# Using file list\n# file 'audio1.mp3'\n# file 'audio2.mp3'\nffmpeg -f concat -safe 0 -i list.txt -c copy output.mp3\n```\n\n## Notes\n\n- Use `-vn` to disable video when extracting audio\n- `-map` to select specific streams\n- `-af` for audio filters\n- `-ac` for channel count\n- `-ar` for sample rate\n- Normalization may require two passes for accurate results\n",{"name":5,"description":7},"main","cdcb6d230f3b15c3c33f8a2bdd16439f43602cbe","evaluation\u002Fresults\u002FWML\u002Ftasks\u002Fmultilingual-video-dubbing\u002Frepaired_skill\u002Fffmpeg-audio-processing",1,"https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark","https:\u002F\u002Fgithub.com\u002Flinyouxue","2026-11-14 20:28:35",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add linyouxue\u002Fskill-repair-benchmark --skill ffmpeg-audio-processing",{"tool":37,"command":38},"bunx","bunx skills add linyouxue\u002Fskill-repair-benchmark --skill ffmpeg-audio-processing",{"tool":40,"command":41},"pnpm","pnpm dlx skills add linyouxue\u002Fskill-repair-benchmark --skill ffmpeg-audio-processing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FWML\u002Ftasks\u002Fmultilingual-video-dubbing\u002Frepaired_skill\u002Fffmpeg-audio-processing\u002FSKILL.md",true,[],[46,53,60,67,72,77],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":19},"01M7E1HGVRY73NBJ022CJG13X6","video-frame-extraction","Extract frames from video files and save them as images using OpenCV","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":19},"01M7E1HAG5R7CJ9C8NYJS771MB","openai-vision","Analyze images and multi-frame sequences using OpenAI GPT vision models","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"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":19},"01M7E1H7DADKB6QBWKC2KQ63SZ","image-ocr","Extract text content from images using Tesseract OCR via Python, including structured field extraction from receipts and forms","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[],{"skillNo":68,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M7E1H0WBNT43TENGQY7AVZHD","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":73,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":19},"01M7E1GTC7D4N4Q2EF03875J9E","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"skillNo":78,"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":79,"categories":80,"keywords":81,"publishedAt":19},"01M7E1GQ92CWFMGH53KSSE4WER","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[]]