Archive for Februar 2019

Windows Desktop mit FFMPEG aufzeichnen

28 Februar 2019

Um mal schnell etwas in Windows als Video aufzuzeichnen gibt es viele verschiedene Möglichkeiten. Bei Windows 10 gibt es mittlerweile die GameBar bzw. Spielleiste aus dem App-Store. Allerdings kann die Spielleiste nur 3D Spiele oder Anwendungen aufzeichnen, also braucht man etwas anderes. Da kommt FFMPEG zur Hilfe,das ultimative Werkzeug wenn es um Video-oder Audio-Dateien geht. https://ffmpeg.zeranoe.com/builds/.

Um nun den Desktop aufzuzeichnen verwendet man

.\ffmpeg.exe -f gdigrab -draw_mouse 1 -framerate 30 -i desktop -f dshow -i audio="@device_cm_{33455762-9558-1340-BD43-34453454CE86}\wave_{E3453455-0445-4D3F-92FF-573453453E3E}" output.mp4

Zum Beenden der Aufzeichnung holt man das Fenster mit obigem Befehl wieder in den Vordergrund und bricht die Aufzeichnung mittels STRG+C ab. Die Aufzeichnung landet in output.mp4 im aktuellen Verzeichnis.

Durch die Angabe von –f gdigrab und –f dshow benutzt man zwei Filter, einmal für die Videoaufzeichnung mit –i desktop und bei –i audio… für die Audioaufzeichnung.

Der Parameter –draw_mouse 1 zeichnet die Maus mit auf, bei –draw_mouse 0 würde die Maus nicht mitaufgezeichnet.

Um den Mauszeiger größer zu bekommen verwendet man

start main.cpl

bzw. unter Windows 10 gleich

start ms-settings:easeofaccess-mouse

Für die Soundeinstellunge um z. B. das Mikrofon anzupassen verwendet man

start mmsys.cpl

control /name Microsoft.Sound

oder unter Windows 10

start ms-settings:sound

Zur Ermittlung der zur Verfügung stehenden Audioquellen verwendet man diesen Befehl:

ffmpeg -list_devices true -f dshow -i dummy

Dabei kann das Problem entstehen, dass ein Umlaut wie im Wort Kopfhörer zu Windows-typischen Problemen führt, wie hier:

[dshow @ 0000354540145480]  "Kopfh├Ârermikrofon (Plantronics Blackwire 5220 Series)"
[dshow @ 00000114d01e8a80]     Alternative name "@device_cm_{33455762-9558-1340-BD43-34453454CE86}\wave_{E3453455-0445-4D3F-92FF-573453453E3E}"

Die Zeichen ├ sollte eigentlich ein ö für Kopfhörer sein. In solch einem Fall verwendet man den alternativen Namen:

"@device_cm_{33455762-9558-1340-BD43-34453454CE86}\wave_{E3453455-0445-4D3F-92FF-573453453E3E}"

Hier noch die offizielle Doku zur Desktopaufzeichnung: https://trac.ffmpeg.org/wiki/Capture/Desktop und zu DirectShow: https://trac.ffmpeg.org/wiki/DirectShow. Sowie https://ffmpeg.org/ffmpeg.html#Video-and-Audio-grabbing.

Farbe für die Kommandozeile und was man dagegen tun kann

26 Februar 2019

In immer mehr Kommandozeilenausgaben findet man farblich unterlegte Ausgaben. Dies ist sicher sinnvoll und gut gemeint aber teilweise auch problematisch beim Weiterverarbeiten der Ausgaben. Selbst Microsoft hat aber diesen Trend erkannt und unterstützt bei neueren Windows 10 Versionen VT-Escapecodes https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences.

Wenn nun aber alles schön bunt wird, man es aber nicht so bunt mag oder es gar nicht brauchen kann, findet man sich bei dieser Initiative wieder: https://no-color.org/. Hier wird auch teilweise beschrieben wie man bei verschiedenen Programmen die bunte Ausgabe auch unterdrücken kann.

Lenovo versteckte Tastaturbelegungen

22 Februar 2019

Tastaturen bei Lenovo Notebooks sind ja nicht schlecht. Allerdings sind auf den neueren Tastaturen viele Tastenkombinationen nicht mehr offensichtlich die man ab und an mal braucht.

Z. B. Break oder Pause-Taste.

Break (FN + B) or (FN + Ctrl + B)
SysRq (FN + S)
ScrLK (FN + K)
Pause (FN + P) or (FN + Alt + P) or (FN + Ctrl + P)

https://support.lenovo.com/by/en/solutions/ht074004
https://support.lenovo.com/by/en/solutions/ht503647

Übersichtsseite von Lenovo zu Tastatur und Maus-Themen: https://support.lenovo.com/by/en/solutions/ht503907

Da wir gerade bei Tastaturen sind, vielleicht noch der Verweis auf Windows 10 Tastenkürzel:

https://support.microsoft.com/en-us/help/12445/windows-keyboard-shortcuts

ÄltereTeamviewer Versionen herunterladen

20 Februar 2019

Ab und an braucht man für ältere Betriebssysteme ältere Teamviewerversionen. Teilweise ist es nicht offensichtlich wie man zu den alten Versionen kommt. Nun gibt es diesen Artikel der auf die älteren Versionen verweist:

https://community.teamviewer.com/t5/Knowledge-Base/Where-can-I-download-older-TeamViewer-versions-nbsp/ta-p/7729?_ga=2.171904931.2022328645.1550700664-873794305.1550700664

Hier ein Link mit den Beschreibungen was sich in den einzelnen Versionen geändert hat: https://content.teamviewer.com/en/all-versions/?_ga=2.80104468.2022328645.1550700664-873794305.1550700664/.

Hier nochmal die Links für die einzelnen Versionen:

Version 13:
https://www.teamviewer.com/en/download/previous-versions/?_ga=2.137299763.2022328645.1550700664-873794305.1550700664

Version 12:
https://www.teamviewer.com/en/download/previous-versions/?_ga=2.137299763.2022328645.1550700664-873794305.1550700664#version12

Version 11:
https://www.teamviewer.com/en/download/previous-versions/?_ga=2.137299763.2022328645.1550700664-873794305.1550700664#version11

Version 10:
https://www.teamviewer.com/en/download/previous-versions/?_ga=2.137299763.2022328645.1550700664-873794305.1550700664#version10

Version 9:
https://www.teamviewer.com/de/download/old-versions.aspx?_ga=2.169365410.2022328645.1550700664-873794305.1550700664#version9

Version 8:
https://www.teamviewer.com/de/download/old-versions.aspx?_ga=2.169365410.2022328645.1550700664-873794305.1550700664#version8

Version 7:
https://www.teamviewer.com/de/download/old-versions.aspx?_ga=2.169365410.2022328645.1550700664-873794305.1550700664#version7

Warum kann man in Windows 10 das Datum nicht mehr per Eingabeaufforderung ändern?

14 Februar 2019

Die Krux mit der Zeit bei Windows 10 oder warum zum Teufel kann ich meinem Windows nicht so einfach das Datum vorgeben, das ich möchte? Ach waren das noch schöne DOS-Zeiten. Man gab DATE ein, setzte das gewünschte Datum, startete seine Anwendung und konnte gemütlich arbeiten.

Vista brachte mit der UAC schon einige Änderungen mit, dass man zwingend Adminrechte zum Datumändern braucht usw. Aber Windows 10 in der aktuellen Ausführung (mind. seit 1607) treibt die Sache nochmal auf die Spitze! Dort gibt es sogenannte sichere Zeiten. Wehe, man befindet sich nicht in der “sicheren” Zeit, dann gibt es ganz schnell Chaos, Windows greift ein und stellt die richtige Zeit wieder her.

Im Grunde läuft die Geschichte so, man macht eine Admin-Eingabeaufforderung auf, gibt

DATE 10.10.18

ein, prüft diese mittels

DATE /t

bekommt meist das korrekte Datum angezeigt. Aber wehe die Zeitgötter sind gegen einen, dann startet man seine Anwendung mit der man in der Vergangenheit arbeiten möchte, doch unversehens hat man wieder die korrekte aktuelle Zeit.

Profis kommen dann und sagen: Ja man muss ja auch den Windows-Zeitgeberdienst W32Time ausschalten, also führt man noch ein

SC.EXE stop w32time

aus und probiert danach nochmal sein Glück. Klappt meist nicht, wenn definitiv nicht, liegt es vielleicht daran dass man sich in einer virtuellen Maschine befindet, da muss man z. B. noch den Hyper-V-Dienst für Zeitsynchronisierung ausschalten, also

SC.EXE stop vmictimesync

Vielleicht klappt es nun aber die meisten werden feststellen, Windows ist so schnell zurück bei der alten Zeit so schnell kann man manchmal gar nicht schauen.

Für die Behandlung von Daten seien hier noch der Vollständigkeit halber der Aufruf der GUI für die Datumsänderung genannt:

timedate.cpl

Und um in Powershell das Datum zu ändern, ohne die aktuelle Uhrzeit zu verlieren verwendet man:

set-Date "10.10.2018 $((Get-Date).ToLongTimeString())"

Die Abfrage der Zeitdienste in Windows sind mittels

get-service *time*

zu erhalten, wo W32Time, TimeBrokerSvc und bei Hyper-V VMs VMIcTimeSync auftauchen. Wobei mir die Rolle des TimeBrokerSync noch nicht klar ist.

Aber nun weiter im Thema. Um die Zufälligkeiten der Datumsrückstellung besser in den Griff zu bekommen, muss man Windows abgewöhnen bei der Kommunikation mit dem Internet SSL-Zertifikate zur Berechnung der Uhrzeit herzunehmen. Das Prinzip nennt sich Secure Time Seed of High Confidence (STSHC). Dabei handelt es sich nicht um ein typisches Microsoft Marketingbuzzword sondern eher um eine interne, und wie so oft, offiziell undokumentierte Sache. Einzig ein MS-Angestellter hat über das Prinzip ein paar Dinge geschrieben: https://blogs.msdn.microsoft.com/w32time/2016/09/28/secure-time-seeding-improving-time-keeping-in-windows/.

Kurz gesagt: Mit jeder verschlüsselten Kommunikation ins Internet kann Windows die Zeit korrigieren. Und das findet in Windows 10 mehr als häufig statt und erklärt auch das erratische Verhalten, welches man meist beobachten kann.

Man kann die aktuelle Einstellung durch folgende Zeile abfragen:

reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData

wird der Wert 1 geliefert ist die Zeitkorrektur durch SSL-Zertifikate aktiv, bei 0 ist sie ausgeschaltet.

Aktivieren (Vorgabe) kann man das Verhalten mit

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData /t REG_DWORD /d 1

und mit

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData /t REG_DWORD /d 0

abschalten.

Läuft der W32Time-Dienst und aktiviert man das Logging z. B. mittels

w32tm /debug /enable /file:C:\temp\w32tm.log /entries:0-300 /size:1000000

dann findet man in w32tm.log solche Eintragungen, wenn STSHC eingreift und die Zeit umstellt:

152670 12:34:36.6488208s – Setting the system time because it is outside the secure time limits.
152670 12:34:36.6488464s -  Current system time:  12:34:36.648 10/10/2018
152670 12:34:36.6488666s -  Target system time:  12:34:36.455 2/11/2019
152712 12:34:36.4608379s -  (AUDIT) Time Jump of 3628799 seconds.
152712 12:34:36.4608764s – ClockDispln Discipline: *SET*SECURE*TIME*

Bei dem STSHC-Komplex sei auch noch dieser Registry Key genannt:

Get-ItemProperty HKLM:\System\CurrentControlSet\Services\W32Time\SecureTimeLimits\

der da die Properties

SecureTimeConfidence : 7
SecureTimeEstimated  : 131945739321311682
SecureTimeHigh       : 131945775321311682
SecureTimeLow        : 131945703321311682
SecureTimeTickCount  : 29139718

auflistet. High, Low und Estimated sind wieder interessant und sind zwei Stunden auseinander. Man kann die Werte in normale DateTime-Variablen konvertieren, muss aber noch 1600 dazu addieren, um aktuelle Werte zu erhalten. Die Vorgehensweise sieht so aus

([DateTime](Get-ItemProperty HKLM:\System\CurrentControlSet\Services\W32Time\SecureTimeLimits\ -Name SecureTimeHigh).securetimehigh).AddYears(1600)

und ist hier beschrieben: http://byronwright.blogspot.com/2016/03/windows-10-time-synchronization-and.html.

Wenn man nun die SecureTimeLimits aus der Registry hernimmt, dann scheint immer gegen diese Verglichen zu werden, ob die Uhrzeit angepasst werden muss. Ist die aktuelle Uhrzeit des Rechners also außerhalb von Low und High wird sie auf Estimated gesetzt. Doch wie und wann werden High und Low gesetzt? Scheinbar beim Rauf- und Runterfahren des Rechners: http://byronwright.blogspot.com/2016/03/more-on-secure-time-for-windows-10.html. Wobei ich dies bisher noch nicht getestet habe.

Interessante Geschichte was mit der Zeitgebung durch SSL-Zertifikate passieren kann: https://www.reddit.com/r/sysadmin/comments/61o8p0/system_time_
jumping_back_on_windows_10_caused_by/
. Daraufhin gab es auch noch einen offiziellen KB-Artikel: https://support.microsoft.com/en-us/help/3160312/a-computer-that-is-running-windows-10-version-1511-reverts-to-a-previo.

Das ist sicherlich noch nicht alles was man zum Thema wissen müsste und sollte aber zumindest ein Anfang…

Ach, noch ein Dokument wegen Zeitsynckorrektheit von MS: http://windocs.blob.core.windows.net/windocs/WindowsTimeSyncAccuracy_Addendum.pdf, der Verweis auf den wichtigsten Zeit-Blog von MS: https://blogs.msdn.microsoft.com/w32time/ und noch die aktuelle MSDN-Doku zum Windows Zeitgeber Dienst: https://docs.microsoft.com/de-de/windows-server/networking/windows-time-service/windows-time-service-top.