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

时间:2015-06-01 14:08:53

标签: encoding extract decoding teamviewer desktop-recording

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

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

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

2 个答案:

答案 0 :(得分:1)

TVS是专有格式。似乎没有很多关于它的在线信息。可以在http://www.jerrysguide.com/tips/demystify-tvs-file-format.html处进行少量分析。

我用十六进制编辑器看了一个。它包含一个基于文本的标题,一个Base64文本页脚和许多二进制数据。 例如:

rm(x); x[5] <-2

({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] 标记了Base64开始的END之后的位置。)

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

可能希望对格式进行解码,但我看不出对此有何努力。

这可能只是TeamViewer会话的记录。如果使用的是类似RFB protocol的格式,则可能类似于VMware Video格式。

编辑:如果有帮助,我已经用C语言编写了一个快速程序,用于从文件中提取/转储KEY块的内容:(gist

答案 1 :(得分:0)

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