rename webm_640 to webm_video since it might be a different resolution

This commit is contained in:
Rodney Ewing 2013-08-20 10:29:38 -07:00
parent 931fa43fbc
commit 9de4fab437
5 changed files with 32 additions and 15 deletions

View File

@ -34,7 +34,7 @@ class VideoMediaManager(MediaManagerBase):
default_thumb = "images/media_thumbs/video.jpg" default_thumb = "images/media_thumbs/video.jpg"
# Used by the media_entry.get_display_media method # Used by the media_entry.get_display_media method
media_fetch_order = [u'webm_640', u'original'] media_fetch_order = [u'webm_video', u'original']
default_webm_type = 'video/webm; codecs="vp8, vorbis"' default_webm_type = 'video/webm; codecs="vp8, vorbis"'

View File

@ -20,6 +20,7 @@ from sqlalchemy import MetaData, Column, Unicode
MIGRATIONS = {} MIGRATIONS = {}
@RegisterMigration(1, MIGRATIONS) @RegisterMigration(1, MIGRATIONS)
def add_orig_metadata_column(db_conn): def add_orig_metadata_column(db_conn):
metadata = MetaData(bind=db_conn.bind) metadata = MetaData(bind=db_conn.bind)
@ -30,3 +31,19 @@ def add_orig_metadata_column(db_conn):
default=None, nullable=True) default=None, nullable=True)
col.create(vid_data) col.create(vid_data)
db_conn.commit() db_conn.commit()
@RegisterMigration(2, MIGRATIONS)
def webm_640_to_wemb_video(db):
metadata = MetaData(bind=db.bind)
file_keynames = inspect_table(metadata, 'core__file_keynames')
for row in db.execute(file_keynames.select()):
if row.name == 'webm_640':
db.execute(
file_keynames.update(). \
where(file_keynames.c.id==row.id).\
values(name='webm_video'))
db.commit()

View File

@ -36,12 +36,12 @@ class VideoData(Base):
- orig_metadata: A loose json structure containing metadata gstreamer - orig_metadata: A loose json structure containing metadata gstreamer
pulled from the original video. pulled from the original video.
This field is NOT GUARANTEED to exist! This field is NOT GUARANTEED to exist!
Likely metadata extracted: Likely metadata extracted:
"videoheight", "videolength", "videowidth", "videoheight", "videolength", "videowidth",
"audiorate", "audiolength", "audiochannels", "audiowidth", "audiorate", "audiolength", "audiochannels", "audiowidth",
"mimetype", "tags" "mimetype", "tags"
TODO: document the above better. TODO: document the above better.
""" """
__tablename__ = "video__mediadata" __tablename__ = "video__mediadata"
@ -68,7 +68,7 @@ class VideoData(Base):
""" """
orig_metadata = self.orig_metadata or {} orig_metadata = self.orig_metadata or {}
if "webm_640" not in self.get_media_entry.media_files \ if "webm_video" not in self.get_media_entry.media_files \
and "mimetype" in orig_metadata \ and "mimetype" in orig_metadata \
and "tags" in orig_metadata \ and "tags" in orig_metadata \
and "audio-codec" in orig_metadata["tags"] \ and "audio-codec" in orig_metadata["tags"] \

View File

@ -122,7 +122,7 @@ class CommonVideoProcessor(MediaProcessor):
""" """
Provides a base for various video processing steps Provides a base for various video processing steps
""" """
acceptable_files = ['original', 'best_quality', 'webm_640'] acceptable_files = ['original', 'best_quality', 'webm_video']
def common_setup(self): def common_setup(self):
self.video_config = mgg \ self.video_config = mgg \
@ -151,16 +151,16 @@ class CommonVideoProcessor(MediaProcessor):
if not self.entry.media_files.get('best_quality'): if not self.entry.media_files.get('best_quality'):
# Save the best quality file if no original? # Save the best quality file if no original?
if not self.entry.media_files.get('original') and \ if not self.entry.media_files.get('original') and \
self.entry.media_files.get('webm_640'): self.entry.media_files.get('webm_video'):
self.entry.media_files['best_quality'] = self.entry \ self.entry.media_files['best_quality'] = self.entry \
.media_files['webm_640'] .media_files['webm_video']
def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None, def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None,
vorbis_quality=None): vorbis_quality=None):
progress_callback = ProgressCallback(self.entry) progress_callback = ProgressCallback(self.entry)
tmp_dst = os.path.join(self.workbench.dir, tmp_dst = os.path.join(self.workbench.dir,
self.name_builder.fill('{basename}-640p.webm')) self.name_builder.fill('{basename}.medium.webm'))
if not medium_size: if not medium_size:
medium_size = ( medium_size = (
@ -187,8 +187,8 @@ class CommonVideoProcessor(MediaProcessor):
# If there is an original and transcoded, delete the transcoded # If there is an original and transcoded, delete the transcoded
# since it must be of lower quality then the original # since it must be of lower quality then the original
if self.entry.media_files.get('original') and \ if self.entry.media_files.get('original') and \
self.entry.media_files.get('webm_640'): self.entry.media_files.get('webm_video'):
self.entry.media_files['webm_640'].delete() self.entry.media_files['webm_video'].delete()
else: else:
self.transcoder.transcode(self.process_filename, tmp_dst, self.transcoder.transcode(self.process_filename, tmp_dst,
@ -205,8 +205,8 @@ class CommonVideoProcessor(MediaProcessor):
# Push transcoded video to public storage # Push transcoded video to public storage
_log.debug('Saving medium...') _log.debug('Saving medium...')
store_public(self.entry, 'webm_640', tmp_dst, store_public(self.entry, 'webm_video', tmp_dst,
self.name_builder.fill('{basename}-640p.webm')) self.name_builder.fill('{basename}.medium.webm'))
_log.debug('Saved medium') _log.debug('Saved medium')
self.did_transcode = True self.did_transcode = True

View File

@ -62,11 +62,11 @@
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if 'webm_640' in media.media_files %} {% if 'webm_video' in media.media_files %}
<li> <li>
<a href="{{ request.app.public_store.file_url( <a href="{{ request.app.public_store.file_url(
media.media_files.webm_640) }}"> media.media_files.webm_video) }}">
{%- trans %}WebM file (640p; VP8/Vorbis){% endtrans -%} {%- trans %}WebM file (VP8/Vorbis){% endtrans -%}
</a> </a>
</li> </li>
{% endif %} {% endif %}