音频工具 · 杂项

音频 + 图片→视频

FFmpeg 静态图 + 音频→MP4

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 54 次使用
本地处理 · 文件永不上传
添加图片 JPG / PNG / WEBP / GIF · 可多张轮播 local only
添加音频 MP3 / WAV / OGG / FLAC / M4A local only
实时预览canvas · live preview
画布设置canvas & layout

导出格式说明:浏览器 MediaRecorder 主流输出 WebM(VP8/VP9 + Opus); Safari 若支持会优先 MP4,否则为 WebM。多数平台(B 站 / 抖音网页端)可直接上传 WebM; 如需严格 MP4,下载后用本地 FFmpeg(ffmpeg -i in.webm out.mp4)或在线转换工具转码。 视频时长 = 音频时长,合成时需保持本页面前台。

就绪 · 添加图片与音频后即可合成视频
第一节

关于本工具

About

做视频号、发小红书,一张静图配一段录音,想转成视频发布,却得打开剪辑软件导出。这个工具直接让 FFmpeg 把图片和音频压进一个 MP4 容器,图片尺寸、音频码率都可调,输出就是可播放的视频文件。注意:它只做静帧拼接,不会自动缩放图片——输入的分辨率就是输出的分辨率。

使用场景

年终总结配音乐

年底汇报前夜,市场部小陈发现 PPT 演示需要一段背景音乐,但公司素材库里只有一张团队合影和一首版权干净的钢琴曲。用本工具把合影固定为封面画面,音频压成 16:9 的 MP4 视频,直接嵌入 PPT 的「插入视频」功能,省去用剪辑软件新建时间线、调整画布尺寸的步骤。视频输出时自动匹配音频时长,不会出现画面提前结束的黑屏。

播客封面动起来

独立播客主理人老周每期只有一张方形封面图(1400×1400px)和一小时音频。把封面图上传,音频拖入,工具自动输出 1:1 比例的 MP4 视频,可直接上传 Spotify for Podcasters 或 Apple Podcasts Connect。相比用 Final Cut 手动对齐音频长度,本工具省掉「新建项目→设置分辨率→拖入素材→导出」四步操作,且不会因画幅比例不符被平台裁剪。

课程试听片段生成

线上培训机构需要为每节付费课制作 3 分钟试看视频:一张课程大纲截图 + 一段讲师讲解录音。用本工具直接把截图设为静态画面,音频截取前 3 分钟上传,输出 MP4 后上传至知识店铺后台。相比用 Camtasia 渲染,本工具不涉及时间线剪辑和字幕添加,适合批量处理 20 节以上的试看素材,且输出文件体积更小(仅编码画面变化帧,非全帧率视频)。

产品说明书配语音

硬件厂商给出口的电子说明书(PDF)附带一段英文语音讲解,但客户要求必须提供视频格式。把产品爆炸图作为画面,音频(MP3,48kHz)上传,工具输出 MP4 后嵌入官网产品页。相比用 Premiere 渲染,本工具不会因编码器设置错误导致音频与画面不同步——FFmpeg 在输出时自动锁定音频时间戳,且支持直接选择 H.264 编码,兼容所有浏览器播放。

婚礼邀请函动效

新人只有一张婚纱照和一首婚礼进行曲,想做成短视频发家族群。把照片设为画面,音频上传,工具输出 9:16 竖版 MP4,适合微信直接发送。相比用剪映添加转场、滤镜,本工具零学习成本:不涉及关键帧、不要求音频剪辑,输出时自动将画面居中裁切为竖屏,且不压缩音频比特率,保留原 CD 音质。

第二节

使用指南

Getting Started

使用步骤

  1. 1在「上传图片」区域选择一张静态图(支持 JPG/PNG,建议 1920×1080 像素),缩略图即时显示在左侧预览区
  2. 2在「上传音频」区域选择 MP3/WAV/OGG 文件(时长不限),右侧波形图加载后显示音轨时长与采样率
  3. 3点击「生成视频」按钮,进度条从 0% 递增至 100%,完成后预览区自动播放生成的 MP4 片段
  4. 4预览确认无误后,点击「下载 MP4」按钮,浏览器弹出保存对话框,文件名为「图片名+音频名+时间戳」

输入输出示例

输入输出说明
图片:1920×1080 的 JPG 文件(风景图);音频:44.1kHz 16bit 立体声 MP3 文件(时长 30 秒)输出一个 30 秒的 MP4 视频,分辨率 1920×1080,帧率固定为 1fps(即 30 帧静态图),无音频压缩,视频编码 H.264,音频编码 AAC(与原音频相同)。常规:最常见的全高清图片 + 标准音频,验证基础合成流程和时长对齐。
图片:800×600 的 PNG 文件(透明背景);音频:单声道 WAV 文件(时长 5 秒)输出一个 5 秒的 MP4 视频,分辨率 800×600,帧率 1fps,视频编码 H.264(透明背景会被填充为黑色),音频编码 AAC(单声道转立体声)。常规:低分辨率图片 + 短音频,验证不同分辨率、透明背景处理及单声道音频的兼容性。
图片:4000×3000 的超大 JPG 文件(5MB);音频:时长 1 分钟的 320kbps MP3 文件输出一个 1 分钟的 MP4 视频,分辨率 4000×3000,帧率 1fps,视频编码 H.264(可能因分辨率过高导致编码速度较慢或内存占用高),音频编码 AAC。边界:超大分辨率图片,验证工具对高分辨率输入的处理能力(是否自动缩放、编码耗时、内存限制)。
图片:1×1 像素的 GIF 文件(极小尺寸);音频:时长 0.5 秒的 M4A 文件输出一个 0.5 秒的 MP4 视频,分辨率 1×1,帧率 1fps,视频编码 H.264(极小分辨率可能被播放器拉伸或显示异常),音频编码 AAC。边界:极端小尺寸图片 + 极短音频,验证工具对极小输入的容错性(是否报错、输出是否有效)。
图片:1920×1080 的 JPG 文件;音频:时长 0 秒(空音频文件,大小 0KB)工具可能报错或输出一个 0 秒的 MP4 文件(无有效帧),具体取决于 FFmpeg 对空音频流的处理。预期输出:要么失败提示“音频时长为零”,要么生成一个无音频轨道的视频。边界:空音频输入,验证工具对异常音频的处理逻辑(是否优雅报错或生成无效文件)。
图片:1920×1080 的 JPG 文件;音频:时长 10 秒的 MP3 文件,但文件名含中文(如“测试音频.mp3”)输出一个 10 秒的 MP4 视频,分辨率 1920×1080,帧率 1fps,视频编码 H.264,音频编码 AAC。文件名中的中文不会影响输出内容,但可能在某些环境下导致路径解析错误。易错:中文文件名可能在某些浏览器或后端处理中引发编码问题,需提示用户使用英文/数字命名以避免潜在错误。
图片:1920×1080 的 JPG 文件;音频:时长 10 秒的 MP3 文件,但音频比特率极低(8kbps)输出一个 10 秒的 MP4 视频,分辨率 1920×1080,帧率 1fps,视频编码 H.264,音频编码 AAC(低比特率音频会被转码,音质可能严重下降)。易错:低质量音频输入,验证工具是否对音频质量做任何提升或提示,用户可能预期输出音质与输入一致。

常见错误对照

1.图片尺寸不统一,输出视频出现黑边或拉伸

✗ 错误上传一张 1920×1080 的横图 + 一张 1080×1920 的竖图,期望自动适配
✓ 修复上传前将所有图片统一裁剪或缩放为相同宽高比(如 16:9 或 1:1)

FFmpeg 默认按第一张图尺寸设定画布,后续图片若比例不同会被拉伸或留黑边,不会自动智能裁切。

2.音频时长远长于图片切换间隔,导致尾部黑屏

✗ 错误3 张图每张显示 2 秒,但音频是 30 秒,输出视频最后 24 秒只有黑屏
✓ 修复确保 图片张数 × 每张显示秒数 ≥ 音频总时长,或勾选「循环图片到音频结束」

FFmpeg 的图片序列长度由总帧数决定,音频尾部无对应帧时输出空白,而非自动循环。

3.图片文件名含空格或中文,导致 FFmpeg 解析失败

✗ 错误上传文件名为「我的照片 2024.jpg」
✓ 修复上传前将文件名改为纯英文或数字(如 photo_2024.jpg),或确认工具已做 URL 编码

FFmpeg 命令行对空格和特殊字符敏感,未转义时会报「No such file or directory」。

4.音频格式非 MP3/AAC/WAV,工具报错不处理

✗ 错误上传一个 .flac 或 .ogg 文件
✓ 修复使用前将音频转为 MP3(320kbps)或 WAV(16bit 44100Hz)

本工具后端 Go 调用 FFmpeg 时预设了常见输入格式,FLAC/Ogg 未在输入白名单内会直接拒绝。

5.图片数量超过工具限制,上传后无响应

✗ 错误一次性上传 100 张图片(工具限制 20 张)
✓ 修复分批处理,每次不超过工具标注的最大张数(通常 20 张)

浏览器端 WASM 处理大量图片会内存溢出,后端也设了硬上限防止 OOM。

6.单张图片过大(>10MB),生成视频卡死或超时

✗ 错误上传一张 20MB 的 4K 照片
✓ 修复将图片压缩到 2MB 以内(分辨率不超过 1920×1080,JPEG 质量 80%)

FFmpeg 解码超大图片占用大量内存,浏览器 WASM 环境尤其容易触发 tab 崩溃。

7.音频采样率不匹配,输出视频音画不同步

✗ 错误音频采样率 8000Hz,视频帧率 30fps,结果声音比画面快
✓ 修复上传采样率 ≥ 22050Hz 的音频,或使用工具内置的「重采样」选项

FFmpeg 在低采样率下时间基计算误差累积,导致音画偏移;高采样率(44100Hz)可规避。

第三节

工作原理

How It Works

核心公式

视频时长(s) = 音频时长(s) = 总帧数 ÷ 帧率(fps)

变量说明

  • 音频时长输入音频文件的持续时间,秒
  • 总帧数静态图重复生成的帧总数
  • 帧率输出视频每秒显示的帧数,fps

示例

音频时长 120 秒,帧率设为 24 fps:总帧数 = 120 × 24 = 2880 帧。静态图(如 1920×1080 的 JPG)在 FFmpeg 中通过 -frames:v 2880 参数循环编码,最终输出 120 秒的 MP4 视频,音视频同步。

上传素材静态图 + 音频FFmpeg 合成图片循环 + 音频流输出 MP4视频文件关键参数时长 / 分辨率 / 码率
用户输入 服务端处理 输出结果
第五节

常见问题

Q & A
图片和音频时长不一样,视频会怎么处理?

默认图片会撑满整个音频时长。比如一张图配 30 秒音频,最终视频就是 30 秒,图片全程静止显示。如果想让图片在音频中途切换,需要提前用图片编辑工具把多张图拼成一张长图,或者等后续版本支持多图上传。当前版本只支持单图+音频。

为什么我上传的 MP3 转换后视频里没声音?

检查音频文件是否本身是静音或损坏。本工具用 FFmpeg 直接取音频流合并,不会主动静音。如果音频在本地播放正常,转完后没声音,可能是浏览器或播放器解码问题——试换 VLC 或 PotPlayer 播放,不要用系统自带播放器。另外,仅支持常见音频格式(MP3、WAV、AAC、FLAC、OGG),不支持的格式(如 AC3、DTS)会静默失败。

支持 PNG 透明背景吗?转出来背景变黑了。

FFmpeg 合成 MP4 时,透明通道会被丢弃,默认填充黑色。如果必须保留透明,需输出 MOV 或 WebM(本工具只输出 MP4)。临时方案:把 PNG 放在纯色底图上(比如白色或品牌色),再用本工具合成,避免黑底突兀。后续版本会考虑加背景色选项。

上传的图片太大,会不会被压缩变模糊?

是的,FFmpeg 默认用 H.264 编码,会按视频分辨率(默认 1920×1080)缩放图片。如果你上传 4K 图片,会缩到 1080p;如果上传 800×600 小图,会拉伸到 1080p 反而模糊。建议提前把图片裁切为 1920×1080 并保持 16:9 比例,这样不会二次缩放。

转换后的视频文件有多大?能控制大小吗?

文件大小取决于音频比特率和视频编码参数。比如 3 分钟 MP3(128kbps)配 1080p 图片,生成视频约 20-30MB。当前版本没有手动调码率选项,默认 crf 23 平衡画质和体积。如果体积太大,建议先用音频工具降低比特率(比如压到 64kbps),再上传。

音频是 44.1kHz 采样率,视频会改变吗?

不会。FFmpeg 直接复制音频流,不重新采样。输出 MP4 的音频部分完全保留原始采样率(44.1kHz、48kHz 等)和比特率。如果你担心播放兼容性,48kHz 是视频行业标准,但本工具不会主动转码,所以原始采样率不变。

上传后一直转圈不动,怎么回事?

常见原因:1)音频文件太大(超过 50MB 处理时间会很长,建议先裁剪);2)浏览器标签页被后台限速(切到前台保持活跃);3)使用了 Safari 或旧版 Edge(推荐 Chrome 或 Firefox)。本工具所有处理在浏览器内用 WASM 版 FFmpeg 完成,不传服务器,所以处理速度完全取决于你电脑的 CPU 性能。

能不能批量做几十个这样的视频?

当前版本一次只能处理一个。批量需求建议用本地 FFmpeg 命令行:ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -t 30 -pix_fmt yuv420p output.mp4。本工具本质就是封装了这个命令,方便不会敲代码的用户。如果批量需求频繁,可以反馈给站长考虑加批量上传功能。

生成的视频能直接发抖音/视频号吗?

可以。输出是标准 H.264 编码的 MP4,分辨率 1920×1080,符合主流短视频平台要求。但注意:1)音频码率保留原始值,如果原音频是低码率(<64kbps),平台可能会二次压缩导致音质变差;2)图片建议用竖屏 9:16 比例(1080×1920)而非横屏,否则发抖音会被裁切。本工具默认横屏,如需竖屏,提前把图片裁成 1080×1920 再上传。

为什么转完的视频时长比音频多了 1 秒?

这是 FFmpeg 的帧对齐行为。视频必须按帧长(比如 1/30 秒)截断,当音频时长不是帧长的整数倍时,FFmpeg 会补一帧静默或延长最后一帧。如果音频正好 30.033 秒(约 901 帧),输出视频会变成 30.067 秒(902 帧),多出 0.034 秒。不影响正常播放,只是播放器显示时长可能四舍五入多 1 秒。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭