我也不懂,但是我能猜到原理大概应该是这样,就以富文本内容举例吧。
富文本比较常见的是 word 相关的格式 如 doc docx,另一个就是 html 吧。
以 html 举例,我们用到了大量的标记来记录一段内容的样式,对于字体大小,颜色,间距等。
那么 doc 之类的其他也是有类似的格式来记录的,只是可能不用 xml 结构,
而如果你需要做一个格式转换的话,你需要同时能解析两边的记录结构格式啥的。
A 格式 解析为 自己的结构,然后再重新按照 B 的格式 生成文件。
比如,凭空假设。
html:<p style=”font-size: 14px;”>你好,我是<b>张三</b>。</p>
adoc:%paragraph:$font-size=14px$你好%,我是%bold:张三%。%
你的程序理解这个结构后,只要知道这段是 14px 的字,张三是加粗的就好了。
当然,实际情况应该比这个更复杂,比如图片应该是以 三原色的数值排序来做,而格式差异在压缩处理上。
比如相同的颜色,出现的比较多的,应该会有 map,每个格式的 map 逻辑不同。
而视频内容的压缩,又会涉及到帧与帧之间的处理逻辑了。
但是整体思路应该是一样的。
以上是我的猜想,如有不对,欢迎下大佬指正。