extract ogg clips

This commit is contained in:
j 2007-12-12 13:58:19 +00:00
commit 27bd9b5475
6 changed files with 223 additions and 124 deletions

View file

@ -24,6 +24,7 @@ import cache
import oxdb_import
from oxdb_utils import oxdb_title, oxdb_director, oxdb_id, oxdb_makedir
from subtitles import *
from extract import *
import midentify
@ -447,8 +448,8 @@ class ArchiveFile(SQLObject):
#enable this later
#self.extractFrames()
#self.extractClips()
def extractClip(self, inpoint, outpoint=-1, flash_folder=-1):
def extractFlvClip(self, inpoint, outpoint=-1, flash_folder=-1):
if flash_folder == -1:
flash_folder = self.frameFolder
movie_file = self.mini_movie_file
@ -469,9 +470,30 @@ class ArchiveFile(SQLObject):
extract_flash(movie_file, flash_movie, inpoint, outpoint, width, height, offset = 0)
#extract_flash_ng(self.absolutePath, flash_movie, inpoint, outpoint, width, height, offset)
def extractOggClip(self, inpoint, outpoint=-1, flash_folder=-1):
if clip_folder == -1:
clip_folder = self.frameFolder
movie_file = self.mini_movie_file
position = inpoint.replace(':', '.')
clip_movie = join(self.frameFolder, '%s.%s' % (position, 'ogg'))
width = 128
height = int(width / self.frameAspect)
height = height - height % 2
inpoint = inpoint.replace('.', ':')
if outpoint == -1:
s = self._findSubtitleByStart(inpoint)
if s:
outpoint = s['stop']
else:
outpoint = shift_time(5000, inpoint)
else:
outpoint = outpoint.replace('.', ':')
extract_ogg(movie_file, clip_movie, inpoint, outpoint, width, height, offset = 0)
def extractClips(self, img_folder=cache.frame_cache_root):
for p in self._startPoints():
self.extractClip(p)
self.extractFlvClip(p)
def extractFrame(self, position, img_folder=-1):
if img_folder == -1:
@ -508,6 +530,7 @@ class ArchiveFile(SQLObject):
if exists(mini_movie_file) and not force:
print "clip exists, skipping extraction", mini_movie_file
return
self.extracted = False
oxdb_makedir(dirname(mini_movie_file))
options = ''
@ -609,8 +632,11 @@ class ArchiveFile(SQLObject):
pixels = self.updatePixels()
return pixels
def clip(self, position):
return cache.loadClip(self, position)
def flvClip(self, position):
return cache.loadFlvClip(self, position)
def oggClip(self, position):
return cache.loadOggClip(self, position)
def frame(self, position):
return cache.loadFrame(self, position)