web-dev-qa-db-ja.com

MediaFrontとビューを使用してビデオの自動生成サムネイルを取得する

わかりました、私の状況はどうですか、

私は2つのフィールドを持つコンテンツタイプの製品を作成しました:画像フィールドと無制限の入力を持つビデオフィールド。

MediaFront モジュールとビューを使用する自分のノード上のすべてのビデオを表示するためのブロックを作成しました。それ自体はサムネイルをロードしないことを除いて、うまく機能するプレイリストを使用して再生します。

モジュールのドキュメントを読んで、サムネイルとして別のフィールド(つまり、画像フィールド)を設定する必要があります。

これは2つの方法で作成できます。

  1. プレイリストにビデオからサムネイルを自動的に取得させます。

  2. 私がアップロードするすべての動画に、サムネイルとして独自の画像を作成します。つまり、すべての動画のImagefieldの最初の画像のみが表示されるということです。

これが page のアドレスです。

ビューの出力:

$view = new view();
$view->name = 'media';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'media';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'media';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'mediaplayer';
$handler->display->display_options['style_options']['mediafront_preset'] = 'video_thumbs';
/* Field: Content: videos */
$handler->display->display_options['fields']['field_product_videos']['id'] = 'field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['table'] = 'field_data_field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['field'] = 'field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['label'] = '';
$handler->display->display_options['fields']['field_product_videos']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_product_videos']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_product_videos']['type'] = 'mediafront_player';
$handler->display->display_options['fields']['field_product_videos']['settings'] = array(
  'preset' => 'video_thumbs',
);
$handler->display->display_options['fields']['field_product_videos']['delta_offset'] = '0';
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Contextual filter: Content: Nid */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'products' => 'products',
);

/* Display: main video player block */
$handler = $view->new_display('block', 'main video player block', 'block_1');
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'mediaplayer';
$handler->display->display_options['style_options']['mediafront_preset'] = 'openstandard';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['header'] = FALSE;
$handler->display->display_options['defaults']['fields'] = FALSE;
/* Field: Content: videos */
$handler->display->display_options['fields']['field_product_videos']['id'] = 'field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['table'] = 'field_data_field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['field'] = 'field_product_videos';
$handler->display->display_options['fields']['field_product_videos']['label'] = '';
$handler->display->display_options['fields']['field_product_videos']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_product_videos']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_product_videos']['settings'] = array(
  'preset' => 'openstandard',
);
$handler->display->display_options['fields']['field_product_videos']['group_rows'] = FALSE;
$handler->display->display_options['fields']['field_product_videos']['delta_offset'] = '0';
/* Field: Content: Images */
$handler->display->display_options['fields']['field_product_images']['id'] = 'field_product_images';
$handler->display->display_options['fields']['field_product_images']['table'] = 'field_data_field_product_images';
$handler->display->display_options['fields']['field_product_images']['field'] = 'field_product_images';
$handler->display->display_options['fields']['field_product_images']['label'] = '';
$handler->display->display_options['fields']['field_product_images']['exclude'] = TRUE;
$handler->display->display_options['fields']['field_product_images']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_product_images']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_product_images']['settings'] = array(
  'image_style' => '',
  'image_link' => '',
);
$handler->display->display_options['fields']['field_product_images']['delta_offset'] = '0';
$handler->display->display_options['block_description'] = 'main video player block';

私は本当にどんな助けにも感謝します。

1
Sohail

ドキュメント全体を読みましたが、現時点では2つの別々のフィールドを使用して無数の動画と画像を追加し、適切なサムネイルを取得する方法はありません。

次のフィールドを含む、Videosという別のコンテンツタイプを作成しました。

  • ビデオ
  • サムネイル
  • 題名

ビデオごとに、サムネイルもアップロードします。

次に、製品のcontent-typeにEntity Referenceフィールドを追加して、この方法で製品に使用したいビデオを参照できるようにしました。

次に、ビューでブロックを 次の画像 として作成し、製品ノードに追加します。 enter image description here

それが私が望んだものではなく、サムネイルのアップロード作業がいくつかあることはわかっていますが、私の知る限り、追加のコーディングなしでこれを実現するために見つけることができる唯一の方法でした。

1
Sohail

[画像]フィールドにイメージオーバーレイへのパスを追加してから、ビデオの表示を書き換えます。または、YouTube APIを使用して画像とすべての結果を返します。

youtube APIサムネイルへのリンクはこちら Youtube API v お役に立てれば幸いです。私はいくつかのウェブサイトで同じことをしました。

0
no name

あなたがこの人と同じ状況にあるかどうかはわかりませんが、多分彼の記事はMediaFrontモジュールを使用してビデオからサムネイルを自動的に生成するのに役立つかもしれません: http://blog.netflowdevelopments.com/2011/11/20/drupal-fun-auto-generating-playlist-thumbnails-from-videos /

0
Djouuuuh