ffmpeg -f concat -safe 0 -i <(printf "file '$PWD/my02.m4a'\nfile '$PWD/my05.m4a'\n") -c copy output.m4a
这里的-i
参数,使用的是shell的管道方式输入。即这里的<(printf "file '$PWD/my02.m4a'\nfile '$PWD/my05.m4a'\n")
,其实是本来是一个文件里面的内容,如下:
file 'path/my02.m4a'
file 'path/my05.m4a'
这样是把my02.m4a和my05.m4a合并为output.m4a。 ffmpeg有两种方式,可以把相同编码文件类型的文件连接起来:
- the concat ''demuxer''
- the concat ''protocol'' 这里使用的是第一种方式。
参考: Concatenate /dev/fd/63: Operation not permitted 使用ffmpeg合并(连接)文件