从TeamViewer录制(TVS文件)中提取音频/视频流?

CoD*_*anX 8 encoding extract decoding desktop-recording teamviewer

TeamViewer允许使用文件扩展名以专有格式记录会话.tvs.可以使用本地计算机上安装的任何编解码器(使用TeamViewer)将其转换为AVI,但不能使用MP4或其他容器格式.

对AVI的编码非常慢(显然不是多线程,使用x264 vfw; XviD会花费更长时间),结果文件在VLC中无法正常播放,并且在Windows上的Avidemux中根本无法编辑.

因此,我想知道是否可以在TVS文件中提取音频和视频流,以便使用ffmpeg进行进一步处理(否则,我需要编码两次,这意味着每60分钟录像4小时).我希望它与其他格式相似,只是使用自定义编解码器 - 我希望它不是内置在TeamViewer中,但也可用于其他应用程序.

mwf*_*ley 2

TVS 是一种专有格式。网上似乎没有太多关于它的信息。少量分析可以在http://www.jerrysguide.com/tips/demystify-tvs-file-format.html找到。

我用十六进制编辑器看了一个。它包含基于文本的页眉、Base64 文本页脚和大量二进制数据。例如:

TVS
Version 5
TVVersion   13.0.6447 
Date    2018-03-03 15.24
TVServer    
ClientID    314159265
ServerID    MY_HOME_PC (123 456 789)
LocalParticipantID  1234567890123456789
GUID    {01234567-89AB-CDEF-0123-456789012345}
StreamTypes 2
ScreenFeatures  127
MetadataPosition    0000000000169e98
BEGIN
[Lots and lots of binary data]
END
[320 bytes of Base64]
Run Code Online (Sandbox Code Playgroud)

MetadataPosition标记 END 之后 Base64 开始的位置。)

二进制数据似乎包含几个 DEFLATE 压缩块。它们似乎包含有意义的数据,包括屏幕分辨率列表、鼠标光标和一些 32 位 RGB 图像数据,但结构并不容易辨别。

解码该格式可能有希望,但我看不到任何为此做出的努力。

它可能只是 TeamViewer 会话的录音。如果使用类似RFB 协议的协议,那么它可能类似于VMware 视频格式。

编辑:如果它对任何人有帮助,我用 C 编写了一个快速程序来从文件中提取/转储 KEY 块的内容:(要点

编辑:我发现 TeamViewer 会愉快地播放至少由 组成的简单文件TVS\r\nBEGIN\r\nKEY...\r\nEND,剥离任何其他数据。尽管我认为如果版本或流类型之类的东西会影响解码,它很可能会崩溃。