Τα πάντα για την Perl

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Perl

Δημοσίευσηαπό sokoban4ever » 24 Ιαν 2012, 03:25

Off topic:
Ilias95 έγραψε:[offtopic] @sokoban4ever
Ναι το έχω σκεφτεί αυτό που λες αλλά δυστυχώς η εντολή δεν επιστρέφει το fps για όλα τα video ή όλες τις επεκτάσεις ενώ με τον πρώτο τρόπο δουλεύει πάντα. Ευτυχώς επιστρέφει όμως πάντα την διάρκεια. Έτσι ο τύπος fps = frames / duration μου χρησιμεύει για να βρω το frame rate "παίρνοντας" τα frames και την διάρκεια.
έγραψε:Ωραία λοιπόν μπορείς τότε όταν επιστρέφει το fps να χρησιμοποιείς τον ένα τρόπο και όταν δεν επιστρέφει fps τον άλλο.
ώστε να κερδίζεις σε ταχύτητα ;)
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Τα πάντα για την Perl

Δημοσίευσηαπό Ilias95 » 24 Ιαν 2012, 15:28

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
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Perl

Δημοσίευσηαπό pmav99 » 25 Ιαν 2012, 00:43

Off topic:
αν η ταχύτητα εκτέλεσης είναι μη αποδεκτή κάνε profiling να δεις αν η get_duration είναι bottleneck. Αν είναι μπορείς με line profiling να δεις που είναι το πρόβλημα. Αμφιβάλλω αν ο χρόνος του string parsing θα είναι σημαντικός σε σχέση με το subprocess. Ίσως το parsing να είναι πιο γρήγορο χωρίς regex, αλλά πρέπει να το μετρήσιες για να είσαι σίγουρος. Πάντως επαναλαμβάνω ότι δε νομίζω να έχει μετρήσιμη διαφορά.

Premature optimization is the root of all evil
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Perl

Δημοσίευσηαπό Ilias95 » 25 Ιαν 2012, 01:32

pmav99 έγραψε:Off topic:
αν η ταχύτητα εκτέλεσης είναι μη αποδεκτή κάνε profiling να δεις αν η get_duration είναι bottleneck.

Off topic:
Profiling πως; Κάπως έτσι; http://docs.python.org/library/profile.html
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση


Re: Τα πάντα για την Perl

Δημοσίευσηαπό sokoban4ever » 26 Ιαν 2012, 05:47

Off topic:
:problem:
Άν για τα βίντεο που έχεις το ffmpeg δεν δείχνει τίποτα τότε ναι δεν μπορεις να κάνεις και πολλά δυστυχώς...
πάντως μπορείς όμως να επιταχύνεις την διαδικασία αφαιρώντας το Stream του ήχου ( βάλε την παράμετρο -na πριν το -i στiς παραμέτρους της εντολής ffmpeg) από το looping και έτσι γλιτώνοντας κάτι από το μέγεθος του αρχείου ήχου ... :)
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Προηγούμενη

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι