如何使用 ffmpeg 从 mkv 文件中提取 DTSHD 音频流

如何使用 ffmpeg 从 mkv 文件中提取 DTSHD 音频流

我有一个从蓝光光盘中截取的 mkv 文件,其中包含多个音频流,包括 DTSHD-MA 流作为流 0:2。我试图将此流从 mkv 文件提取到音频文件,并保留原始格式。但是,我不确定,对于带有 DTSHD-MA 音频的音频文件,应该使用哪个文件扩展名。我在互联网上看到扩展名是 *.dtshd,所以我尝试使用以下命令:ffmpeg -i input.mkv -map 0:2 output.dtshd

但是,它不起作用,ffmpeg 给出了以下消息:无法找到合适的音频格式。

我做错了什么?我该如何做对?

提前致谢。

谨致问候:Aksel Christoffersen

答案1

使用mkvextract来自mkvtoolnixsuite 而不是ffmpeg,因为它是专门为此目的而设计的:

sudo apt install mkvtoolnix

它的语法是:

mkvextract source-filename tracks [options] TID1:dest-filename1 [TID2:dest-filename2 ...]

首先,要确定要提取的曲目编号,请使用mkvinfo命令

mkvinfo input.mkv

并查找所需的音轨编号。如果您知道音轨编号(在此示例中,我选择了 3),则可以提取任何音轨(即 DTSHD-MA 音轨)并将其输出到单独的文件:

mkvextract input.mkv tracks 3:output.dtshd

现在你应该在output.dtshd文件中有了你的轨迹。

答案2

诀窍是使用copy命令,否则ffmpeg将重新编码轨道,所以我的命令是:

ffmpeg -i input.mkv -map 0:2 -c copy output.dtshd.

相关内容