Δημοσιεύτηκε: 24 Ιαν 2012, 15:28
από Ilias95
sokoban4ever έγραψε:Off topic:
Ωραία λοιπόν μπορείς τότε όταν επιστρέφει το fps να χρησιμοποιείς τον ένα τρόπο και όταν δεν επιστρέφει fps τον άλλο.
ώστε να κερδίζεις σε ταχύτητα ;)

Off topic:
Χμμ, δεν είμαι σίγουρος ότι αξίζει τον κόπο. Έτσι κι αλλιώς είτε για να πάρω τα frames είτε το για να πάρω την duration θα πρέπει πάλι να κάνω loop την έξοδο της εντολής.
Οπότε δεν νομίζω ότι κερδίζω σε ταχύτητα. Εκτός αν υπάρχει τρόπος για να παίρνω κατευθείαν την διάρκεια.
Προς το παρών την παίρνω με παρόμοιο τρόπο:

Spoiler: show
Κώδικας: Επιλογή όλων
import subprocess, shlex, re

def get_duration(_file):
cmd = 'ffmpeg -i {0} 2>&1'.format(_file)
exec_cmd = subprocess.Popen(shlex.split(cmd), stderr=subprocess.PIPE)
for i in exec_cmd.stderr.read().split('\n'):
if 'Duration:' in i:
duration = re.sub( r'^\s*Duration:\s*([0-9:]+).*$', r'\1', i)
try:
hours, mins, secs = duration.split(':')
hours = int(hours)
mins = int(mins)
secs = int(secs)
secs += (hours * 3600) + (mins * 60)
return secs
except (NameError, ValueError):
return 0

Edit: Και εκτός των άλλων πόσο να καθυστερήσει η python για να ελέγξει 50-60 γραμμές str; :P