首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过avconv合并视频?

如何通过avconv合并视频?
EN

Stack Overflow用户
提问于 2013-08-31 21:15:42
回答 10查看 42.8K关注 0票数 38

我的文件夹里有几块。

代码语言:javascript
复制
0001.mp4
0002.mp4
0003.mp4
...
0112.mp4

我想把它们合并成full.mp4

我试着用:

代码语言:javascript
复制
avconv -f concat -i <(printf "file '%s'\n" /root/chunk/*.mp4) -y \
-c copy /root/test/full.mp4

未知输入格式:“concat”

代码语言:javascript
复制
avconv -f concat -i <(printf "%s|" /root/chunk/*.mp4) -y \
-c copy /root/test/full.mp4

未知输入格式:“concat”

代码语言:javascript
复制
avconv -i concat:`ls -ltr /root/chunk/*.mp4 | awk 'BEGIN {ORS="|"} { print $9 }'` \
 -c:v copy -c:a copy /root/test/full.mp4

在上一版中,只有一个输入文件被捕获以输出。

如何将文件夹中的所有块合并成完整的视频?

我不想用ffmpeg之类的。只有阿夫康夫。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-10-11 09:15:15

代码语言:javascript
复制
avconv -i concat:file1.mp4\|file2.mp4 -c copy output.mp4

我不知道是否适用于任何容器类型(对我来说适用于AVI )。

票数 20
EN

Stack Overflow用户

发布于 2014-07-11 14:58:50

mp4文件不能像“接受”的答案所暗示的那样简单地连接在一起。

如果只运行这一点,那么output.mp4将只包含file1.mp4的内容。

也就是说,只要您正确地将原始文件分割成mpeg流,您在原始问题中所要做的事情实际上是可以完成的。

以下命令将input.mp4分割为3x60秒段,以文件1-3.ts为单位:

代码语言:javascript
复制
avconv -ss 0 -i input.mp4 -t 60 -vcodec libx264 -acodec aac \
    -bsf:v h264_mp4toannexb -f mpegts -strict experimental -y file1.ts
avconv -ss 0 -i input.mp4 -t 60 -vcodec libx264 -acodec aac \
    -bsf:v h264_mp4toannexb -f mpegts -strict experimental -y file2.ts
avconv -ss 0 -i input.mp4 -t 60 -vcodec libx264 -acodec aac \
    -bsf:v h264_mp4toannexb -f mpegts -strict experimental -y file3.ts

然后,你可以把它们放在一起,就像另一个答案所暗示的那样:

代码语言:javascript
复制
avconv -i concat:"file1.ts|file2.ts|file3.ts" -c copy \
   -bsf:a aac_adtstoasc -y full.mp4

我使用这个过程创建了一个可伸缩的并行转码器,如下所述:

  • http://blog.dustinkirkland.com/2014/07/scalable-parallel-video-transcoding-on.html
票数 34
EN

Stack Overflow用户

发布于 2014-12-21 21:13:11

对于mp4,我找到的唯一可行的解决方案是使用gpac包中的MP4Box。

代码语言:javascript
复制
#!/bin/bash
filesList=""
for file in $(ls *.mp4|sort -n);do
    filesList="$filesList -cat $file"
done
MP4Box $filesList -new merged_files_$(date +%Y%m%d_%H%M%S).mp4

或命令是

代码语言:javascript
复制
MP4Box -cat file1.mp4 -cat file2.mp4 -new mergedFile.mp4

使用mencoder和avconv,我无法使它工作:

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18552901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档