我有一个包含100个视频的文件夹,我需要将所有视频分成2个,分割需要在每个视频结束前2秒进行。
我想在分割后保留视频的两个部分。
也许有一种更简单的方法可以完成它,但是您可以编写bash
脚本来完成所需的操作。
您可以从类似这样的内容开始:
#!/bin/bash
file="$1"
splitTime=$(ffmpeg -i "$file" 2>&1 \
| sed -n 's/^ *Duration: *\([^,]*\).*$/\1/p' \
| awk -F: '{ print $1 ":" $2 ":0" $3 - 2.24; }')
# the ffmpeg command; maybe you need two of them, or maybe one is enough
它在变量splitTime
中存储视频的时长,减少了2.24秒。显然,awk
脚本绝对不可靠,因为它假设Duration
的秒部分大于或等于10且小于12.24(这就是为什么我硬编码前导零,":0"); you should indeed make some checks in the
awk`脚本,并相应地调整秒和/或分钟和/或小时。