10

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

AVI 的编码真的很慢(显然不是多线程的,使用 x264 vfw;XviD 会花费更长的时间),生成的文件在 VLC 中不能很好地播放,并且在 Windows 上的 Avidemux 中根本不可编辑。

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

4

2 回答 2

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]

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

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

解码格式可能有希望,但我看不到任何努力。

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

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

编辑:我发现 TeamViewer 会很乐意播放至少由 just 组成的简单文件TVS\r\nBEGIN\r\nKEY...\r\nEND,剥离任何其他数据。尽管我认为如果 Version 或 StreamTypes 之类的东西会影响解码,它可能会中断。

于 2018-11-03T22:09:06.053 回答
0

看来,您可以安装 VFW(Windows 视频)视频编解码器编码器,TeamViewer 将接受并使用它们。有一个项目:https ://sourceforge.net/projects/x264vfw/允许编码为 x264,因此您将获得一个带有 MP4 视频的 AVI 容器。

于 2021-03-03T08:38:17.900 回答