MPG 如何确定其默认音轨?



我有一些mpg文件,是从很久以前(也许是20年前)购买的DVD转码的

Input #0, mpeg, from 'da-orig.mpg':
Duration: 00:06:59.44, start: 0.044100, bitrate: 6354 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x480 [SAR 8:9 DAR 4:3], Closed Captions, 31 fps, 59.94 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 7500000/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:1[0x85]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:2[0x83]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:3[0x81]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
Stream #0:4[0x80]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s

这显示有 4 个音频流。当我在VLC/QuickTime中播放此文件时,似乎音轨4是默认设置。我想了解这是如何选择的。它是 mpg 容器格式中的东西还是玩家选择具有最低 id (0x80) 的流?

更多背景,当我尝试使用以下命令将其转换为mp4文件时:

ffmpeg -i da-orig.mpg -c copy -map 0 da-copy.mp4

我得到的文件大小大致相同,但默认音轨是流 #0:1[0x85]。

我想要的是等效的mp4文件(因此选择了相同的音轨)。

如本指南
中所写

"-map 选项用于从输入中选择哪些流 应包含在输出中。

在您的情况下,您只有一个输入,因此如果您有 2 个输入并希望来自一个输入的视频和另一个输入的音频,那将是-map 0

,这将是-map 0:v -map 1:a

由于您的输入是一个容器,因此选择视频将被-map 0:v
并且第二个音频流将被-map 0:a:2

ffmpeg -i da-orig.mpg -map 0:v -c:v h264 -crf 17 -preset 'veryslow' -map 0:a:2 -c:a copy output.mp4

要回答您的评论,该序列可以帮助您 使用序列号重命名集合"collection-name_0000"后,
如果视频具有相同数量的流,则ffmpeg -i collection_name_#04d.mpg -map 0:v -c:v h264 -crf 17 -preset 'veryslow' -map 0:a:2 -c:a copy output-#04d.mp4
遍历视频

最新更新