【问题标题】:Use FFmpeg to split a video into equal-length segments使用 FFmpeg 将视频分割成等长的片段
【发布时间】:2017-05-25 09:12:08
【问题描述】:

我需要将许多长度未知的视频分成 2 分钟的块。我可以使用https://unix.stackexchange.com/questions/1670/how-can-i-use-ffmpeg-to-split-mpeg-video-into-10-minute-chunks 接受的答案来执行此操作,但这需要复制、粘贴和修改许多行,并手动计算每个视频中有多少 2 分钟的部分(对于一些视频来说没什么大不了的,但是一段时间后它变得非常乏味)。

我过去使用过代码,我所要做的就是指定输入视频、开始时间、段长度和输出名称,然后在与输入相同的文件夹中的 .sh 文件中运行它video 它会生成所有必要的单独视频,这些视频被标记为“output_video01”、“output_video02”等。但是,不知何故,它不想在我的新计算机上工作。其他声称能够做到这一点的答案也对我不起作用(当作为 .bat 或 .sh 文件运行时)。我相信我之前使用的代码是:

ffmpeg -i "input_video.MTS" -ss 164 -f segment -segment_time 120 -vcodec copy -reset_timestamps 1 -map 0:0 -an output_video%d.MTS

另一个对我不起作用但显然对其他人有用的建议(请参阅https://superuser.com/a/820773/313829):

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%03d.MTS

我目前拥有启用了 Bash 的带有周年更新版本的 Windows 10,但由于某种原因它不想工作。我什至看不到它给我的错误,因为窗口关闭得太突然了。

【问题讨论】:

  • 不知何故它不想在我的新电脑上工作。 -->如果您不提供详细信息,则无法排除故障。
  • @Mulvya 以前有 Windows 7,64 位,现在有 Windows 10,64 位。
  • 详细来说,我的意思是命令输出和消息。
  • @Mulvya 我无法让脚本暂停足够长的时间来查看特定的错误消息。我试过这个没有用:read -p "Press [Enter] key to start backup..."
  • 您的 ffmpeg 命令行并不是真正特定于 bash 的,请尝试将它们输入到任何命令终端中 - 除了可能需要特殊处理的 % 符号,因为它用于 Windows 上的变量...然后您可能会在至少收到任何可以帮助(我们帮助)您的错误消息

标签: bash video split ffmpeg


【解决方案1】:

原始代码(对我不起作用)是:

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%03d.MTS

最终为我工作的代码:

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%%03d.MTS

“%”必须是“%%”。此外,它可以在 .bat 文件(不是 .sh)中使用。

【讨论】:

  • % 是windows中的保留字符,所以当你需要在shell命令中使用它时,你需要在unix中对它进行scape %% 它是没有必要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2015-05-07
  • 2015-12-03
  • 2016-09-08
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多