Videoplayer, der Millisekunden zeigt

27476
cherouvim

Ich muss MP4-Dateien auf meinem win7 abspielen, die abgesehen von Minuten und Sekunden die Millisekunden anzeigen sollen.

Ich habe derzeit GOM, VLC und MPC-HC. (Beachten Sie, dass ich einen normalen, leichten Videoplayer verwenden möchte und die Datei nicht in ein Videobearbeitungsprogramm wie Sony Vegas usw. laden muss.)

Am ehesten könnte ich MPC-HC verwenden, eine Dummy-Srt-Datei (Subdatei) für das Video hinzufügen und die Option Subresync aktivieren (wie unter https://trac.mpc-hc.org/ticket/3700 gezeigt ). Dies zeigt das gewünschte Format von mm:ss.SSS. Das Erstellen eines Dummy-Srt (der mindestens einen Untertiteleintrag enthalten muss, damit die Option Subresync aktiviert wird) ist jedoch umständlich.

Gibt es eine andere Lösung?

7
https://superuser.com/questions/712183/how-can-i-view-milliseconds-with-vlc-and-why-is-this-method-not-working (auch auf archive.org) barlop vor 6 Jahren 1

2 Antworten auf die Frage

10
nixda

Du hättest es fast geschafft. Media Player Classic (MPC-HC) hat diese Option bereits eingebaut. Klicken Sie mit der rechten Maustaste auf den Zeitstempel unten rechts und wählen Sie Hohe Präzision

enter image description here

Andere Spieler wie VLC, SMPlayer, Mplayer, KMPlayer haben diese Option nicht. Trotz der Tatsache, dass KMPlayer buchstäblich tausend Konfigurationsoptionen hat

Die Untertitel-Problemumgehung funktioniert jedoch mit jedem Player. Hier für VLC demonstriert

1
inblueswithu

Hier ist der Code (in Python) zum Generieren der Untertiteldatei für die Untertitel-Problemumgehung:

def generateSRTFile(fileName, duration): """  Generate SRT (subtitle) file for micro second display in video   fileName: "Movie1.srt" duration: "00:12:54"  NOTE: ignored seconds to make the program more simplified """ # get the hours, min, sec from duration time_split = duration.split(':') hours = int(time_split[0]) minutes = int(time_split[1]) seconds = 59 # int(time_split[2]) millisecs = [x*10 for x in range(0,100)]  # open a file to write f = open(name=fileName, mode='w', buffering=1)  # iterate to print to file blockNo = 1 for h in range(hours+1): for m in range(minutes+1): for s in range(seconds+1): for ms in millisecs: f.write(subtitle(h, m, s, ms, blockNo)) blockNo += 1 # close the file return f.close()  def subtitle(h, m, s, ms, bn): """ Returns the subtitle block for the given parametes h: hours, m: minutes, s: seconds, ms: milli seconds, bn: block number """ block = "" block += formatToString(bn) + "\n" time_line = formatToString(h)+":"+formatToString(m)+":"+formatToString(s)+"," block += time_line+formatToString(ms, 3) + " --> " + time_line + \ formatToString(ms+10 if ms!=990 else 999, 3) + "\n" block += "time " + time_line + formatToString(ms ,3) + "\n\n" return block  def formatToString(num, length=2): """ Format given number to given length.  i.e num = 5 and length = 2. Result = "05"  """ # number of digits in num digits = len(str(num))  # mathematical equivalent for finding digits #n = num #digits = 0 #if n==0: #digits = 1 #else: #while n: #n = n/10 #digits += 1  # find how much shorter is num than length if digits >= length: strNum = str(num) else: diff = length-digits strNum = "" for i in range(diff): strNum += "0" strNum += str(num) # return return strNum  if __name__=="__main__": generateSRTFile(fileName='/home/inblueswithu/Downloads/default.srt', duration="00:05:56")