我通过一个简单的 system.process 使用 FFMPEG (来自 java 应用程序)并尝试将视频切成块。我正在尝试将其切成 10 秒的增量。我的 FFMPEG 命令如下所示:
ffmpeg -i SampleVideo.mp4 -ss 00:00:00.00 -t 00:00:10.00 -strict -2 1438458522836/1438458522836_0.mp4
ffmpeg -i SampleVideo.mp4 -ss 00:00:10.01 -t 00:00:20.00 -strict -2 1438458522836/1438458536306_1.mp4
ffmpeg -i SampleVideo.mp4 -ss 00:00:20.01 -t 00:00:30.00 -strict -2 1438458522836/1438458546042_2.mp4
ffmpeg -i SampleVideo.mp4 -ss 00:00:30.01 -t 00:00:40.00 -strict -2 1438458522836/1438458561165_3.mp4
ffmpeg -i SampleVideo.mp4 -ss 00:00:40.01 -t 00:00:50.00 -strict -2 1438458522836/1438458577187_4.mp4
ffmpeg -i SampleVideo.mp4 -ss 00:00:50.01 -t 00:01:00.00 -strict -2 1438458522836/1438458587935_5.mp4
它们对我来说看起来是正确的,但我的视频不会以 10 秒的增量播放。它们似乎在随机的地方“分裂”。关于我做错了什么有什么想法吗?
以供参考:
video 0 == 10 seconds
video 1 == 20 seconds
Video 2 == 30 seconds
Video 3 == 32 seconds
Video 4 == 22 seconds
Video 5 == 12 seconds
任何帮助,将不胜感激。
如中所述FFMPEG 文档 https://www.ffmpeg.org/ffmpeg.html#Main-options:
-ss 位置(输入/输出)
当用作输入选项时(之前-i
),在此输入文件中查找位置。请注意,在大多数格式中不可能精确查找,因此 ffmpeg 将查找位置之前最近的查找点。当转码和 -accurate_seek 启用(默认)时,搜索点和位置之间的额外段将被解码并丢弃。当进行流复制或使用-noaccurate_seek时,它将被保留。
当用作输出选项(在输出文件名之前)时,解码但丢弃输入,直到时间戳到达位置。
位置可以是秒或hh:mm:ss[.xxx]
form.
所以,你不会得到一个确切的起点,但因为-t
当指针到达指定时间时停止“监听”,您不会得到统一的时间,但它们都会在您想要的时候结束。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)