投稿者: staff

  • 『Xmedia Recode』を使ってスマフォやデジカメで撮った動画をmp4形式に変換する

     前回のブログで紹介したメディアプレイヤー(Strobe Media Playback)が再生できる動画ファイルの形式は、mp4かflvの2択になるのですが、スマフォやデジカメで撮った動画ファイルの形式が、3gpp、m2tsだったりしたら困ってしまいますね。こんな時は、変換ソフトを使って変換してしまいます。今回はいろいろある変換ソフトの中からフリーソフトの『Xmedia Recode』(※1)を紹介します。

     このソフトは多数の形式に対応していて、大概の機器で撮った動画は網羅しているのではないでしょうか。変換時のパラメータも豊富で、分からない設定も多々あるのですが、動画再生に専門的な知識が無くてもデフォルトの設定で大体うまくいきます。この辺の詳細についてはいろいろなブログで紹介されているのでここでは省略します。m(..)m

      さて、このソフトを選んだ外せない理由がひとつあります。それは変換時の設定で、「ストリーミング Fast-Start」という設定がある、ということです。

    [Xmedia Recode 画面抜粋]

     この設定をして変換した動画ファイルは、ダウンロードしながら動画を再生できるようになります。(※2) 数十分の動画ファイルを全部ダウンロードしてから再生が始まるようでは、待つのが面倒になりますからこの設定は必要でした。では実際にどうなるか試してみましょう。

     桜のある風景(再生 00:07) 「ストリーミング Fast-Start」設定無し

     桜のある風景(再生 00:07) 「ストリーミング Fast-Start」設定有り

     どうでしょうか。7秒と短い動画ですが、「ストリーミング Fast-Start」設定無しの動画は、スタートボタンを押してから少し待ってから再生が始まることが感じられますね。youtube等では当たり前のように感じている再生ですが、自分で用意する場合はこんな設定が必要になりました。

  • Webサイトに組み込むメディアプレイヤー(Strobe Media Playback)の見せ方を一工夫


     動画をWebサイトで再生する方法の一つにメディアプレイヤーを利用する方法があります。
    メディアプレイヤーにもいろいろありますが、今回はオープンソースの有名どころでFlashで再生するStrobe Media Playback(※1)を利用します。
    インストール、動作パラメータの設定等の細かい説明は、いろいろなブログ等で公開されているのでここでは省きます。m(..)m
      さて、”見せ方を一工夫”ですが、タイトルにまでして実は大したことではありません。
    (本当に) 普通は、そのまま貼り付けるとこんな感じです。

     一工夫は、タイトルをクリックすると展開するようにしました。こうすることで、動画の一覧から見たい動画を選択できるようにした際、ちょっとすっきりします。

    桜のある風景(再生 00:07)

     方法は、aタグをクリックしたしたら、aタグ要素の下にメディアプレイヤー用のオブジェクトを追加する、です。コーディング例は以下の通り。

    [aタグの例]

    <p><a onclick="fOpenMovie(this, '動画ファイル名');return false;" href="javascript:void(0);">桜のある風景(再生 00:07) </a></p>

    [メディアプレイヤー用のオブジェクトを追加するjavascript 関数の例  fOpenMovie()]

    function fOpenMovie(oPara,strURL){
        // aタグのテキストを取得
        var n=oPara.firstChild;
        var aTagText ="";
        while(n){
            if(n.nodeName=="#text") aTagText = n.nodeValue;
            n=n.nextSibling;
        }
        // objectタグの生成
        var strValue = "src=" + encodeURIComponent(strURL);
       
        var strObjectTag = String();
        strObjectTag = "<span>" + aTagText + "</span><br />";
        strObjectTag = strObjectTag
                     + "<object width='470' height='320'>"
                     + "<param name='movie' value='(swfのURL) StrobeMediaPlayback.swf'></param>"
                     + "<param name='flashvars' value='" + strValue + "'></param>"
                     + "<param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param>"
                     + "<param name='wmode' value='direct'></param>"
                     + "<embed src=~(swfのURL)StrobeMediaPlayback.swf' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' wmode='direct' width='470' height='320 flashvars="
                     + "'" + strValue + "'></embed>"
                     + "</object>";

        // オブジェクトを追加する。
        var oElements = oPara.parentNode;
        oElements.innerHTML = strObjectTag;
        return false;
    }

    ※1 Strobe Media Playback ダウンロードサイト
    http://sourceforge.net/projects/smp.adobe/files/
     

  • Windows オフライン ファイルの機能にハマッてしまいました。

     今のWindows OS(※1)には、オフライン ファイル(※2)と呼ばれるファイルの編集機能が備わっています。これは、ネットワーク上のサーバ等の共有フォルダのファイルをクライアントパソコンからアクセスする際、ネットワークが切断していても、パソコン上にあらかじめ共有フォルダのファイルがコピーされていて編集等ができて、その後、ネットワークが繋がった時にパソコン側で操作してファイルの同期をとる。という仕組みのようです。

     さて、こんな機能を知らずにシステムを運用していると、次のような不具合が発生します。

    『あるパソコンで共用フォルダのファイルを更新したが、別のパソコンでそのファイルをみると
    内容が反映されていない。』

     今回のケースは、Microsoft Accessで作成したシステムで起きました。DBをサーバの共有フォルダに置いて入力フォームはパソコン上に置いてデータの入出力を行うシステムです。

    半日悩みに悩んで、上記の内容にたどりついて解決。とりあえず各パソコンで、"オフライン ファイルを無効にする"設定をしました。


    ・[コントロールパネル]を開く
    ・[同期センター]を選択
    ・同期センター画面で[オフライン ファイルの管理]を選択
    ・オフラインファイル ダイアログで[オフライン ファイルを無効にする]

    ブログ画像1ブログ画像1ブログ画像2ブログ画像1

     

     

     

     

     

     

     


     後で調べると、以下の共有フォルダ側のプロパティで、オフラインの利用をできない設定にできることが分かりました。これをしておけば、台数の多いクライアント側パソコンで設定は不要になりますね。


    ・[共有フォルダ]のプロパティを開く
    ・[共有]タブ選択
    ・[詳細な共有]ボタンを押す
    ・[詳細な共有]ダイアログの[キャッシュ]ボタンを押す
    ・[オフラインの設定]ダイアログの"共有フォルダーにあるファイルやプログラムはオフラインで利用可能にしない"
      を選択する。
    ブログ画像2ブログ画像2

     

     

     

     

     

     

     

     ここまできて、当然「そもそも同期がとれれば問題ないんじゃないか?」という疑問もでてきます。ためしに同期センター(※3)の機能を使って同期をとる操作をしてみましたが、RDBの中身の同期を取ることはさすがに無理なようです。(そんな事ができたらすごいことですね)

    以上、備忘録もかねて。


    ※1 利用可能なWindows OS
       古くはWindows2000の頃から備わっていた機能らしいですが、現時点では、Windows7 Pro,  Windows 8 Proが利用可能。
       (各OSバージョンのProffesional Editionが利用可能か?)

    ※2 オフライン ファイルとは
    http://windows.microsoft.com/ja-jp/windows/understanding-offline-files#1TC=windows-7

    ※3 同期センター
    http://windows.microsoft.com/ja-jp/windows7/what-is-sync-center

     

  • 問い合わせフォーム 「CreamForm 1.0 」を使用してみた。

     今やCMS(content management system)といえば、WordPressが代名詞的な存在になっていますね。けれども、個人的に管理しているサイトではMTOS(Movable Type Open Source)を使用しています。

     そのサイトでお問い合わせの機能を組み込みたくて、「CreamForm1.0」(※1)を見つけました。
    組み込んでみたところ、こんなエラーが!

     ”テンプレートファイルの読み込みが出来ませんでした: 許可されない場所からテンプレートファイルを読み込もうとしました。”
    ”plugins/CreamForm/tmpl/list.tmpl”

     原因は、Template.pm内、load_file()においてlist.tmplが見つからずにエラーになっていました。MTOSのバージョンアップに伴い、セキュリティ強化対策でプラグインのテンプレートをチェックする際、フルパスで一致しないとダメにしているようです。(ディレクトリートラバーサルに関係した対策か・・・・な?)
    対応として、CreamForm/View.pmのテンプレート定義パスをフルパスに変更して、アップロードしました。

    変更前
    sub _list_tmpl_path { 'plugins/CreamForm/tmpl/list.tmpl'; } # list template path
    sub _delete_tmpl_path { 'plugins/CreamForm/tmpl/delete.tmpl'; } # delete template path
    sub _detail_tmpl_path { 'plugins/CreamForm/tmpl/detail.tmpl'; } # detail template path

     

    変更後
    sub _list_tmpl_path { '(フルパス)/plugins/CreamForm/tmpl/list.tmpl'; } # list template path
    sub _delete_tmpl_path { '(フルパス)/plugins/CreamForm/tmpl/delete.tmpl'; } # delete template path
    sub _detail_tmpl_path { '(フルパス)/plugins/CreamForm/tmpl/detail.tmpl'; } # detail template path

    バージョンアップによって、他が動作しなくなることってよくあるんですよね。
    今はいい感じに収まっています。
    組合関係のサイトに構築に限らずいろんなところで活用できるプラグインだと思います。

    ※1 CreamForm1.0
        http://marooon.com/web/2011/10/movabletype-creamform.html