ffmpeg-to在输入文件之前使用-ss

ffmpeg-to在输入文件之前使用-ss,ffmpeg,Ffmpeg,以ffmpeg-ss 00:04:21-i“filename.mp4”-到00:04:47-c copy“output.mp4”的顺序使用ffmpeg比切换-ss和-i标志的顺序快得多,但是-ss会导致-到标志的时间戳不正确,使它们不匹配并且-to与源文件中的正确时间不对应。添加-copyts可修复此问题并将其修剪到正确的时间,但会导致时间戳显示输出文件中的原始时间,即输出文件中的时间在任何查看器上从4:47开始,尽管视频只有26秒长 使用顺序ffmpeg-i“filename.mp4”-ss

ffmpeg-ss 00:04:21-i“filename.mp4”-到00:04:47-c copy“output.mp4”
的顺序使用ffmpeg比切换-ss和-i标志的顺序快得多,但是
-ss
会导致
-到
标志的时间戳不正确,使它们不匹配并且
-to
与源文件中的正确时间不对应。添加
-copyts
可修复此问题并将其修剪到正确的时间,但会导致时间戳显示输出文件中的原始时间,即输出文件中的时间在任何查看器上从4:47开始,尽管视频只有26秒长

使用顺序
ffmpeg-i“filename.mp4”-ss 00:04:21-到00:04:47-c copy“output.mp4”
以更长的执行时间为代价修复了该问题


是否有任何方法可以充分利用这两种方法,使其在打开文件之前找到正确的时间,同时保持速度较快?

FFmpeg默认情况下,将输入时间戳标准化为从0开始。因此,作为输出选项的
-to
实际上成为了持续时间限制器<代码>-复制
通过不重置时间戳来避免这种情况。然而,有些玩家可能无法优雅地处理非零开始时间


使用
-to
作为输入选项(从v4.0开始提供)可以实现您的目标。

FFmpeg默认情况下,将输入时间戳标准化为从0开始。因此,作为输出选项的
-to
实际上成为了持续时间限制器<代码>-复制
通过不重置时间戳来避免这种情况。然而,有些玩家可能无法优雅地处理非零开始时间


使用
-to
作为输入选项(从v4.0开始提供)可以实现您的目标。

在输入之前放置-ss/-to两者。-to是一个输出修饰符,因此不能放置在输入之前。很遗憾,您的ffmpeg太旧了<代码>-to从4.0版开始作为输入选项可用。事实上,我的软件包管理器没有标记它,因为整个发行版已过时。谢谢你的帮助。您想发布一个解决方案以便我可以将其标记为正确吗?在输入之前放置-ss/-to。-to是一个输出修饰符,因此无法放置在输入之前。很遗憾,您的ffmpeg太旧了<代码>-to从4.0版开始作为输入选项可用。事实上,我的软件包管理器没有标记它,因为整个发行版已过时。谢谢你的帮助。是否要发布解决方案,以便我将其标记为正确?