![如何使用 ffmpeg 从 mkv 文件中提取 DTSHD 音频流](https://linux22.com/image/1616238/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ffmpeg%20%E4%BB%8E%20mkv%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8F%90%E5%8F%96%20DTSHD%20%E9%9F%B3%E9%A2%91%E6%B5%81.png)
我有一个从蓝光光盘中截取的 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.