【问题标题】:How to make video with fixed duration如何制作固定时长的视频
【发布时间】:2013-06-27 06:11:41
【问题描述】:

我有视频:

video1 - 923 秒

video2 - 1457 秒

视频3 - 860 秒

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

地点:

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

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

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

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

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

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

【问题讨论】:

  • 一个选项:使用带有 -t 和 -ss 选项的 ffmpeg/avconv 来生成单独的(绿色和蓝色)剪辑,然后您可能需要将它们拼接在一起。

标签: bash ffmpeg avconv


【解决方案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 算术的限制(仅限整数),这不是很精确

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2013-08-18
    • 1970-01-01
    相关资源
    最近更新 更多