如何使用avconv拼接视频的各个部分?

如何使用avconv拼接视频的各个部分?

到目前为止,我已经弄清楚,您可以使用 avconv 从视频中剪切一段,使用如下命令(从 1:00-3:00 剪切):

avconv -ss 00:01:00 -i "input.avi" -t 00:02:00 -c:v libx264 -crf 23 "output.mp4"

但是我如何从视频中剪切两个(或更多)部分并将它们合并成一个视频?例如,按照上面的1:00-3:00,加上8:00-10:00,制作最后的4分钟视频。

我想我可以分开做然后连接它们,但是有更简单的方法吗?

答案1

我相信你必须切割单独的块,然后将它们连接起来。不要用cat它,因为时间码会到处都是。

如果视频块是mp4,则使用mp4box(从gpac包中)进行串联:

mp4box -cat vid1.mp4 -cat vid2.mp4 ... -cat vidN.mp4 -new vid1-N.mp4

答案2

ffmpeg已经有一个名为连接。它适用于大多数格式,而不仅仅是英里/加仑文件。

您可以在以下位置找到说明:ffmpeg维基百科

答案3

要合并视频,请使用:

cat video1 video2 > video3

点击这里查看更多信息。

如果您想在网站中使用组合视频,您可以尝试一种新技术,称为 popcorn.js。你应该看到这个视频了解如何在不使用任何软件的情况下组合多个视频以及如何从所需的几秒钟开始播放任何视频。这很有趣。

对于剪切和组合视频的整个过程,您可能需要这样的脚本:

#! /bin/bash
folder="/home/user/path-to-folder"
input="input.avi"
out1="1.mp4"
out2="2.mp4"
combine="3.mp4"

cd $folder

avconv -ss 00:01:00 -t 00:02:00 -i $input -c:v libx264 -crf 23 $out1
avconv -ss 00:08:00 -t 00:10:00 -i $input -c:v libx264 -crf 23 $out2
# add as many lines as you like

cat $out1 $out2 > $combine

您只需在脚本开头更改变量的名称。

您也可以尝试 MENCODER 来加入视频:

mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi

相关内容