ffmpeg在压缩视频时复制音频编解码器类型

ffmpeg在压缩视频时复制音频编解码器类型,ffmpeg,Ffmpeg,我正在使用以下命令: ffmpeg -i data/staging/0.mkv -i data/staging/1.mkv -map 0 -filter_complex concat=n=2:v=1:a=2 -threads 8.0 data/staging/concat.mkv -y -loglevel error 要将2个视频与2个音频流组合,使用-map 0来维护各种其他流,包括多个子流等 但是音频进入AAC,从concat端出来似乎是voris?我不知道为什么会发生这种情况。有没有办法

我正在使用以下命令:

ffmpeg -i data/staging/0.mkv -i data/staging/1.mkv -map 0 -filter_complex concat=n=2:v=1:a=2 -threads 8.0 data/staging/concat.mkv -y -loglevel error
要将2个视频与2个音频流组合,使用-map 0来维护各种其他流,包括多个子流等

但是音频进入AAC,从concat端出来似乎是voris?我不知道为什么会发生这种情况。有没有办法保持这种状态

所有输入剪辑的编解码器都是相同的,因为它们以前是从同一个视频中分离出来的。

  • 如果不告诉
    ffmpeg
    要使用哪个编码器,它将选择默认编码器

  • 默认编码器取决于
    ffmpeg
    的配置方式。在您的例子中,MKV的默认编码器是libvorbis

  • 您可以使用
    ffmpeg-h muxer=matroska
    查看默认设置

  • 过滤需要重新编码,因此无法(像复制和粘贴一样)使用
    -c:a copy
    复制音频

  • 您必须手动提供所需的编码器名称:
    -c:aac


很好,谢谢你提供的信息。我能为每个音频流添加名称吗?我在python中这样做,我可以查找流并链接命令。“我能为每个音频流添加名称吗?你是说编码器的名字吗?或者元数据标题?我是说编码器。我想对于不同的音频流可能有不同的编解码器?我可以从流数据中查找每个流,并将标志添加到concat?如果没有,我可以使用1个通用编码器。。现在,最终输出文件中的音频是不稳定的,这很烦人。@ScipioAfricanus
-c:aac
将使所有音频成为aac。如果你想让audio#0成为AAC,audio#1成为MP3:
-c:a:0AAC-c:a:1libmp3lame
。非常感谢你,大概我可以用同样的逻辑处理视频。