这是我的问题,我已经将相当多的 DVD 和一些蓝光光盘备份为 .mkv 文件,用于存档目的,以及用于我的 plex 服务器。我使用了:
- x264 用于视频
- ac3 用于音频(为了兼容性,几乎所有设备都支持杜比数字,但大量电视或家庭影院设置不支持 DTS 和无损编解码器)。
到目前为止一切顺利。然而,过了一段时间,我发现我的转码器创建的文件的音频设置如下:
- 3F2M/LFE(3 前,2 中),在 ffmpeg 中称为“5.1(侧面)“
代替:
- 3F2R/LFE(3 前置,2 后置),称为“5.1“不带括号内的边。
这导致我的环绕立体声设置出现问题。
为了解决这个问题,我尝试在终端中使用 ffmpeg 重新映射频道,但结果并不理想。我不想重新转码所有内容,所以我只想将 SL 频道换成 BL 频道,将 SR 频道换成 BR 频道。
当我跑步时ffprobe filename.mkv
我得到:
ffprobe version 4.1 Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1_3 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libaom --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libspeex --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, matroska,webm, from 'filename.mkv':
Metadata:
encoder : libebml v0.7.7 + libmatroska v0.8.1
creation_time : 2018-06-30T14:44:07.000000Z
Duration: 03:48:17.82, start: 0.000000, bitrate: 5020 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, 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: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
Stream #0:2(eng): Subtitle: subrip (default)
我曾尝试过:
ffmpeg -i filename.mkv -filter_complex "channelmap=map=FL-FL|FR-FR|FC-FC|LFE-LFE|SL-BL|SR-BR:channel_layout=5.1" output.mkv
但这也开始重新编码视频,并改变音频编解码器。
因此,我接下来尝试:
ffmpeg -i filename.mkv -codec:0 copy -acodec:1 copy -filter:1 "channelmap=map=FL-FL|FR-FR|FC-FC|LFE-LFE|SL-BL|SR-BR:channel_layout=5.1" newfilename.mkv
我得到了:
Filtergraph 'channelmap=map=FL-FL|FR-FR|FC-FC|LFE-LFE|SL-BL|SR-BR:channel_layout=5.1' was defined for audio output stream 0:1 but codec copy was selected.
Filtering and streamcopy cannot be used together.
有没有办法不转码,直接将左右声道切换为后置声道?我真的不想再花无数个小时转码了…… :(
谢谢!