ffmpeg可以做到。如果视频编解码器是帧间编码的并且您想要精确的帧精度,则必须重新编码视频。如果您不需要重新编码视频,那么 ffmpeg 将从指定剪切点之前最近的 GOP 边界进行剪切。
剪切和流复制:
ffmpeg -i input -ss T -t D -c copy -fflags +genpts output
Run Code Online (Sandbox Code Playgroud)
-ss T指定以时间码表示的起点,格式为S+[.m...]例如24或65.22或[HH:]MM:SS[.m...]例如02:34:11.644
-t D以相同的格式指定持续时间。
如果起始点不在 GOP 边界,则帧精度不高。
剪切并重新编码:
ffmpeg -i input -ss T -t D -fflags +genpts output
Run Code Online (Sandbox Code Playgroud)
与上面相同,但这将是帧精确的。
如果需要通过帧号指定入点和出点:
ffmpeg -i input -vf trim=start_frame=n:end_frame=m -af atrim=start=s:end=t -fflags +genpts output
Run Code Online (Sandbox Code Playgroud)
n和m是视频入点和出点的帧号。s和t是相应音频的时间码。
为重新编码的视频选择的编解码器将根据 ffmpeg 为输出容器设置的默认值,例如 MP4 的 H.264 和 AAC。
| 归档时间: |
|
| 查看次数: |
8163 次 |
| 最近记录: |