You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

将视频帧提取为HEIC/HEIF格式图片

将视频帧提取为HEIC/HEIF格式图片

嘿,这个问题我之前折腾过好一阵子!FFmpeg原生确实没把HEIC/HEIF作为直接输出格式支持,但咱们有不少靠谱的替代方案,下面给你整理几个实用的:

1. 编译带libheif支持的FFmpeg(一劳永逸)

这是最彻底的解决办法,以后用FFmpeg就能直接输出HEIC帧了,步骤也不算复杂:

  • 先装libheif依赖:Ubuntu/Debian用sudo apt install libheif-dev,macOS用Homebrew的话就是brew install libheif
  • 重新编译FFmpeg,编译的时候加上--enable-libheif这个参数
    搞定之后,就可以直接用FFmpeg提取HEIC了:
  • 提取指定时间点的单帧:
    ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -f heif output.heic
  • 按固定帧率批量提取(比如每秒1帧):
    ffmpeg -i input.mp4 -vf "fps=1" -f heif frame_%03d.heic

2. 先提取普通帧再转HEIC(免编译,简单快捷)

要是嫌编译麻烦,咱们分两步走也很方便:先用FFmpeg把帧提取成PNG/JPG,再转成HEIC。

  • 第一步,提取普通格式的帧(以单帧为例):
    ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 temp.png
  • 第二步,用heif-convert转格式(这个工具是libheif包自带的,装完libheif就有了):
    heif-convert temp.png output.heic
    批量处理的话,写个小bash脚本循环就行:
# 先批量提取PNG帧,每秒1帧
ffmpeg -i input.mp4 -vf "fps=1" frame_%03d.png

# 循环转成HEIC并删除临时PNG
for img in frame_*.png; do
  heif-convert "$img" "${img%.png}.heic"
  rm "$img"
done

3. GUI工具一键操作(适合怕命令行的朋友)

如果完全不想碰命令行,试试XnConvert这类批量处理工具:

  • 打开XnConvert,直接导入你的视频文件
  • 在「输入」面板设置提取帧的参数(比如每秒几帧、指定时间范围)
  • 「输出」格式选HEIC/HEIF,设置好保存路径
  • 点「转换」就搞定了,全程可视化,小白也能上手

另外,ImageMagick 7以上版本只要装了libheif依赖,也能直接结合FFmpeg转:
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 - | magick - output.heic

备注:内容来源于stack exchange,提问作者user1897354

火山引擎 最新活动