2017-02-18 34 views
1

我想剪切mp4视频的特定部分,然后合并这些部分以创建单个视频文件。这是制作视频的动画预览。FFMPEG:剪切视频的特定部分,并将它们合并到一个文件中

更具体地: 切出一个视频的这些部分:

  • 第1部分:开始切割=总时间的20%的时间; 截止的结束时间=总时间的20%+ 3秒,
  • 第2部分:总时间的40%总时间的40%+ 3秒
  • 第3部分:总时间的60%总时间的60%+ 3秒
  • 第4部分:总时间的80%的总时间+3秒

80%(该视频是超过3分钟长,所以不应该有在零件任何重叠)

然后,在一个新的mp4视频文件合并这些4份。你如何使用FFMPEG做到这一点?

编辑:所以这是据我得到了这样一个问题:

我找到答案,对FFMPEG这些问题上的“超级用户”和“Stackexchange”的问题: - 如何让视频持续时间在几秒钟内 公主方形部分从开始/结束视频文件的位置 -Concatenate MP4文件

所以:获取视频的总时间:

$ ffprobe -v error -show_entries format=duration \ 
    -of default=noprint_wrappers=1:nokey=1 -sexagesimal inputvideo.mp4 

随着-sexagesimal我应该得到正确的时间格式后使用。

剪出视频

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy /path/videopart[number].mp4 

就在这里的一部分,我不知道: 如何在总时间(20%,40%......那么20%+ 3秒,40做手术%3秒..) 如何正确地执行它的代码行

创建一个文件名的文件videoparts.txt:

$ cat videoparts.txt 
file '/path/videopart1.mp4' 
file '/path/videopart2.mp4' 
file '/path/videopart3.mp4' 
file '/path/videopart4.mp4' 

那么这应该合并他们在一个单一的文件:

$ ffmpeg -f concat -i videoparts.txt -c copy outputvideo.mp4 
+0

你到目前为止尝试过什么吗? – tyb

回答

1

根据ffmpeg的单证SeekingTime Duration指定“寻道时间”唯一的办法就是通过给确切的时间。

你可以编写一个shell脚本,用ffprobe提取视频总时长,计算出发点并用这些起点调用ffmpeg。

相关问题