0

我有视频:

视频1 - 923 秒

视频2 - 1457 秒

视频3 - 860 秒

我需要剪切这些视频并修复其持续时间 - 600 秒。但困难是我需要在计划下削减它们

视频

在哪里 :

  1. 蓝色段始终为 120 秒(固定);

  2. 我应该剪掉的红色部分;

  3. 我不应该剪掉的绿色部分。

之后我需要在新的 600 秒视频中加入蓝色和绿色段,例如

视频

由于video1、video2、video3的时长不同,那么红色和绿色段的时长必然不同,它们与视频时长的比例必须相等。

我需要纯 ffmpeg (avconv) 命令或 bash 脚本。我不知道怎么做。

4

1 回答 1

1

可能最简单的方法是创建一个编辑决策列表 (EDL),然后您可以使用它来编写您的最终视频。我不知道 ffmpeg/avconv,但mplayer/mencoder会处理这些,请参阅文档

要创建 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 算术的限制(仅限整数),这不是很珍贵

于 2013-06-27T10:21:57.187 回答