返回博客

HEVC 转 MP4:把 iPhone 视频转成适合换脸的 H.264

排查手机视频能播放却导入失败的原因,检查 MOV、HEVC 和音轨,把需要的片段导出成 H.264 MP4 后再试。

HEVC 转 MP4:把 iPhone 视频转成适合换脸的 H.264

手机上能播放,视频换脸工具却读不了,先检查封装和编码。后缀是 mp4 的文件也可能装着 HEVC 视频,把 phone.mov 重命名也不会改变编码。视频换脸工作台接受 1–30 秒、最高 32 MB 的 H.264 MP4,音轨可用 AAC,也可以没有音轨。

相机原片先看文件里到底装了什么。HEVC 又叫 H.265,是视频编码。MOV 和 MP4 是装视频流、音频流的封装。对这个工作台来说,目标是 MP4 封装里的 H.264 视频。想保留声音时,还要选 AAC 音频。导出窗口只显示「MP4」时,最好展开高级选项,看清它是 H.264 还是 HEVC。

iPhone 相册能播放原片,说明相册能解码这份文件。浏览器工作台还要逐帧读取画面、准备人脸跟踪和重新编码。播放预览是排查的第一步,后续还要确认编码和素材本身符合工作台要求。

1. 先看卡在哪一步

遇到的情况先检查什么
文件选不上保存一份本地原片,查看封装、时长和大小。
预览能播放,准备时提示文件无效

查看视频编码和音频编码。预览播放器和工作台准备素材的要求可能不同。

提示无法识别人脸拖动进度条看完整段,找第二张脸、遮挡或人物离镜头太远的地方。
提示浏览器不兼容

用支持 H.264 WebCodecs 的较新浏览器,拿同一份已确认格式的文件再试。

提示登录或生成暂不可用到工作台确认账号和功能状态。

如果素材还在云相册里,先下载实际视频,再检查或转换。保留原片,下次重新导出时可以直接从原素材开始。

先做一份便于排查的短片

挑一个开头就能看清一张脸、构图相对稳定的镜头。如果原片有多个机位,第一份测试可以控制在十秒左右,保留一句完整台词或一个表情。这样当原素材同时有 HEVC、第二个人和突然切镜头时,可以逐项分辨到底卡在编码还是跟踪。

如果素材来自聊天软件,检查的是你电脑或手机上实际下载的文件,而不是聊天里的预览。下载版可能比相机原片更短,画面更软,音轨也可能不同。原片有说话声时,先打开音量,确认要保留的台词就在这份副本里。原片没有声音,可以做无音轨版本。

2. 导出一段 H.264 短片

在剪辑软件里打开原片,选中要处理的片段。第一次测试可以选短一点、开头就能看清一张脸的镜头。导出时,格式选 MP4,视频编码选 H.264,需要保留声音时选 AAC。如果文件仍然过大,可以缩短片段或调低导出码率。保存后核对文件的实际时长和大小。

iPhone 相机的「兼容性最佳」可让之后拍摄的视频使用 H.264。已经录好的素材需要另存导出并检查编码。Apple 的 HEVC 与兼容性说明

导出选项怎么挑

在剪辑软件的导出设置里找「视频编码」,选择 H.264。有的界面会写 AVC。格式另选 MP4,音频选 AAC。确认输出方向和原片一致,尤其是把竖屏手机录像导进横屏项目时。错误的预设可能在两侧加黑边,也可能把人物额头裁掉。编码前在导出预览里看一眼,就能提前发现这些问题。

遇到文件太大,优先删掉用不到的头尾。如果还超出限制,可以降低一级码率或分辨率,再以正常大小看脸部细节。给文件大小留一点余量,并以实际导出的文件为准。全景里只有很小一张脸,即使原片写着 4K,在画面进入处理流程后也不一定够清晰。有更近的机位时,可以先用近景做测试,再考虑压缩全景素材。

手机 HDR 素材还要核对亮度和肤色。若导出后明显发灰或发暗,回剪辑软件确认是否把 HDR 正确转换成 SDR,并用你日常使用的播放器再看一次。下面的命令面向 SDR 样片。HDR 素材应按剪辑软件的色彩设置处理,单换编码不会自动完成正确的色调转换。

12 秒无声图解,比较本地合成 MOV 源文件和导出 MP4 的视频编码与音轨。

3. 核对新文件,再回工作台

如果使用 FFmpeg,下面的示例从一段 SDR 手机视频的第 3 秒开始截取 12 秒。视频转为 H.264,有音轨时把第一条转为 AAC。按镜头的实际位置修改起点和时长。

ffmpeg -ss 3 -i phone.mov -t 12 -map 0:v:0 -map '0:a:0?' \
  -vf 'scale=1280:1280:force_original_aspect_ratio=decrease:force_divisible_by=2' \
  -c:v libx264 -pix_fmt yuv420p -crf 23 -c:a aac -movflags +faststart clip.mp4
ffprobe -v error -show_entries stream=codec_type,codec_name:format=duration,size \
  -of compact clip.mp4

检查视频流是否显示 h264,如果有声音,检查音频流是否显示 aac。播放保存的短片,核对动作、画面方向和声音。命令已用本地合成素材核验,覆盖有声和无声文件,验证范围是转码与文件检查。FFmpeg 官方文档

文件准备好后,可按短 MP4 换脸教程继续。如果要从同一段原片导出多个镜头,可参考长视频换脸指南,把结果放回原时间线。

本地样例把 16 秒 HEVC MOV 转成 12 秒 H.264 MP4,两者均有 AAC 音轨。

本地转码核验。导出片段为 12 秒,视频流是 H.264,音频流是 AAC。

4. 根据文件检查结果决定下一步

本地样例的源文件是 16 秒 HEVC MOV,带一条 AAC 测试音。用上面的命令导出了 12 秒 H.264 MP4,保留 AAC 音轨。另用无声素材生成了一份 6 秒 MP4,确认可选音轨参数不会凭空添加声音。图示和短视频用的是本地合成素材,展示的是转码与验文件的步骤。

还是读不进去时,先确认选中的是新导出的文件。打开属性看总时长,因为时间线末尾的空白有时也会被一起导出。再检查视频流是 H.264,有声版本的音轨是 AAC。文件的实际大小和时长符合要求后,再正常播放一遍,确认它正是你要处理的那句话或那个动作。

工作台明确提示人脸问题时,先保留已经验证过的导出设置,只换一段素材。看画面边缘有没有人探进来、背景电视有没有另一张脸、人物是否大幅转头,或手在某一瞬挡住了脸。可以先用更近、更短、始终只有一张清晰人脸的片段重试。需要处理访谈或双人镜头时,参考双人视频选脸指南,判断单人裁切是否适用。

遇到浏览器兼容提示,可换到支持 H.264 WebCodecs 的较新浏览器。用同一份已经确认的文件重试,这样才能单独判断浏览器的差异。若界面要求登录或显示功能暂不可用,则先查看账号和工作台状态。格式正确以后,能否继续还取决于浏览器、人脸素材和功能状态。

HEVC 转 MP4 常见问题

能直接把 MOV 改成 MP4,或者只换封装吗?

改文件名不会改变内部的视频编码。只换封装可以把原有的音视频流原样复制到新容器。原本已经是 H.264 的文件,有时只需要重新封装。如果原本是 HEVC,复制到 MP4 后仍然是 HEVC,需要重新编码成 H.264。导出后再查看视频流,确认结果是否符合要求。

为什么转完后文件更大?

HEVC 和 H.264 的压缩方式不同,文件大小也受分辨率、时长、画面复杂程度和码率影响。用更高码率导出时,即使剪短了也可能变大。以实际文件大小为准,保留原片,方便日后重新导出。

原来的声音能留吗?

可以。有声音时,用 AAC 保存原片音轨,导出后回听台词和时间位置。原素材没有声音,就可以导出无音轨的副本。若编辑过程中主动加了背景音乐,上传文件里也会带上这条声音,处理前先决定成片需要哪一版。