ffplay überlagert den aktuellen Zeitstempel während der Wiedergabe von nicht gepacktem Video

1675
incBrain

Ich versuche, eine Überlagerung des aktuellen Zeitstempel zu erzeugen, während rohe H.265 Video - Wiedergabe mit ffplaymit DrawText Filter.

Die Überlagerung der aktuellen Bildnummer funktioniert gut mit:

ffplay -vf "drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: text='%':box=1:x=(w-tw)/2:y=h-(2*lh)" video.265 

Ich bin nicht in der Lage aktuelle Zeitstempel angezeigt werden wie beschrieben in diesem Beitrag verwendet text='%'. Meine gerenderte Ausgabe sieht folgendermaßen aus:

Bildschirmfoto

Ich verstehe, dass die rohe H.265-Datei keine Timing-Informationen enthält. Dies ist wahrscheinlich der Grund, warum ich nicht verwenden kann pts\:hms.

Meine Frage ist, ist es möglich, die aktuelle Bildnummer wie in zu verwenden text='%', sie aber durch die Framerate in etwa zu teilen text='%'? Ist leider text='%'nicht erlaubt und text='%/24'funktioniert auch nicht:

Screenshot2

Nur eine Info. Ich habe das Rohvideo in eine mp4-Datei gepackt ffmpeg -i video.265 -c:v copy video.mp4und der Befehl aus dem obigen Beitrag funktioniert einwandfrei. Ich bin aber immer noch gespannt, ob es möglich ist, Berechnungen innerhalb des Drawtext-Filters durchzuführen.

0

1 Antwort auf die Frage

1
Gyan

Sie müssen die eifFunktion verwenden

ffplay -vf \ "drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: \ text='%\:%\:%: \ box=1:x=(w-tw)/2:y=h-(2*lh)" \ video.265 

Dies erzeugt einen HH: MM: SS-Ausgang und erwartet einen Videostream von 24 Bildern pro Sekunde.

Funktioniert aber mit "n" anstelle von "t". Ich habe folgenden Fehler: Ausdruck 'Trunc (t / 60)' für die Ausdrucksexpansionsfunktion ist ungültig incBrain vor 8 Jahren 0
Für einen Rohdatenstrom wird "t" nicht zugewiesen oder berechnet. Befehl wurde aktualisiert. Gyan vor 8 Jahren 0