You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg裁剪视频却仅生成音频,该如何解决?

解决FFmpeg裁剪视频仅出音频的问题

问题根源

你用的-c:v copy和-c:a copy是直接复制音视频流,没有重新编码。这种方式要求裁剪的起始时间-ss必须正好落在视频的关键帧位置上。如果指定的时间点不是关键帧,FFmpeg没法直接截取非关键帧开始的视频段,就会导致输出文件丢失视频流,只剩音频。

解决方案

方案1:快速裁剪(微小时间偏差,保留原编码)

把-ss参数移到输入文件-i的前面,让FFmpeg先定位到最接近指定时间的关键帧,再开始读取输入:

ffmpeg -ss 01:10:15 -i input.mp4 -to 01:10:20 -c:v copy -c:a copy output.mp4

这种方法速度快,输出文件和原文件编码一致,但起始时间可能和你指定的有几帧的微小偏差(通常可以忽略)。

方案2:精准裁剪(无时间偏差,需重新编码)

如果必须严格对齐指定的时间点,就放弃流复制,重新编码视频和音频:

ffmpeg -i input.mp4 -ss 01:10:15 -to 01:10:20 -c:v libx264 -c:a aac output.mp4

重新编码会处理非关键帧的内容,保证时间精准,但速度会慢一些,因为需要重新压缩视频。你可以添加-crf 23(视频质量参数,数值越小质量越高,默认23)来调整输出质量。

方案3:提前查看关键帧位置

如果想确认指定时间是否在关键帧上,可以用ffprobe工具查看所有关键帧的时间点:

ffprobe -select_streams v -show_frames -show_entries frame=pkt_pts_time,key_frame input.mp4 | grep -E 'key_frame=1|pkt_pts_time'

输出里key_frame=1对应的pkt_pts_time就是关键帧的时间,对比你指定的-ss时间就能判断问题所在。

针对MKV格式的补充

MKV封装对关键帧的兼容性比MP4好,但如果同样出现问题,上面的方案依然适用,优先用方案1快速裁剪,需要精准时用方案2。

内容的提问来源于stack exchange,提问作者Pexicade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:33:20