大家早,
目前使用 FFMPEG 只是将 UHD MKV 重新包装成 MP4 ...
ffmpeg -i File1.mkv -c:v copy -c:a copy -strict -2 File1.mp4
但是这些 MKV 仅具有 TrueHD 或 DTS-HD,当它们通过接收器播放到我的影院房间时,效果很好,但我的电视无法很好地将环绕声下混到 2.0。所以我想在 2.0 上添加一个额外的音轨。
我对这些东西不是很了解,一般都会用谷歌搜索所有东西。那么,我可以在脚本中添加一些东西来创建并向最终的 mp4 中添加 2.0 音频流吗?
特发性脊髓灰质炎
答案1
我们可以使用aresample
过滤器将 DTS-HD 转换为立体声,如下所述这里.
为了添加第二个音频通道,我们可以使用-filter_complex
流映射。
首先创建一个示例File1.mkv
输入文件(用于测试)。
该示例基于以下内容邮政。
ffmpeg -y -f lavfi -i testsrc=size=192x108:rate=25 -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -c:v libx264 -crf 17 -strict -2 -c:a dts -t 10 File1.mkv
请注意anullsrc
是静默的(仅用于测试)。
转换为立体声并将立体声添加为第二音频流的命令:
ffmpeg -y -i File1.mkv -filter_complex "[0:a]aresample=matrix_encoding=dplii[a]" -map:v 0:v -map:a:0 0:a -map:a:1 "[a]" -c:v copy -c:a:0 copy -c:a:1 aac -ac 2 -strict -2 File1.mp4
使用 MediaInfo 检查输出:
General
Complete name : File1.mp4
Format : MPEG-4
...
Video
ID : 1
Format : AVC
...
Audio #1
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Codec ID : mp4a-A9
Duration : 10 s 5 ms
Bit rate mode : Constant
Bit rate : 1 413 kb/s
Channel(s) : 6 channels
Channel layout : C L R Ls Rs LFE
Sampling rate : 48.0 kHz
Frame rate : 93.750 FPS (512 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 1.69 MiB (96%)
Default : Yes
Alternate group : 1
Audio #2
ID : 3
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 10 s 6 ms
Source duration : 10 s 27 ms
Bit rate mode : Variable
Bit rate : 2 278 b/s
Maximum bit rate : 128 kb/s / 128 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 2.78 KiB (0%)
Source stream size : 2.79 KiB (0%)
Default : Yes
Alternate group : 2
mdhd_Duration : 10005
注意:
我的回答仅涉及转换和映射语法 - 对质量没有任何保证。