我有视频:
video1 - 923秒
video2 - 1457秒
video3 - 860秒
我需要剪切这些视频并确定其持续时间 - 600秒。但困难在于我需要根据计划削减它们
其中:
蓝色段总是120秒(固定);
我应该削减红色部分;
- 醇>
我不应该削减绿色部分。
之后,我需要在新的600秒视频中加入蓝色和绿色片段,例如
由于video1,video2,video3具有不同的持续时间,因此红色和绿色段必须具有不同的持续时间,它们必须与视频的持续时间成比例。
我需要纯粹的ffmpeg(avconv)命令或bash脚本。我不知道如何制作它。
答案 0 :(得分:1)
执行此操作的简单方法可能是创建编辑决策列表(EDL),然后您可以使用该列表编写最终视频。
我不知道ffmpeg / avconv,但是mplayer/mencoder
会处理这些意愿,请参阅docs。
创建EDL,使用如下函数:
make_edl() {
DUR=$1
PRE=$2
SLICES=$3
POST=$4
## get the duration of the cut-up pieces
SNIPPET=$(((DUR-PRE-POST)/SLICES))
START=$PRE
STOP=$((DUR-POST))
curr=$START
while [ $curr -lt $STOP ]; do
currstop=$((cur+SNIPPET))
if [ $currstop -gt $STOP ]; then
currstop=$STOP
fi
echo "${curr} $((curr+SNIPPET)) 0"
curr=$((curr+2*SNIPPET))
done
}
# ...
## the following create an EDL for a 923sec movie,
## where we have 120sec of intro, than 31 alternating slices
## and 120sec of outro
make_edl 923 120 31 120 > myedl.txt
## apply the EDL
mencoder -edl myedl.txt input923.mov -o output923.mov
由于bash算法的限制(仅限整数),这不是很常见的