我的文件夹里有几块。
0001.mp4
0002.mp4
0003.mp4
...
0112.mp4我想把它们合并成full.mp4
我试着用:
avconv -f concat -i <(printf "file '%s'\n" /root/chunk/*.mp4) -y \
-c copy /root/test/full.mp4未知输入格式:“concat”
avconv -f concat -i <(printf "%s|" /root/chunk/*.mp4) -y \
-c copy /root/test/full.mp4未知输入格式:“concat”
avconv -i concat:`ls -ltr /root/chunk/*.mp4 | awk 'BEGIN {ORS="|"} { print $9 }'` \
-c:v copy -c:a copy /root/test/full.mp4在上一版中,只有一个输入文件被捕获以输出。
如何将文件夹中的所有块合并成完整的视频?
我不想用ffmpeg之类的。只有阿夫康夫。
发布于 2013-10-11 09:15:15
avconv -i concat:file1.mp4\|file2.mp4 -c copy output.mp4我不知道是否适用于任何容器类型(对我来说适用于AVI )。
发布于 2014-07-11 14:58:50
mp4文件不能像“接受”的答案所暗示的那样简单地连接在一起。
如果只运行这一点,那么output.mp4将只包含file1.mp4的内容。
也就是说,只要您正确地将原始文件分割成mpeg流,您在原始问题中所要做的事情实际上是可以完成的。
以下命令将input.mp4分割为3x60秒段,以文件1-3.ts为单位:
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然后,你可以把它们放在一起,就像另一个答案所暗示的那样:
avconv -i concat:"file1.ts|file2.ts|file3.ts" -c copy \
-bsf:a aac_adtstoasc -y full.mp4我使用这个过程创建了一个可伸缩的并行转码器,如下所述:
发布于 2014-12-21 21:13:11
对于mp4,我找到的唯一可行的解决方案是使用gpac包中的MP4Box。
#!/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或命令是
MP4Box -cat file1.mp4 -cat file2.mp4 -new mergedFile.mp4使用mencoder和avconv,我无法使它工作:
https://stackoverflow.com/questions/18552901
复制相似问题