游戏宣传视频自动化制作 · 最佳实践指南HTML
复盘《绯夜对决》90 秒 1080p 宣传片的七阶段无人值守管线:从源码事实基线、Playwright CDP 逐帧采集、数值与视觉双重验证,到旁白自动配速、ffmpeg 合成混音与成品质检,附陷阱速查表与命令清单,全程可复现、可审计、可单段重跑。
复盘《绯夜对决》90 秒 1080p 宣传片的七阶段无人值守管线:从源码事实基线、Playwright CDP 逐帧采集、数值与视觉双重验证,到旁白自动配速、ffmpeg 合成混音与成品质检,附陷阱速查表与命令清单,全程可复现、可审计、可单段重跑。
macOS 录屏视频压缩工具使用说明
本工具是一个专为 macOS 设计的自动化脚本,它能帮助您将录屏或大体积视频文件压缩为高兼容性、恒定帧率(60 FPS)的 MP4 格式,有效解决体积过大以及剪辑时的“音画不同步”问题。
该工具设计为通过 macOS 的“快速操作”或 Automator 工作流程来调用,从而实现便捷的视频压缩操作。
.mov 或 .mp4)所在的文件夹。_compressed.mp4 后缀)保存在原始视频所在的同一文件夹中。基于 OpenAI Whisper 的命令行工具,将音频文件批量转写为 VTT / SRT 格式字幕。
环境要求
| 依赖 | 说明 |
|---|---|
| Python | ≥ 3.8 |
| PyTorch | Whisper 的运行时依赖,自动安装 |
| openai-whisper | 语音识别引擎 |
| ffmpeg | 音频解码,系统级安装 |
安装步骤
1. 安装 ffmpeg
brew install ffmpeg
sudo apt update && sudo apt install ffmpeg
2. 安装 openai-whisper
pip install openai-whisper
该命令会自动拉取
torch等依赖。首次运行时 Whisper 模型文件会下载到~/.cache/whisper/。
⚠️ macOS 环境注意事项
使用系统 Python 或 miniconda 安装 whisper:
# miniconda(推荐,已预装 torch)
/opt/miniconda/bin/pip install openai-whisper
# 或系统 Python
/usr/bin/python3 -m pip install openai-whisper
脚本文件
编写文件:audio2sub.py
多张图片合成 GIF / 视频
使用 ImageMagick 的 magick 命令将一系列按时间顺序命名的 PNG 截屏图片合成为一个无限循环播放的动态 GIF 动图。
合成 GIF
准备音频文件
macOS 上打开 QuickTimePlayer
m4a 转换 wav
ffmpeg -i test.m4a -ar 16000 -ac 1 -c:a pcm_s16le test.wav
创建虚拟环境
conda create --name whisper python
conda activate whisper
安装
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git
wget https://raw.githubusercontent.com/openai/whisper/main/requirements.txt
pip install -r requirements.txt
测试 模型默认保存在 ~/.cache/whisper ls ~/.cache/whisper base.pt large-v2.
Apple 芯片上进行硬件加速的框架
VideoToolbox 是一个低级框架,可提供对硬件编码器和解码器的直接访问。它提供视频压缩和解压缩服务,以及存储在 CoreVideo 像素缓冲区中的光栅图像格式之间的转换。这些服务以会话对象(压缩、解压缩和像素传输)的形式提供。
VideoToolbox还包括一些命令行工具,例如vttool、vtenc、vtdecode等,可以在终端中使用。这些工具可以用来检查视频的属性、转码视频、将视频转换为图像序列等任务。
AudioToolbox 是一个音频处理框架,支持音频处理的硬件加速,它提供了一系列用于音频编码、解码、转换和处理的API接口。
安装 FFmpeg
创建目录
mkdir /opt/ffmpeg && cd /opt/ffmpeg
方法一:使用 curl
curl https://evermeet.cx/ffmpeg/ffmpeg-6.0.7z | tar -xz
curl https://evermeet.cx/ffmpeg/ffprobe-6.0.7z | tar -xz
curl https://evermeet.cx/ffmpeg/ffplay-6.0.7z | tar -xz
抽取视频的关键帧,保存为zip文件。
目录结构
.
├── keyframes
│ ├── race
│ │ ├── race-0001.jpg
│ │ ├── race-0002.jpg
│ │ └── race-0096.jpg
│ └── race.zip
└── videos
└── race.mp4
自动化脚本 _prompt='██' #find返回的文件列表在macOS系统上不能使用for循环进行迭代。 video_files=$(find videos -type f \ -iname '.mov' -o \ -iname '.mts' -o \ -iname '.mp4' -o \ -iname '.mkv' -o \ -iname '.webm' -o \ -iname '.flv' -o \ -iname '.f4v' -o \ -iname '.vob' -o \ -iname '.ogg' -o \ -iname '.ogv' -o \ -iname '.avi' -o \ -iname '.
FFmpeg
-y(覆盖输出文件)ffmpeg -y -i input.mp4 output.avi
-pix_fmt(像素格式) -s(设置帧大小WxH)ffmpeg -y -i input.mp4 -pix_fmt rgb8 -r 10 -s 320x240 output.gif
ffmpeg -y -i input.mp4 -pix_fmt rgb8 -r 10 -vf 'scale=320:-1' output.gif
-ss(开始时间偏移) -t(持续时间)ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
ffmpeg -y -ss 5 -t 5 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
-r(设置帧速率)ffmpeg -i input.mp4 -r 1 -s 1024x768 -f image2 input-%03d.jpeg
没有找到匹配的文章