7 篇文章带有标签 “ffmpeg”

macOS 录屏视频压缩工具(Automator)

macOS 录屏视频压缩工具使用说明

本工具是一个专为 macOS 设计的自动化脚本,它能帮助您将录屏或大体积视频文件压缩为高兼容性、恒定帧率(60 FPS)的 MP4 格式,有效解决体积过大以及剪辑时的“音画不同步”问题。

该工具设计为通过 macOS 的“快速操作”或 Automator 工作流程来调用,从而实现便捷的视频压缩操作。

  • 作为“快速操作”使用:
  • 设置“快速操作”: 您需要将提供的脚本保存为 Automator 工作流程的“快速操作”。
  • 打开 Automator 应用(在“应用程序” -> “实用工具”中)。
  • 选择 “文件”>“新建”。
  • 选择 “快速操作” 并点击“选取”。
  • 在顶部设置中,将“工作流程收到当前”修改为 影片文件(或 文件或文件夹)。
  • 在左侧的库中,搜索并拖动 “运行 Shell 脚本” 到右侧的工作流程区域。
  • 在“运行 Shell 脚本”模块中,将“传递输入”设置为 “作为自变量”(至关重要,请勿选错)。
  • 将本工具的完整 Bash 代码粘贴到“运行 Shell 脚本”的文本框中。
  • 选择 “文件”>“存储”,为您的快速操作命名,例如 “压缩录屏视频”。
  • 使用方法:
  • 打开 Finder,导航到您要压缩的视频文件(如 .mov 或 .mp4)所在的文件夹。
  • 选中您希望压缩的视频文件(支持单选或批量多选)。
  • 右键点击选中的视频,在弹出的菜单中选择 “快捷动作”(或顶部的“服务”菜单)。
  • 点击您刚才创建的快速操作名称 “压缩录屏视频”。
  • 系统会弹窗或通知提示已开始处理,工具将自动完成转码,并将压缩后的新视频(文件名附带 _compressed.mp4 后缀)保存在原始视频所在的同一文件夹中。

audio2sub — 音频转字幕工具

基于 OpenAI Whisper 的命令行工具,将音频文件批量转写为 VTT / SRT 格式字幕。

环境要求

依赖 说明
Python ≥ 3.8
PyTorch Whisper 的运行时依赖,自动安装
openai-whisper 语音识别引擎
ffmpeg 音频解码,系统级安装

安装步骤

1. 安装 ffmpeg

  • macOS:
brew install ffmpeg
  • Ubuntu / Debian:
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

在 MacBook Pro M2 Max 上测试 Whisper

准备音频文件

macOS 上打开 QuickTimePlayer

  1. [文件] -> [新建音频录制]
  2. 录制
  3. 朗读:荷兰发布了一份主题为“宣布即将对先进半导体制造设备采取的出口管制措施”的公告表示,鉴于技术的发展和地缘政治的背景,政府已经得出结论,有必要扩大现有的特定半导体制造设备的出口管制。
  4. 停止
  5. 保存(test.m4a)

m4a 转换 wav

ffmpeg -i test.m4a -ar 16000 -ac 1 -c:a pcm_s16le test.wav

OpenAI Whisper

创建虚拟环境

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.

在 MacBook Pro M2 Max 上使用 FFmpeg

Apple 芯片上进行硬件加速的框架

Video Toolbox

VideoToolbox 是一个低级框架,可提供对硬件编码器和解码器的直接访问。它提供视频压缩和解压缩服务,以及存储在 CoreVideo 像素缓冲区中的光栅图像格式之间的转换。这些服务以会话对象(压缩、解压缩和像素传输)的形式提供。

VideoToolbox还包括一些命令行工具,例如vttool、vtenc、vtdecode等,可以在终端中使用。这些工具可以用来检查视频的属性、转码视频、将视频转换为图像序列等任务。

Audio Toolbox

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文件

抽取视频的关键帧,保存为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

FFmpeg

  • 格式转换 -y(覆盖输出文件)
ffmpeg -y -i input.mp4 output.avi
  • 生成gif(低质量) -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
  • 生成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