Demux & Remux 操作

  • ~3.98K 字
  1. 1. DVD
  2. 2. 常见的Demux软件有
  3. 3. 选择正确的mpls
  4. 4. mkvextract
  5. 5. FFmpeg
  6. 6. Menu

通常建议在 Demux & Remux 之前进行扫盘,mkvtoolnix 以及 dgdemux 都可以进行。

主要判断信息有

  • 是否是肉酱盘
  • 是否默认的 mpls 是正确的影片(有些盘会坑人)
  • mpls 是否包含了无效的mt2s(这种会导致操作失败),这种情况,需要 dgdemux,然后勾选 "skip first/last M2TS"

部分剧集原盘 dgdemux 需要开启 "strict playlist times" mkvtoolnix 可以自动处理,useac3to 等其他软件会产生包含长时间黑屏的文件出来。(m2ts本身包含,mlps中做了切割处理)

Demux作为音轨处理的前置步骤(部分原盘只有DGDemux能正常处理),目前获取的信息是再TrueHD方面 MakeMKV >= 1.15.4 = mlp > DGDemux (具体见 mlp 的 Readme)。

或许考虑使用mlp来专门处理肉酱TrueHD盘

一些肉酱盘 mkvtoolnix,eac3to,会有 glitching 的问题见issue(并不确认eac3to最新版是否解决了问题)。

目前发现肉酱盘的PCM也会出问题,ffmpeg报' Invalid PCM packet, data has size 2 but at least a size of 4 was expected',使用 Dgdemux 之后正常转换

一些 mpls 会作为 m2ts 的 index,m2ts 本身前后会包含一些 garbage,见issue,目前 DGDemux 可以通过勾选 'strict playlist' 来正确处理。

mkvtoolnix也会进行处理,但音轨出现了一些问题。

mkvtoolnix 本身有切割和合并功能,但这一块有问题,并且不会修复(mkvmerge can only cut in front of key frames. That's an intentional limitation, not a bug.),Issue in codeberg

故有切割合并需求还是使用 ffmpeg(命令行)

DVD

对于DVD,你可能需要使用MakeMKV,目前的其他软件对DVD都支持不太好,例如mkvtoolnix认不到章节以及字幕轨

常见的Demux软件有

  • UsEac3to/eac3to
  • DGDemux(现在作为默认的标准软件)
  • tsMuxer
  • FFmpeg
  • gMKVExtractGUI/mkvextract

其中UsEac3to功能非常多,内含了转码功能,但其长期未更新,在部分音轨上可能出现问题。

其中eac3to可以检测到坏帧并进行输出,故可以用来判断原盘是否有问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[v02] Extracting video track number 2...
[v02] Creating file "D:\Rip\00001.mpls_2eng.h264"...
[v02] [0:07:57] The source file seems to be damaged (sync byte missing). <WARNING>
[v02] [0:07:57] The source file seems to be damaged (discontinuity). <WARNING>
[v02] [0:20:58] The source file seems to be damaged (sync byte missing). <WARNING>
[v02] [0:20:58] The source file seems to be damaged (discontinuity). <WARNING>
[v02] [1:34:37] The source file seems to be damaged (sync byte missing). <WARNING>
[v02] [1:34:37] The source file seems to be damaged (discontinuity). <WARNING>
[v02] Video has a gap of 355 frames at playtime 0:07:57. <WARNING>
[v02] Video has a gap of 383 frames at playtime 0:20:57. <WARNING>
[v02] Video has a gap of 42 frames at playtime 1:34:35. <WARNING>
[v02] Video has a gap of 255 frames at playtime 1:34:35. <WARNING>
Video track 2 contains 141636 frames.
eac3to processing took 1 minute, 17 seconds.
Done.

前3者支持BD/mpls的demux(你可以选用现成的Remux来避免原盘带来的各种问题),不过DGDemux支持原盘,tsMuxer的mkv很多轨道都不认
后3者开源免费多平台(有Linux版本)

DGDemux有Linux版本,不过没有GUI

tsMuxer拆出的turehd是包含ac3核心的,FFmpeg不认(不能拿来制作DDP)

选择正确的mpls

不像二次元原盘可能一个m2ts就一集,乱七八糟的原盘mpls可能发生各种情况。建议关注下以及观察加载 m2ts 的规律。

一般可以看获取原盘处的BDinfo。

还有个比较便捷的办法,就是stream里看最大的m2ts,记住名字,然后通过文本编辑器打开mpls看这个m2ts出现在哪。(不过在有DGDemux的情况下,直接在里面看就好了)

mkvextract

一般建议用GUI,除非你用Linux
https://mkvtoolnix.download/doc/mkvextract.html

Examples

mkvextract inpu.mkv tracks 1:audio.thd
(需要自己确定轨道ID以及后缀)

Extracting both chapters and tags in their respective XML formats at the same time:

mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml

Extracting a couple of tracks and their respective timestamps at the same time:

1
mkvextract "Another Movie.mkv" tracks 0:video.h265 "1:main audio.aac" "2:director's comments.aac" timestamps_v2 "0:timestamps video.txt" "1:timestamps main audio.txt" "2:timestamps director's comments.txt"

Extracting chapters in the Ogg/OGM format and re-encoding a text subtitle track to another character set:

mkvextract "My Movie.mkv" chapters --simple "My Chapters.txt" tracks -c MS-ANSI "2:My Subtitles.srt"

关于字幕的一些范例

1
2
3
mkvextract -v sample.mkv tracks 2:chs.sup 3:cht.sup
Extracting track 2 with the CodecID 'S_HDMV/PGS' to the file 'chs.sup'. Container format: SUP
Extracting track 3 with the CodecID 'S_HDMV/PGS' to the file 'cht.sup'. Container format: SUP

FFmpeg

如无必要,不建议使用,需要自己判断音轨深度,默认是拆16bit 其他见FFmpeg

Menu

Mediainfo 里的章节转为 Mkvtoolnix 能认的格式

https://github.com/fireattack/chapter_converter

1
python -m chapter_converter .\menu.txt -o out.txt

非便携版不用带-m

打赏
打赏提示信息
分享
分享提示信息