Opened 15 years ago

Closed 14 years ago

Last modified 14 years ago

#201 closed defect (fixed)

Video support

Reported by: Christopher Allan Webber Owned by: Christopher Allan Webber
Priority: major Milestone: 0.2.1
Component: programming Keywords:
Cc: Parent Tickets:

Description

The codebase is maturing quickly towards something where we could implement video support pretty soon.

There are several parts to this project:

  • Implementing multi-media class support (this probably needs its own ticket)
  • Add video processing code. We need someone with gstreamer experience... if someone can construct a generic gstreamer video encoding pipeline that would help things along by a lot.
  • Allow for dropping in multiple-media-type image support (again, part of the first bullet) and add one for video

If someone can help me with bullet #2 this can move along a lot faster..

Change History (11)

comment:1 by Elrond, 15 years ago

Joar, could you please take a look at this bug and see if it needs updating due to your video work?

comment:2 by Christopher Allan Webber, 15 years ago

It probably does, and I'll start making comments here about Joar's branch:

  • Looking pretty great generally; I'm very excited :)
  • Certain things duplicated between video/processing and images/processing... particularly:
    • The errors classes... these should just be imported out of mediagoblin/process_media/errors.py
    • mark_entry_failed should be imported from process_media/init.py
  • There are some images in media_types/video/presets/ and I can't figure out how they're used. Seems curious..
  • Nice job of breaking out the event handling!
  • What's up with the changed cloudfiles.py code?

Lastly, I notice that the way you're dispatching things to the specific media manager is in the view. I don't think this is wrong, it's a specific call... but I'm too tired to formulate thoughts on this correctly. Ping me on IRC or I'll update this with more coherent thoughts.

Great job so far of turning my outline of how this should work into action!

comment:3 by Christopher Allan Webber, 15 years ago

Owner: set to Joar Wandborg

Assigning to Joar!

comment:4 by Christopher Allan Webber, 15 years ago

More feedback to come, but as discussed on IRC, probably best to not require additional dependencies in setup.py. Instead, we should document the need to install such dependencies on video-related sections of the docs.

comment:5 by Christopher Allan Webber, 15 years ago

  • Seems to work great!
  • Should make keeping the original or deleting it an option. Probably by default it should be deleted... I uploaded a 78 MB video, and it made a 15MB lower-res WebM version. Personally, I don't need or want the huge one.
  • Is 640p.webm for all filenames the best option? Maybe we should take the original filename and change it to ORIGINAL-640p.webm
  • There are still a number of issues of duplicated code. Maybe it makes sense to move these to process_media/util.py:
    • mark_entry_failed (both)
    • create_pub_filepath (both)
  • There are some unnecessary imports in the processing files
  • process_media/init.py still has the old code

Something that could be spun off into a separate bug, but still has to be done before the month's release:

  • We need a way to disable video support, even if a "stopgap" quick solution.

Also important, but not critical:

  • Do we want to tell users somehow that certain media types are enabled on their particular instance? (Maybe we even want them to pick the appropriate media type?) Wonder what schendje thinks of this..
  • Maybe we could save the current percentage of conversion in the celery status? That's definitely okay to be a separate bug though.

comment:6 by Christopher Allan Webber, 15 years ago

Also, some tests are failing! Those should be fixed.

comment:7 by joar, 15 years ago

Owner: changed from Joar Wandborg to Christopher Webber
Status: NewFeedback

Hi Chris, these are the points I have taken action on:

  • DONE Add way to disable video support
  • DONE Fix tests
  • DONE Centralize ProcessMedia
  • DONE Find a home for mark_entry_failed and create_pub_filepath
  • DONE Change medium filename to {original}-640p.webm
  • DONE Update image processing to the one in master
  • Moved process_media/init.py => processing.py, merged process_media.errors and processing.py.

comment:8 by Christopher Allan Webber, 15 years ago

Hey Joar,

Haven't done a full review yet, but I notice something in one commit:

+    <script type="text/javascript"
+        src="{{ request.staticdirect('/js/lib/video.js') }}"></script>
+    <script type="text/javascript"
+        src="{{ request.staticdirect('/js/video.js') }}"></script>
+    <script type="text/javascript" src="http://html5.kaltura.org/js" > </script>

these files don't exist?

Not sure what /js/lib/video.js or even just /js/video.js are supposed to do, but you could commit them if something useful. I also wonder that if we're going to use the Kaltura skin if we should package it with the program? If we do, it should go in the extlib directory and be symlinked in, probably.

comment:9 by Will Kahn-Greene, 14 years ago

The original url for this bug was http://bugs.foocorp.net/issues/495 .

comment:10 by Christopher Allan Webber, 14 years ago

Milestone: 0.2.1
Resolution: fixed
Status: acceptedclosed

Oh, why isn't this closed?

This is done :)

comment:11 by Christopher Allan Webber, 14 years ago

Priority: trivialmajor
Note: See TracTickets for help on using tickets.