‹ 首页

ffmpeg-encoder-check

@hkuds · 收录于 5 天前 · 上游提交 1 周前

Check FFmpeg encoder availability before video encoding to avoid library mismatches

适合你,如果经常用FFmpeg编码视频,需要提前确认编码器支持

/ 通过 npx 安装 校验哈希
npx oh-my-skill add hkuds/openspace/ffmpeg-encoder-check
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- hkuds/openspace/ffmpeg-encoder-check
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify hkuds/openspace/ffmpeg-encoder-check
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
6920GitHub stars
~757上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 2c5cc40 · 表述以原文为准
它做什么

当你要进行视频编码时,Claude会先运行命令检查你的FFmpeg安装中有哪些H.264编码器可用,然后根据结果推荐最合适的编码方式,避免因编码器缺失或版本不匹配导致失败。

什么时候触发

当你要求Claude生成视频编码命令或脚本时,它会自动在开始前检查可用编码器。

装好后可以这样说
Claude会运行命令并解释结果。
Claude会先检查libx264是否可用。
技能原文 SKILL.md作者撰写 · MIT · 2c5cc40

FFmpeg Encoder Availability Check

Purpose

Before 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.

Instructions
Step 1: Probe Available Encoders

Run the following command to check available H.264 encoders:

ffmpeg -encoders 2>/dev/null | grep h264

This shows which H.264 encoders are compiled into your FFmpeg build.

Step 2: Interpret Results

Common encoder options you may see:

| Encoder | Description | Recommendation | |---------|-------------|----------------| | libx264 | Software H.264 encoder | Preferred - widely compatible | | libopenh264 | OpenH264 software encoder | Use with caution - often has library version mismatches | | h264_nvenc | NVIDIA hardware encoder | Good if NVIDIA GPU available | | h264_videotoolbox | macOS hardware encoder | Good on macOS | | h264_vaapi | Intel VAAPI hardware encoder | Good on Linux with Intel GPU | | h264_qsv | Intel QuickSync encoder | Good on Windows/Linux with Intel GPU |

Step 3: Choose Encoding Strategy

For same-resolution sources (no re-encoding needed):

# Best option - pass-through without quality loss
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mp4

If libx264 is available:

# Reliable software encoding
ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 -c:a aac output.mp4

If only libopenh264 is available:

# Use with caution - may have library issues
ffmpeg -i input.mp4 -c:v libopenh264 -c:a aac output.mp4
Step 4: Validate Before Batch Processing

Always test your encoding command on a small sample file before processing multiple videos or long footage.

Best Practices
  1. Default to -c:v copy when source and target resolutions match - no quality loss, fastest processing
  2. Prefer libx264 over libopenh264 for software encoding - more stable, better compatibility
  3. Check encoder availability at script startup, not during execution - fail fast with clear error
  4. Cache encoder check results if running multiple encoding operations in the same session
  5. Provide fallback options in automated scripts - try copy first, then libx264, then fail gracefully
Example Script Template
#!/bin/bash

# Check available encoders at startup
ENCODERS=$(ffmpeg -encoders 2>/dev/null | grep h264)

if echo "$ENCODERS" | grep -q "libx264"; then
    VIDEO_CODEC="libx264"
    echo "Using libx264 encoder"
elif echo "$ENCODERS" | grep -q "libopenh264"; then
    VIDEO_CODEC="libopenh264"
    echo "Warning: Using libopenh264 (may have compatibility issues)"
else
    echo "Error: No H.264 encoder available"
    echo "Available encoders:"
    echo "$ENCODERS"
    exit 1
fi

# For same-resolution sources, prefer copy
if [ "$SOURCE_RESOLUTION" = "$TARGET_RESOLUTION" ]; then
    VIDEO_CODEC="copy"
    echo "Same resolution detected - using stream copy"
fi

# Encode
ffmpeg -i "$INPUT" -c:v "$VIDEO_CODEC" -c:a aac "$OUTPUT"
Common Errors to Avoid
  • Do not assume libx264 is available - FFmpeg builds vary by system
  • Do not use libopenh264 without checking - frequent library version mismatch errors
  • Do not re-encode unnecessarily - use -c:v copy when resolution matches
  • Do not skip the encoder check - always probe before writing encoding logic
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。