我想将音频流添加到现有视频文件。我遇到的问题是:
- 文件可以有多个音频流(不同的语言/评论)。
- 文件可以有多个文本流。
我的问题是,有时音频编解码器与我的媒体播放器不兼容,所以我只想复制“X”音频流(通常是 DTS),将其转换为 AAC 并将其添加到同一个文件中。
我尝试过一些例子本论坛但我得到的结果好坏参半。尤其是因为 txt 流。我确信有办法一次性获得此输出。
这是正确的命令吗?
ffmpeg -i "input-video.mkv" -map 0:v -c:v copy -map 0:a -c:a copy -map 0:1 -c:1 libfdk_aac -b:a 384k -map 0:s -c:s copy "output-video.mkv"
在哪里:
-map 0:1 -c:1 libfdk_aac -b:a 384k
意思是映射文件 0、流 1、复制……然后我不知道它在做什么
我还添加了 ffmpeg -i“input-video.mkv”的输出
Input #0, matroska,webm, from 'input-video.mkv':
Metadata:
title : input-video
encoder : libebml v0.7.7 + libmatroska v0.8.1
creation_time : 2008-09-18T20:25:36.000000Z
Duration: 02:23:27.34, start: 0.000000, bitrate: 12303 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1920x800, SAR 1:1 DAR 12:5, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
Stream #0:2(eng): Audio: vorbis, 48000 Hz, stereo, fltp
Metadata:
title : Commentary
Stream #0:3(eng): Subtitle: ass (default)
Stream #0:4(eng): Subtitle: ass
Metadata:
title : Commentary
Stream #0:5(cze): Subtitle: ass
Stream #0:6(dan): Subtitle: ass
Stream #0:7(fre): Subtitle: ass
Stream #0:8(ger): Subtitle: ass
Stream #0:9(hun): Subtitle: ass
Stream #0:10(nor): Subtitle: ass
Stream #0:11(pol): Subtitle: ass
Stream #0:12(por): Subtitle: ass
Stream #0:13(rus): Subtitle: ass
Stream #0:14(scc): Subtitle: ass
Stream #0:15(scr): Subtitle: ass
Stream #0:16(slv): Subtitle: ass
Stream #0:17(spa): Subtitle: ass
Stream #0:18(swe): Subtitle: ass
答案1
假设您想要两个音频流副本,一个是原始 DTS,一个是 AAC,请首先映射用于重新编码的流。
ffmpeg -i "input-video.mkv" -map 0:v -map 0:a:0 -map 0:a -map 0:s -c copy -c:a:0 libfdk_aac -b:a:0 384k "output-video.mkv"