CVS edit link for DevelopmentMill

SimpleVideo module

Recently, we had to develop a module allowing to integrate with FileField and implement video transcoding and generating of video thumbnails. We wanted a very flexible Drupal-way module. So, basing on ImageField, we developed similar module for video.

Module consists of three parts: core, UI and integration with Cron. Core module implements main functionality, UI module provides with user interface for module configuring and Cron module allows to perform video processing (transcoding) on schedule.

Architecture and principles of operation of SimpleVideo module and ImageField are rather like. Our module allows to specify rules of video processing - presets. They look like ImageField presets. Currently, there are only two types of actions: video transcoding and thumbnail generating. Now it's restricted to have more than one action for a preset, but in future we plan to extend this functionality.

Also, module allows to create formatters. Each formatter corresponds to certain flash player with the path to its SWF player. During the creation of such a formatter, it's possible to specify flash variables and parameters for player in accordance to its specification. To set the path to SWF file or its thumbnail, it's necessary to specify previously created preset via tokens. This way, you inherits formatters' entire flexibility and handy integration with many modules (like Views).

Video transcoding and thumbnail generation are processed on demand (like ImageField does). In case video processing takes a lot of time, module allows to do this on schedule by cron.

Video transcoding and thumbnail generation are implemented via ffmpeg.

Comparing with other modules:

FlashVideo (http://drupal.org/project/flashvideo), our module has better integration with CCK and FileField modules, while FlashVideo still has issues with video removal and integration with CCK (http://drupal.org/node/481116).

The most similar module is Video (http://drupal.org/project/video), but it allows to create only one rule for video transcoding and thumbnail generation. Our module has much more options of video processing. Our module supports usage of third-party flash players (like Viral Player or Cinema Player HD). Both modules provide with formatters for FileField, but our module is much more flexible and has greater extension potenial. Video module provides with formatter with option nearby of resolution selection, but we suppose this widget is unnecessary, so there isn't any like it in our module. As a result, our implements all capabilites of CCK and FileField, provides with significant number of options of video processing and implements very smart principle of storing cached files, proved itself in module ImageField.

You may take a look at SimpleVideo module on our demo site = http://simplevideo.demo.developmentmill.com/ (login - demo, password - demo)
Also, you may watch screencast about the module on http://simplevideo.demo.developmentmill.com/node/44 (it's required to login),

Thanks,
Development Mill

Comments

DevelopmentMill’s picture

StatusFileSize
new13.9 KB
avpaderno’s picture

Status: Postponed (maintainer needs more info) » Needs review
Issue tags: +Module review

Hello, and thanks for applying for a CVS account. I am adding the review tags, and some volunteers will review your code, pointing out what needs to be changed.

DevelopmentMill’s picture

Hello. It has passed more than two weeks, but still there is no review.

p0deje’s picture

Status: Needs review » Needs work

there are a lot of functions without comments

avpaderno’s picture

Status: Needs work » Needs review
DevelopmentMill’s picture

StatusFileSize
new13.67 KB

Last version for review.

valcker’s picture

Status: Needs review » Needs work

You should not use t() for menu titles and descriptions in D6: http://drupal.org/node/140311. Check menu declarations in simplevideo_cron.module and simplevideo_ui.module.

simplevideo_cron.info and simplevideo_ui.info have windows line endings and should be converted to Unix line endings (http://drupal.org/coding-standards)

DevelopmentMill’s picture

Status: Needs work » Needs review
StatusFileSize
new13.66 KB

All fixed. Need to review again.

pcambra’s picture

Hi, thanks for applying and contributing to the community.

Here are the issues I've found in the review, they aren't sorted by importance and some of them can be blocking and others not, please revise the main guidelines of what to expect when applying for a CVS account http://drupal.org/node/539608

  • You should enclose the submodules in their own subfolders inside the main module folder to avoid confusion.
  • Please include a README.txt file for the module, it should contain installation instructions, module features and how to make it work.
  • You should include @file definitions in the module and include files, please do so and complete the ones you have empty.
  • Normally is advisable to avoid SELECT * queries, please see http://drupal.org/node/374660
  • Theme functions are used for displaying html contents to the browser, I think you should pre-execute all the code you have in theme_simplevideo_ui_preset_actions and let that function with the basic html output only (if any)
  • Hook_menu titles/descriptions shouldn't be called using t() because this is the default. See http://api.drupal.org/api/function/hook_menu/6
  • I think that you should take a look to the coder module and run the files through it to get rid of most of the coding standards http://drupal.org/project/coder
  • In the hook_cron call you should be very careful as in D6 cron isn't protected at all (by default) so in an eventual massive call to the cron page of a site, it will query this: "SELECT * FROM {simplevideo_cron} WHERE processed = 0"" as many times as it is requested without control. You can include a extra settings control for cron and let the user choose how often this is executed (maybe explaining that can't override the cron timing)
pcambra’s picture

Status: Needs review » Needs work
DevelopmentMill’s picture

Status: Needs work » Needs review
StatusFileSize
new17.67 KB

All requested fixes done.

zzolo’s picture

Component: Miscellaneous » miscellaneous
Status: Needs review » Postponed

Hi. Please read all the following and the links provided as this is very important information about your CVS Application:

Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications

  • The status of this application will be put to "postponed" and by following the instructions in the above link, you will be able to reopen it.
  • Or if your application has been "needs work" for more than 5 weeks, your application will be marked as "closed (won't fix)". You can still reopen it, by reading the instructions above.
DevelopmentMill’s picture

Status: Postponed » Closed (duplicate)

After Git migration created new request #1114596

avpaderno’s picture

Issue summary: View changes
Related issues: +#1114596: SimpleVideo
avpaderno’s picture

Component: miscellaneous » new project application