TL/DR

TL/DR

我有一些问题mkclean...不知道这是否是提问的正确地方,但由于我已经看到有关 matroska、mkclean、元数据和类似问题的其他问题,所以我只想问...

基本上,这是关于命令行选项及其作用的问题。遗憾的是,我在网站上没有找到任何文档,而且命令行上的解释很简短。

TL/DR

命令行工具的命令行开关--optimize--optimize_nv--no-opimize--remux--live起什么作用?哪些开关可以“安全地”应用于现有文件,以便它们 a) 通过网络共享与电视或移动设备具有良好的兼容性,以及 b) 不会丢失计算机等高级设备的功能。--timecodescalemkclean

很长的故事

首先,我认为我理解的命令行参数:

  --keep-cues   keep the original Cues content and move it to the front

类似于ffmpegs -movflags faststartmp4 文件,它将元/索引数据从文件末尾(由于编码器只有在编码完成后才完全了解,因此将其写入此处)移动到文件开头。跳过此参数会将新计算的索引写入文件开头,而忽略现有索引。来源

--doctype <v> force the doctype version
    1: 'matroska' v1
    2: 'matroska' v2
    3: 'matroska' v3
    4: 'webm'
    5: 'matroska' v1 with DivX extensions
    6: 'matroska' v4

认为这是强制兼容仅支持特定版本的 matroska 文件格式的播放器。但它似乎也对标志有直接影响optimize。未经证实。

  --unsafe      don't output elements that are used for file recovery (saves more space)

认为这不言自明。但不知道 matroska 文件确实包含恢复数据... 什么类型的“损坏”可以恢复?是的,这是另一个问题。

其次,我不明白但我感兴趣的是命令行参数

  --timecodescale <v> force the global TimecodeScale to <v> (1000000 is a good value)

我不知道那是什么意思。

  --optimize    use all possible optimization for the output file

现在变得令人兴奋。优化。可能这就是我们来这里的目的(除了文件开头的索引)。但是优化什么?我发现的唯一一件事是,这会删除所选元素上方的 matroska 元素doctype(找不到这个的来源:()。假设我们使用--doctype 2它应该删除所有 v3 或更新版本的 matroska 文档元素。一方面有意义(强制兼容,但不应该将其命名为优化,对吗?)另一方面没有意义,因为 matroska 文件读取器应该忽略它们不理解的元素,因此删除它们将永远使它们无效……如果我们看到下一个命令行开关,此开关也适用于视频优化……但是哪一个?

  --optimize_nv use all possible optimization for the output file, except video tracks

这或多或少是清楚的。它的作用与上面相同,但忽略了视频轨道。但我们不知道它做了什么……

  --no-optimize disable some optimization for the output file

可能只是措辞不当,但会禁用文件的一些优化。一些优化……哪些被禁用,哪些没有?

第三,我不明白的命令行参数

  --remux       redo the Clusters layout
  --live        the output file resembles a live stream

相关内容