我正在尝试avi
按如下方式拆分文件。
avconv -i file.avi -vcodec copy -acodec copy -ss 0 -t 10 out.avi
这样就可以了(它用视频的前 10 秒创建了一个块)。
问题是当我想从视频的第十秒分割到第二十秒时
avconv -i file.avi -vcodec copy -acodec copy -ss 10 -t 10 out.avi
生成的视频在前两秒只有声音。
我循环使用它。因此,类似地,块 20-30.avi、30-40.avi ... 的分块很糟糕,并且从一开始就只包含不同长度的声音。
你知道如何正确分块 avi 视频吗?
答案1
许多视频编解码器以两种或三种不同的方式对视频帧进行编码:I 帧、P 帧和 B 帧。简而言之,只有 I 帧才能容纳足够的数据来作为视频起点。对于-vcodec copy
,该软件仅执行此操作 - 复制帧。因此,如果您的剪切发生在块从 I 帧开始的时间,那么它会播放得很好;否则,不会。
因此,无法对视频进行重新编码。一些 GUI 软件(例如 avidemux)“聪明”地做到了这一点:它们仅重新编码块的开头,直到第一个可用的 I 帧,然后复制其余部分。