我想使用命令行工具根据特定的时间间隔剪切视频,比如 1 秒。如果我有一个 60 秒的视频,我希望它被分成 60 个统一的部分。我唯一的其他要求是没有重新编码。
我已经阅读了有关此主题的两个问题。
第一个线程建议了一个似乎不再维护的不受信任的工具。第二个线程建议avconv
使用手动名称操作大段视频。由于我会将这些视频切成数百个较小的部分,因此这种方法太乏味了。一位用户提供了一个 Bash 脚本,但承认这可能“产生许多错误和空文件”。为了清楚起见,我将在此处重新发布此脚本并鼓励更好的解决方案:
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
FILES=$(ls *.mp4|sort)
let START=0
for FILE in $FILES
do
echo Processing $FILE
mkdir "${FILE}-chop"
for COUNT in {1..59}
do
exec avconv -i "${FILE}" -ss $START -t 60 -c:v copy -c:a copy "./${FILE}-chop/${COUNT} - ${FILE}"
let START=$START+60
done
done
IFS=$SAVEIFS
像这样的 Bash 脚本真的是正确的方法吗?或者有没有一种更简单、更有效、更可靠的工具可以用于此目的?