Ich stieß auf das Problem, einige seltsame und falsche Metadaten von einigen Videodateien zu erhalten, mit denen ich arbeitete, und ich konnte nicht erfolgreich sein, ein Muster oder irgendeine Art der Handhabung mit Code und Tools wie ffmpeg, mp4box, ffprobe, mediainfo, mplayer zu finden, um die tatsächliche Dauer des Videos zu erhalten.
Die Ermittlung der tatsächlichen Dauer des Videos war eine Anforderung für ein Projekt, an dem ich arbeitete, und der einzige Weg, den ich fand, um es immer richtig zu machen, war, die Videodatei mit ffmpeg neu zu kodieren und die kodierten Dateien zu zwingen, die Metadaten der Originaldatei zu ignorieren, wie:
ffmpeg -i INPUT_FILENAME -acodec copy -vcodec copy -map_metadata -1 OUTPUT_FILENAME"
(Dies könnte schneller laufen als Sie erwarten. Ich war überrascht, für die Art von Inhalt und in der Umgebung, die ich benutzte, betrug die durchschnittliche Zeit 2 Sekunden)
… und dann die Dauer mit einem Tool Ihrer Wahl ermitteln. Ich mag mediainfo, btw: - “mediainfo FILE –Inform="Video;%Duration%” gibt Ihnen die Dauer in Millisekunden.