如何使用终端将当前目录及其子目录中的所有mp4文件合并为一个mp4文件?

sau*_*hah 3 command-line video ffmpeg

如何将当前目录及其子目录中的所有 mp4 文件合并为一个 mp4 文件,最好按照我ls在此目录中运行命令时文件出现的顺序?

也许这可以通过使用来实现ffmpeg

Bea*_*nog 5

您可以首先列出mp4_list.txt当前目录及其子目录中的 mp4 文件 ( ):

\n
find "$(pwd)" -type f -name \'*.mp4\' -printf "file \'%p\'\\n" | tee mp4_list.txt\n
Run Code Online (Sandbox Code Playgroud)\n

然后使用ffmpeg\'s concatdemuxer 将所有 mp4 文件加入mp4_list.txt到一个output.mp4文件中:

\n
ffmpeg -f concat -i mp4_list.txt -c copy output.mp4\n
Run Code Online (Sandbox Code Playgroud)\n

ffmpeg在SuperUser: Join mp4 files in linux中找到了上面的命令

\n

如果出现错误Unsafe file name,请在上述命令-safe 0之前添加。-i请参阅这个堆栈溢出答案:ffmpeg concat: \xe2\x80\x9cUnsafe file name\xe2\x80\x9d

\n