手刹 --stop-at 参数未按预期工作

kar*_*grz 7 handbrake matroska

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

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at 120
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ste*_*idt 10

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

handbrakeCLI.exe --help
Run Code Online (Sandbox Code Playgroud)

正确的语法如下:

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

例子:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at duration:120
Run Code Online (Sandbox Code Playgroud)

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


kar*_*grz 5

好的,所以我决定用ffmpeg解决我的问题:

ffmpeg -i SourceFile.mkv -ss 00:00:05 -t 00:02:30 -ac 2 -sn OutputFile.mkv
Run Code Online (Sandbox Code Playgroud)

解释:

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

这非常适合我正在寻找的东西。