Извлекать аудио / видео потоки из записи TeamViewer (файл TVS)?
TeamViewer позволяет записывать сессии в собственном формате с расширением файла .tvs
, Его можно преобразовать в AVI с помощью любого кодека, установленного на локальном компьютере (с помощью TeamViewer), но не MP4 или других форматов контейнеров.
Кодирование в AVI действительно медленное (очевидно, не многопоточное, с использованием x264 vfw; XviD заняло бы еще больше времени), полученный файл не воспроизводился хорошо в VLC и вообще не был редактируемым в Avidemux на Windows.
Поэтому я хотел бы знать, возможно ли извлечь аудио- и видеопоток из файла TVS для дальнейшей обработки с помощью ffmpeg (в противном случае мне нужно кодировать дважды, что означает 4 часа на 60-минутный отснятый материал). Я надеюсь, что он похож на другие форматы, только с пользовательским кодеком, который, я надеюсь, не встроен в TeamViewer, но доступен и для других приложений.
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]
(The MetadataPosition
отмечает позицию после END, где начинается Base64.)
Двоичные данные, кажется, содержат несколько фрагментов, сжатых DEFLATE. Кажется, что они содержат значимые данные, в том числе список разрешений экрана, курсор мыши и некоторые 32-битные данные изображений RGB, но структуру нелегко различить.
Может быть, есть надежда на расшифровку формата, но я не вижу каких-либо усилий в этом направлении.
Это может быть просто запись сеанса TeamViewer. Если он использует что-то вроде протокола RFB, то он может быть похож на формат видео VMware.
РЕДАКТИРОВАТЬ: На случай, если это кому-нибудь поможет, я написал быструю программу на C для извлечения / выгрузки содержимого фрагментов KEY из файла: ( gist)
Кажется, вы можете установить кодеки видеокодеков VFW (Video For Windows), и TeamViewer их примет и будет использовать. Есть проект: https://sourceforge.net/projects/x264vfw/ , который позволяет кодировать в x264, таким образом вы получаете контейнер AVI с видео MP4.