ffmpeg 可以用来连接文件吗?

ffmpeg 可以用来连接文件吗?

不久前我问过如何将 mp4 文件转换为 mp3,有人向我推荐了 ffmpeg。这是一个很棒的命令,而且效果很好。

现在我想了解如何将文件连接在一起。ffmpeg 可以用于此吗?当我尝试弄清楚时,它看起来不像。可以吗,或者还有其他命令可以用于此吗?

答案1

您的问题似乎与 Ubuntu 操作系统无关。如果您在Unix 和 Linux SE 网站

话虽如此,您可能需要查看与连接文件相关的在线 FFmpeg 文档,因为这似乎直接回答了你的问题。来自该网站:

如果您的媒体文件具有完全相同的编解码器和编解码器参数,则可以按照“具有相同编解码器的文件的连接”中所述连接它们。如果您的媒体具有不同的编解码器,则可以按照下面“具有不同编解码器的文件的连接”中所述连接它们。

答案2

在 ffmpeg 中,有多种方法可以合并文件,但这些方法有点复杂。因此,我使用 bash 脚本来简化操作。这是一个使用参数(要合并的文件的名称)运行的脚本示例,它会生成一个合并的 .mp4 文件,但如果您更喜欢其他类型的输出文件,可以将 .mp4 扩展名更改为其他扩展名。系统会创建一个名为 mylist.txt 的临时文件(如果已存在同名文件,则会先将其删除),ffmpeg 将读取该文件以查找要连接的文件列表:

#!/bin/bash

rm -f mylist.txt
# Loop until all input filenames are used up
while [ "$1" != "" ]; do
    echo "file '~/$1'" >> mylist.txt
    # Shift all the input filenames down by one
    shift
done
file="$(date +%Y-%m-%d-%H-%M-%S)"

ffmpeg -f concat -safe 0 -i mylist.txt -c copy "~/combined_$file.mp4"
rm -f mylist.txt

请注意,如果合并的文件差异太大,您可能需要重新编码视频或音频,而不是像这里所示的那样直接复制,但这将花费更长的时间,并且可能会损失一些质量。

相关内容