我的媒体文件(视频+音频)包含多个音轨。下面分享一个例子——
$ mediainfo somefile.mkv
General
Unique ID : xxxxxxxxxxxxxxxxxxxxxxxx
Complete name : somefile.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 1.35 GiB
Duration : 2h 26mn
Overall bit rate : 1 314 Kbps
Movie name : somefile
Encoded date : UTC 2016-09-04 00:00:15
Writing application : mkvmerge v8.8.0 ('Wind at my back') 64bit
Writing library : libebml v1.3.3 + libmatroska v1.4.4
Cover : Yes
Attachments : Cover.jpg
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 26mn
Bit rate : 1 024 Kbps
Width : 1 280 pixels
Height : 544 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 24.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.061
Stream size : 1.05 GiB (78%)
Title : somefile
Writing library : x264 core 142 r2479 dd79a61
Encoding settings : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / psy_rd=0.00:0.00 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=0 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=1024 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Language : Tamil
Default : Yes
Forced : No
Audio #1
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Format profile : Dolby Digital
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : A_AC3
Duration : 2h 26mn
Bit rate mode : Constant
Bit rate : 224 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Frame rate : 31.250 fps (1536 spf)
Compression mode : Lossy
Stream size : 235 MiB (17%)
Title : somefile
Language : Hindi
Default : Yes
Forced : No
Audio #2
ID : 3
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : HE-AAC / LC
Codec ID : A_AAC
Duration : 2h 26mn
Bit rate : 64.0 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz / 24.0 KHz
Frame rate : 23.438 fps (1024 spf)
Compression mode : Lossy
Stream size : 67.1 MiB (5%)
Title : somefile
Language : Tamil
Default : No
Forced : No
出于隐私和不必要的原因,我已删除媒体文件的唯一 ID 和名称。从 mediainfo 可以看出,有两个音轨,一个是印地语,另一个是泰米尔语。默认情况下,它将采用印地语轨道,因为这是默认的,但如果我想要泰米尔语轨道怎么办?我怎样才能玩这个?
答案1
MPV提供--aid
,来自手册:
--aid=<ID|auto|no>
Select audio track. auto selects the default, no disables audio. See also --alang. mpv normally prints
available audio tracks on the terminal when starting playback of a file.
所以是的,--aid=1
将是印地语和--aid=2
泰米尔语。
它还--alang
应该能够识别语言代码:
--alang=hin
如果有这样的曲目,应该播放印地语--alang=tam
如果泰米尔语可用,应该玩泰米尔语- 并且
--alange=tam,hin
应该可以播放泰米尔语,如果不可用,应尝试找到印地语曲目。
笔记:
ffprobe
将打印语言代码(就像mediainfo
打印完整的语言一样)。- 还有
--sid
和--slang
为字幕。