Видео MP4 на MediaWiki

У меня есть несколько видеороликов в формате MP4, которые были созданы собственными силами, и я хотел бы разместить их на нашей внутренней MediaWiki (1.26.3). Я не могу найти расширение, совместимое с этой версией. Я делаю это неправильно, ища подходящее расширение (имеется в виду, есть ли собственный способ отображения видео), или мне просто не повезло, пока одно из расширений не будет обновлено?


person Flea    schedule 01.06.2016    source источник


Ответы (1)


Используйте расширение VideoPlayer (совместимое с v1.26.3) с html5 в качестве провайдера.

Чтобы установить расширение VideoPlayer, следуйте инструкциям https://www.mediawiki.org/wiki/Extension:VideoPlayer :

1) В папке вики скопируйте следующий php-код в extensions/VideoPlayer/VideoPlayer.php (создайте файл, если он еще не существует):

<?php
// See http://www.mediawiki.org/wiki/Extension:VideoPlayer for more information.

$wgExtensionFunctions[] = 'VideoPlayer';
$wgExtensionCredits['parserhook'][] = array(
    'name'          => 'VideoPlayer',
    'description'   => 'Display video players for youtube, dailymotion, vimeo, google, etc...',
    'author'        => 'Joachim Chauveheid',
    'version'       => 1.0 
);

function VideoPlayer() {
    global $wgParser;
    $wgParser->setHook('video', 'renderVideoPlayer');
}

function renderVideoPlayer($input, $args) {
    $url = array();
    $url['allocine']    = 'http://www.allocine.fr/blogvision/%1$s';
    $url['blip']        = 'http://blip.tv/play/%1$s';
    $url['dailymotion'] = 'http://www.dailymotion.com/swf/%1$s?syndication=112040';
    $url['facebook']    = 'http://www.facebook.com/v/%1$';
    $url['gametrailers']= 'http://www.gametrailers.com/remote_wrap.php?mid=%$1s';
    $url['googlevideo'] = 'http://video.google.com/googleplayer.swf?docId=%1$d';
    $url['html5'  ]     = '%1$s';
    $url['metacafe']    = 'http://www.metacafe.com/fplayer/%1$d/' . (isset($args['vid']) ? $args['vid'] : '') . '.swf';
    $url['myspace']     = 'http://mediaservices.myspace.com/services/media/embed.aspx/m=%1$s';
    $url['revver']      = 'http://flash.revver.com/player/1.0/player.swf?mediaId=%1$u';
    $url['sevenload']   = 'http://en.sevenload.com/pl/%1$s/%2$ux%3$u/swf';
    $url['viddler']     = 'http://www.viddler.com/player/%1$s';
    $url['vimeo']       = 'http://www.vimeo.com/moogaloop.swf?clip_id=%1$d&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0';
    $url['youku']       = 'http://player.youku.com/player.php/sid/%1$s/.swf';
    $url['youtube']     = 'http://www.youtube.com/v/%1$s?fs=%5$u';


    $flashvars = array();
    $flashvars['revver'] = 'mediaId=%1$u&affiliateId=0';

    $type       = isset($args['type'],$url[$args['type']]) ? $args['type'] : 'youtube';
    $media_url  = isset($url[$type]) ? $url[$type] : $url['youtube'];
    $flash_vars = isset($flashvars[$type]) ? $flashvars[$type] : '';

    $input_array = explode('|', htmlspecialchars($input));
    $id     = current($input_array);
    $width  = (count($input_array) > 1 && is_numeric($input_array[1])) ?     $input_array[1] : 425;
    $height = (count($input_array) > 2 && is_numeric($input_array[2])) ? $input_array[2] : 350;
    $fullscreen = (isset($args['fullscreen']) ? $args['fullscreen'] : 'true') === 'false' ? false : true;

    if(strtolower($type) == 'html5')
    {
        $output = '<video src="'.$id.'" controls style="width:'.$width.'px;height:'.$height.'px"></video><p style="font-size:80%;padding:0;margin:0;">(Right click to control movie)</p>';
        return $output;
    }
    else
    {
        $output = '<object width="%2$u" height="%3$u">'
            .' <param name="movie" value="'.$url[$type].'" />'
            .' <param name="allowFullScreen" value="%4$s" />'
            .' <param name="wmode" value="transparent" />'
            .' <embed src="'.$url[$type] . '" type="application/x-shockwave-flash" wmode="transparent"'
            .' width="%2$u" height="%3$u" allowfullscreen="%4$s"'
                    . ' flashvars="' . $flash_vars . '"></embed></object>';
        return sprintf($output,$id,$width,$height,$fullscreen ? 'true' : 'false', (integer)$fullscreen);
    }
}
?>

2) Добавьте следующее в LocalSettings.php вики:

require_once("$IP/extensions/VideoPlayer/VideoPlayer.php");

Установку теперь можно проверить через Special:Version (https://www.mediawiki.org/wiki/Special:Version)

После установки VideoPlayer скопируйте видео в папку /resources/assets в корневом каталоге вашего проекта mediawiki, а затем напишите код тега видео в редакторе страницы mediawiki, используя 'html5' в качестве провайдера:

<video type="html5">/myWiki/resources/assets/my-video.mp4</video>

Ваше здоровье!

person Pablo Lammel    schedule 10.06.2016
comment
Я получаю управление, но видео не воспроизводится. - person Flea; 13.06.2016
comment
Пожалуйста, дайте мне дополнительную информацию, чтобы я мог вам помочь: - person Pablo Lammel; 13.06.2016
comment
Похоже, что расширение было установлено, но не находит видеоресурс. Пожалуйста, дайте мне дополнительную информацию, чтобы я мог вам помочь: 1) Убедитесь, что видео находится в папке, а путь к файлу указан в теге правильно. 2) Используя Chrome, щелкните правой кнопкой мыши компонент визуализированного проигрывателя и выберите «Проверить». Скопируйте код элемента видео и вставьте его сюда. 3) Пожалуйста, пришлите мне код видео, как в вашем редакторе страниц, и ваш код LocalSettings.php, если это возможно. - person Pablo Lammel; 13.06.2016
comment
Ты был прав. Это был путь, который я предоставлял, который вызывал проблему. Спасибо за помощь! Я изменил путь на ‹video type=html5›/resources/assets/my video.mp4‹/video›, и это сработало. - person Flea; 13.06.2016