Handbrake --stop-at 参数未按预期工作

Handbrake --stop-at 参数未按预期工作

我从命令行运行以下命令:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at 120

根据CLI指南您可以提供 --stop-at 值作为秒数(这就是我想要的,停止将 120 秒编码到文件中)。

我的目的是从整部电影中快速创建一个高质量的视频剪辑,以测试其他编码过程。

但是,当我查看输出文件时,它是整部电影。有什么想法吗?

答案1

答案可以在 Handbrake 的帮助中找到:

handbrakeCLI.exe --help

正确的语法如下:

--stop-at     <unit:#>  Stop encoding at a given frame, duration (in seconds),
                        or pts (on a 90kHz clock)

例子:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at duration:120

这将为您提供视频的前 120 秒

答案2

好吧,所以我决定用ffmpeg像这样:

ffmpeg -i SourceFile.mkv -ss 00:00:05 -t 00:02:30 -ac 2 -sn OutputFile.mkv

解释:

  • ss :寻找开始,或“在此时间点开始我的编码”(hh:mm:ss)
  • t:持续时间(hh:mm:ss)
  • ac :音频通道,因为这部特定的电影在编码过程中传播音轨时遇到了问题
  • sn :抑制字幕,因为 ffmpeg 对字幕轨道有抱怨

这完全符合我所寻找的内容。

答案3

截至 2015 年 4 月,我发现了以下情况,我不知道将来是否会改变:

--start-at duration:120 --stop-at duration:60

持续start-at时间实际上是“从”某个观点.stop-at持续时间真的长度(真正的持续时间)。所以这个词的duration意思不同。上面那行的意思是:从 00:02:00 开始,持续 60 秒。所以一个快速记住它的方法是:start-at是在某个点,stop-at是长度。

相关内容