功能说明
将源视频裁剪为竖版(9:16)并烧录字幕。输出为单个 H.264/AAC 文件,适用于短视频平台。
先决条件
ffmpeg和ffprobe已加入PATH环境变量- 对
~/workspace/input有读取权限 - 对
~/workspace/output有写入权限
验证环境
在执行任何操作之前运行以下命令:
command -v ffmpeg && command -v ffprobe
如果缺少任一命令,请停止并报告:MISSING_DEP: ffmpeg。不要尝试回退编码器。
步骤
-
确认源文件存在:
test -f ~/workspace/input/source.mp4如果文件不存在,报告
MISSING_INPUT: ~/workspace/input/source.mp4。 -
在接触文件之前探测尺寸:
ffprobe -v error -select_streams v:0 -show_entries stream=width,height \ -of csv=p=0 ~/workspace/input/source.mp4 -
确保输出目录存在:
mkdir -p ~/workspace/output -
运行裁剪:
bash scripts/cut.sh ~/workspace/input/source.mp4 ~/workspace/output/final.mp4 -
确认结果是真实文件,并报告其路径和大小:
ls -lh ~/workspace/output/final.mp4
禁止假设
- 禁止假设输入已经是 9:16 比例——始终先探测尺寸。
- 禁止假设
~/workspace/output目录存在——使用mkdir -p创建。 - 未经用户确认,禁止覆盖已有的输出文件。
- 禁止假设源文件包含音频轨道——使用以下命令检查:
ffprobe -select_streams a -show_entries stream=codec_type -of csv=p=0。
输出
~/workspace/output/final.mp4 — H.264 编码,1080x1920 分辨率,AAC 音频,-crf 20。
失败处理
ffprobe执行失败 → 文件不是有效的视频。报告BAD_INPUT。cut.sh退出非零 → 直接输出其标准错误输出。不要盲目重试。- 输出文件大小为 0 字节 → 报告
EMPTY_OUTPUT并停止。