Archive for category カラオケ動画

ごくたまに登録している「タイムタグ情報 DataBase」

http://w10.oroti.net/~timetag/pukiwiki/index.php

に歌詞のタイムタグを作ったら登録できるサイトがあって、
ごくたまに登録してます。

 

歌詞タイムタグ付き登録曲一覧ゆうあっとふうりん

歌詞自体は登録されずに、何番目の文字が何秒というように登録されるので
登録できるのは歌詞がどこかの歌詞サイトに登録されているものだけ

普段作っている曲は歌詞サイトに登録されることはめったにないのでたまにしか登録できないのでした…

 

No Comments

持ち込みカラオケ検索&予約&再生ツール更新 2015年10月20日版

カラオケオフを開催して実践テストをしてからリリースするようにしていたら、
忙しくてオフ会を開催できなくてリリースできなかった今日この頃。

2か月もたつと、原形をとどめないほど変わってしまったこのツールの変更点をまとめます。

  • 機材係がバッチファイルをダブルクリックして何かを起動するという操作を排除
    いままで、予約機能を動作させるために「start.bat」を起動したり、自動再生を始めるために「autoplaystart_mpc.bat」を起動するためにバッチファイルをダブルクリックする必要があったんだけど、アプリ上のマウス操作で実行できるようにした。
    予約・検索機能を動作には
    XAMPPコントロールパネルの

xampp_cp_stoptoStart

xampp_started

Startボタンを押す。XAMPPの設定をすると、Windows起動時点から予約機能をONにすることもできる。
スティックPCとかでも持ち込みPCにできちゃうね。

自動再生開始/停止には
予約ツールの「自動再生開始、停止ページ」から操作できる。

autoplay_exec

画面上でできるので設定で管理者じゃない人に操作させることもできる。(⇒機材係無人部屋運用が可能)

xampp_config_autoplayenter_2

以上を実現するために、セットアップ方法を一新。それが次

  • インストーラー対応
    今までZIPファイルを展開して!っていうインストール方法だったけどそれっぽいWindows用インストーラーでインストールできるようにした。
    (結局は同じようにファイルを展開しているだけなんだけど)

setupscreen

  • WebサーバXAMPPに変更
    今まで使っていたnginxだと、自動再生開始ボタンを押すと固まってしまうので、apache環境のxamppに変更した。
    変更したおかげで結構安定性も向上したと思う。

これにより今までとセットアップ方法が変更 詳細はこちら

  • URLリクエスト対応
    動画ファイル直置きのサイトとか、youtubeなど、直接MPC-beにURLを渡して再生できるものを、
    URLを指定してリクエストできるようにした。
    ニコ動とかはダウンロードして再生する仕組みが必要なので今後の追加機能として検討中。

以降画面デザイン系

  • 各機能ごとにページ分離
    いままで、TOPページでいろんなことができるようになっていたけど、間違ってプレイヤーコントローラーを押しちゃうことがあったりしたので、機能ごとにページを分離した。今まで
    tool_topold
    1画面にあった各機能を上のメニューで選べるようにして分離

tool_top

今どきのbootstrapデザイン!
いちおう「全部」のメニューで今まで通り1画面に全部表示することもできる。

  • anison.info検索の結果表示分離
    anison.info検索では大量の検索ワードがある場合の結果表示にすごく時間がかかってしまったので、
    最終検索結果が出るまでにもう1クッション増やして、各検索ワードごとに結果を表示させるようにした。

anison.info検索:曲タイトル検索結果

(今まで1つの画面に全検索結果が出ていたのを、XX件のリンクを先で表示するようになった)

  • anison.info 検索途中「詳細表示」
    同じ名前がたくさんいるアーティスト検索(naoとか)とかをするとどれが目的の項目なのかわかんなくなるので、
    anison.infoへのリンクを「詳細表示」として追加。項目の詳細を確認できるようにした。

anison.info検索ワード候補詳細情報

この中の詳細情報を押すと

詳細情報内容

確認できる。

不具合の修正は概ね上記機能追加時に発生した不具合を直したものなので特に書かなくていいかな?

本ソフトウェアはフリーソフトとしてGitHubで公開中。
https://github.com/bee7813993/KaraokeRequestorWeb/

不具合や要望などありましたらGitHubのissueに書いてもらえると対応できるかも。

No Comments

持ち込みカラオケ検索&予約&再生ツール更新 20150827版

しばらくリリースしていなかったら、機能が増えまくってしまったので説明を書いときます。

置き場所はこちら

https://github.com/bee7813993/KaraokeRequestorWeb/releases

追加機能

  • 機材係のおすすめ順対応
    フォルダ名、もしくはファイル名を条件に検索結果の中から特定のものを優先表示できるようにした。
    というのも今までだいたいファイルの大きい順に並べておくとおすすめ順になっていたんだけど、
    再エンコードして画質が劣化しつつファイルサイズが大きくなっているものが元動画より上に出てきたり、ニコ動エコノミー画質の動画を解像度だけ上げてエンコードしたのがやたらファイルサイズが大きかったりするようなデータを持参されることもあったので、ファイル名、フォルダ名で特定の条件のものを優先的に表示できるようにした。
    おすすめ度付で検索した結果はこのようになる。
    おすすめ度順検索結果_foradmin「おすすめ度」の表示は管理者ログインしているときのみ表示される(確認用なので)
    – 設定のしかた
    「設定画面」の中の「表示優先度設定」から優先度設定の画面に移動する。
    Image [12]優先度を設定したい項目がディレクトリ名(フォルダ名)の一部で設定する場合は「ディレクトリ」にチェック、ファイル名で設定する場合は「ファイル」にチェックを入れて、チェックするキーワードを入力。優先度を数値で入れて「登録」を押すと登録できる。
    優先度標準で50.数値が大きいものが優先度が高いということになる。
    キーワードは上から最初に一部一致で引っかかったものが該当することになる。
  • カラオケ配信自動切り替え機能
    カラオケ機の映像と音声をキャプチャデバイスから入力することで、カラオケ配信曲との切り替えを自動でできるようにした。(カラオケ機にも機材PCにもノータッチで切り替えできます)
    参加者には今まで通り「カラオケ配信」を指定してリクエストしてもらうと、その順番になると映像がカラオケ配信に自動切り替えになる。配信曲終了後も今まで同様、「曲終了」ボタンを押すことで次の人の番になる。
    セットアップ方法などはここに書くと長いので、機材係向けマニュアル参照
  • ニコ生風コメント表示機能
    mixiの「さとし」さん作のコメント表示アプリに対応。以下の内容が画面にコメントとして流れる。

    1. 動画リクエスト時にコメントとして入力した内容を再生開始時に。
    2. 再生中の曲のコメントにレスを付けた際、その内容を入力直後に。
    3. TOP画面のコメント入力部で入力した内容を即時。
      TOP画面のコメント入力部
      トップ画面コメント投稿部
      セットアップ方法などはここに書くと長いので、機材係向けマニュアル参照
      コメント表示の様子
      コメント出力中
  • TOP画面に使用方法へのリンクを追加
    設定画面でURLを指定できる。

不具合修正&調整

  • 画面デザインにBootStrap(っていうかHonoka)を使用。
  • tweetボタンを押しても、スマホからだとtweet画面に遷移しなかったものを修正。
  • 検索画面の表示順指定を削除
    (検索後ソートできるようになり、次回表示時は前回のソートで指定した状態で表示されるので)
  • プレイヤーコントローラーのフルスクリーンボタンを無効にする設定の追加
    (コメント表示を使用する際はPlayerをフルスクリーンにすると見えなくなるので)
  • 配信曲予約時に曲名入力部分への説明をplaceholderに変更
  • 検索ファイル予約時に曲名は修正できないように変更
  • リクエスト時にファイル名が消えてしまっていた不具合を修正。
  • リクエスト確認画面のリクエストボタンが小さすぎて押し間違いそうだったので大きさ変更。

オープンソースで公開しているので、ご自由にダウンロードしてお使いください。
また、一緒に作ってくれる人(特に画面デザインとかインストーラーとか作れる人)募集中

https://github.com/bee7813993/KaraokeRequestorWeb

No Comments

持ち込みカラオケ検索&予約&再生ツール更新 20150629版

6月10日版の説明を書くのを忘れていたので合わせて書いていきます。更新履歴の図解付き版

置き場所はこちら

https://github.com/bee7813993/KaraokeRequestorWeb/releases

追加機能

  • 見つからなかった曲を教えてリスト機能追加
    見つからない曲があったら書いておけば参加者が見つけられるキーワードを探してくれる機能を追加。 機材係係がどっかからダウンロードしてきたりするときにも使えます。
    使い方)
    見つからない曲があったらトップページのここを押します。
    Image [19]内容を記入できる画面が出てくるので、見つからなかった曲の内容を記入します。
    Image [21]記入したら「送信」
    ほかの参加者が見つけられる検索キーワードの見つけたり機材係がダウンロードして来たりして見つけられるようになったら、「変更」を押して情報を入力します。コメントとかは適当にどうぞ。最初に記入した人が内容を修正するときもこちらで
    Image [24]状況を「発見!~」にすれば見つかってリクエスト可能ってことになります。ファイル名検索で見つけられるキーワードを入れておくことができます。入力完了すると、検索ワードで検索できるリンクが現れるのでそこを押すと簡単に曲までたどり着きます。
    Image [25]
  • 検索履歴保存機能
    検索されたワードだけとりあえず記録できるようにしておいた。機材係が参加者の探している曲の傾向とかを知りたいと思ったとき参考にする用
    request.phpのあるところと同じフォルダにlogファイルができてます。

不具合修正&調整

  • 曲名表示に拡張子を表示しないようにしてから、プレイヤーコントローラーの選択がうまくいかなくなっていたものを修正
  • いつからかわからないけどanison.infoのメーカー検索の遷移がうまくいかなくなっていたのを修正。
  • プレイヤーコントローラのボタンの間に隙間を入れた。
    押そうとしたら隣のボタンを押すことがよくあったので
    before
    Image [17]after
    pc_sp
  • その他、スマホ用画面の表示調整

追加機能

  • コメント編集&レス付け機能
    一度登録したコメントを編集したり、レスを追記したりできるようにした。
    リクエスト一覧
    コメント編集のコメントのところに「修正」ボタンでコメントの内容を修正
    レスのテキストボックスに入力して「送信」でコメントに追記という形でレスが付けられます。
  • 表のソート機能
    リクエスト曲の一覧や、曲検索結果の表をソートできるようにした。
    たとえばリクエスト一覧
    リクエスト一覧_並び替え可の上の▼印がついている項目のあたりを押すとその項目でソートされます。
    ファイル名検索の結果は一度ソートしたら次に表示するときも同じ条件でソートされて表示します。
    (検索時の結果表示順の指定は1回目しか効かなくなるのでそのうち消します)
    スマホ画面では項目がないので、スマホを横置きにして項目を出してソート→縦置きに戻すという方法でソート可能。
  • DDNS登録機能
    毎回参加者のスマホでIPアドレスを入力してもらうのも面倒だと思うので、IPアドレスをDDNSに登録できるようにした。
    これにより、事前に告知とかで 「http://erkr.pcgame-r18.jp/」がトップ画面です。と伝えておけばそこをクリックしてトップ画面に入ることができるはず。
    ・設定画面
    ddns_settingpcgame-r18.jpを使う場合はドメイン管理者に使い方を聞いてください。使えれば登録後長くて30秒後に使用できます。
    mydns.jpはあらかじめ、そちらでアカウントを作って、その時登録したホスト名になります。
    登録したマスターIDとパスワードと、参加者がアクセスできるこのツールのIPアドレスを入力して「更新」を押すと登録完了です。登録後長くて5分後に使用できるようです。

不具合修正&調整

  • MPC二重起動対策
    Playerが二重に起動したり、途中で止まったりする現象があるみたいなので、回避できるように調整できるようにした。
    ・設定画面
    mpcwait_setting
    MPC2重起動対策→「プレイヤー動作監視開始待ち時間(秒)」の数値を上げる。 (再生開始してから、曲終了ボタンが有効になるまでの時間にもなる)
    MPC途中で終了対策→「プレイヤー動作監視チェック回数(回)」の数値を上げる。
  • 自動再生ツールの「再生中」対応
    今まで「再生中」の曲があっても自動再生ツールを起動したときは無視して一番下の「未再生」の曲の再生を始めたが、 「再生中」の曲があるとその曲が終わるまで次の曲の再生を開始しないようにした。
  • プレビュー機能修正
    機材PC以外からプレビューできなかったのを修正。
  • 内部処理を一部Ajax化 DBやconfファイルからのデータ取得をjson経由に変更。表がカラフルになったのはその影響。
    今後、スマートな操作ができるUIにしていく予定。

6/29版で内部構造が一気に変わったので、次のオフ会ではいろいろBUGが出るかもしれない・・・。

オープンソースで公開しているので、
使ってくれる人&一緒に作ってくれる人(特に画面デザインとかインストーラーとか作れる人)募集中

https://github.com/bee7813993/KaraokeRequestorWeb

 

No Comments

持ち込みカラオケ検索&予約&自動再生ツール更新 20150422版

2015年4月22日版をリリースしました。

GitHub_Release150422

2015年4月6日版からの変更点

【追加機能】

  • anison.info 連携検索に対応
    今まで「外部DBサイト連携検索機能」として、「banditの隠れ家」のサイトを利用して作品名or歌手名orブランド名から曲名を検索してその曲名でカラオケファイルを検索する機能があったのだけれど、追加で「anison.info」と連携して検索できるようになりました。
    「anison.info」はアニソンやゲームソングを新しい曲でも幅広くカバーしています。
    「banditの隠れ家」はちょっと古めのエロゲソングだとマイナーな曲でも登録されていることが多いです。

検索画面(スマホ版)

2015-04-23 05.41.17

  •  リクエストリストのエクスポート、インポート対応
    リクエストリストをcsv方式でエクスポート
    エクスポートした内容をインポートしてリクエストリストを復元できるようになりました。(ただし現状文字コードUTF-8のみ対応なのでExcelに読み込ませる場合メモ帳で開いてSJIS形式で保存しなおす必要があります)
    表計算ソフトに読み込ませてセットリストを作るときとかに便利かな?
  • リスト全消去ボタン追加
    dbファイルを消したり新しく指定しなくても、リクエストリストを消去することができます。
  •  BGMモード対応
    リクエストされている全曲の再生が終わった後も何かしら曲が流れるBGMモードを作成しました。
    2つのモードがあります。
    ・ BGMモード(ジュークボックスモード)
    新規登録した曲(=再生回数0)の曲は下から順番に流れます。
    再生回数0の曲がなくなると、再生回数が少ない順(同じ回数ではその中でランダム)で曲を再生します。
    一度再生すると再生回数が増えるので全部流しきるまで次に流れません。(抽選箱方式ランダム再生)
    たとえば、2曲しか登録されていないときは、同じ曲が続けて流れる確率は0%です。
    カラオケオフが終わった後の2次会のBGM用とか、参加者がBGMリクエスト可能なイベントとかに使ってみたらどうでしょうか?
    ・BGMモード(フルランダムモード)
    リクエストリストの中から完全にランダムに再生します。
    たとえば、2曲しか登録されていないときは、同じ曲が続けて流れる確率は50%になります。

設定画面

0422版設定画面

  • トップページのプレイヤーコントローラーがfoobar2000に対応
    mp3やm4aなどのオーディオデータ再生に使っているfoobar2000のプレイヤー操作をMPC同様ブラウザ上で参加者が操作できるようになりました。
    プレイヤーコントローラーの切り替えはTOP画面上の「プレイヤーコントローラー」の文字の部分を押すと現在再生中のプレイヤーに対応したコントローラーに切り替わるはず

foobar2000用プレイヤー(スマホ版)
2015-04-23 12.27.50

 【不具合修正】

  •  自動再起動機能の安定化
    サービスが止まっているのを検知して自動的に再起動する機能のチェックが敏感すぎてしょっちゅう知らないうちに再起動していたものをチェックの仕組みを変更して安定動作するようにしました。
    いままで15分に1回ほどチェックに引っかかって再起動していたところ少なくとも2~3時間は再起動しないようになってます。。
  •  PHPアクセス回数設定の排除
    windows版php-cgi.exeは標準で500回サクセスされると終了するようになっていたらしく、
    定期的にサービスが停止していました。(その後自動再起動が動作して完了する15秒間位にアクセスするとエラー画面になっていた)
    起動batファイルで環境変数として無制限を設定することにより勝手に終了しないようにしました。

今回の修正に合わせてマニュアル類も更新しました。
http://bee7813993.github.io/KaraokeRequestorWeb/

 

このツールはオープンソースで

Githubで公開中。https://github.com/bee7813993/KaraokeRequestorWeb/
一応セットアップすればだれでも使えます。
圧縮ファイルを展開するだけで簡単セットアップ…だと思っていたんだけど、知り合いに使ってもらおうとしたところ、セットアップに結構手間取っちゃったので、使ってみたい方がいたらWindowsのリモートアシスタンスという操作補助ツールでお手伝いしますので何らかの方法で連絡ください。

機能追加のペースが速すぎてデバッグが追いついていない感がある今日この頃・・・。

No Comments

持ち込みカラオケ検索&予約ツール更新 20150406版

持ち込みカラオケ検索&予約ツールの更新情報もここの日記に書いて行くことにした。

今回の主な修正点

  • スマホ用画面作成
    今まで、PCで見れるように画面を作成していたので、スマホで操作しようとすると操作性がすこぶる悪かった。
    慣れないCSSをいろいろ弄ってスマホでも見やすいように変えた。
    基本的にスマホでは横スクロールをせずに全部表示できるようになってる。
    Responsive Web Designにしているのでスマホを横にすると今まで通りPC用画面になる。
    タブレットの縦置きはとりあえず今まで通りPC用画面にしておいた。

PC用画面
erkr_pcscreen_2

スマホ用画面

2015-04-06 19.51.47

私、基本的にセンスないので、これ以上かっこよくデザインしてくれる人募集><

  • mp3+カラオケタグに対応
    今まで動画だけの対応だったけど、カラオケ動画を使う前はmp3+カラオケタグ(テキストファイル)を持ち込んで持ち込みカラオケをやっていたので、その形式でも再生できるようにした。これで動画を作る以前のカラオケ用データも使えるし、わざわざ動画を作らなくても持ち込みカラオケをできるようになるので持ち込みのすそ野がひろがるかなって。
    以前は2chで「タイムタグ付き歌詞ファイル総合スレ」というスレがあって、いろんな人が作った歌詞のカラオケタグファイルが共有されていたんだけど、もう機能していないと思われる・・・。
    動画再生に使っているMPCではカラオケタグを表示はできないので、音声のみファイル(とりあえず拡張子mp3,m4a,wavで判別)だった場合、foobar2000を起動するようにする。

とりあえず、全部入りパッケージにポータブル版foobar2000も入れておいたので特に初期設定は要らないはず。
最初に予約ツールからfoobarが起動したときに、表示したい画面でフルスクリーン化すればあとはMPCとfoobarが自動切り替えされる。

mp3+タイムタグのデータを再生している様子

foobar_mp3tag

mp3再生の制限事項
・「曲終了」以外のプレイヤーコントローラーのボタンは使用不可(操作できる方法を捜し中)
・音源ファイルのヘッダ内の曲の長さが正しくない場合、最後まで再生されない、もしくは再生が終わっても次の曲へ行かないことが起こる。
対処法
最後まで再生されない → 次の曲を一時停止しておいて今の曲が終わったら再開
再生が終わっても次の曲へ行かない → プレイヤーコントローラーで「曲終了」ボタンを押す

・カラオケ配信曲対応
今まで、リクエスト時に「カラオケ配信」を選んでも自動再生機能で何もチェックをしなかったが、カラオケ配信のターンになったら自動再生機能を一時停止するようにした。
配信曲を歌い終わったらプレイヤーコントローラー上の「曲終了」ボタンを押すと自動再生再開。

持ち込みカラオケ検索&予約ツールの概要

このツールについてこの日記に書くのは初めてなのでどんなツールかの説明とかしておきます。

いろんな人が自作したりニコカラをダウンロードしたりして持ち寄った持ち込みカラオケ用データで持ち込みカラオケをしようとしたときに、どんな曲があるのかを探すのがなかなか難しかったので、手元のスマホ、タブレット、ノートPC等で検索できるようにしたツールです。
検索したついでにリクエストしたら自動的に順番に再生できるようにして、手持ちの端末でデンモクのように使えるようになりました。
カラオケだけじゃなくて、ジュークボックス的に使うこともできそうなので、DJ不要の参加者リクエスト型のアニソンイベントとかにも使えるんじゃないかなって思う今日この頃。

ツールはWebで動作しているので、手元の端末のブラウザでアクセスします。
ローカルファイル高速検索ソフト「Everything  Search Engine」と
動画再生ソフト 「Media Player Classic BE」(-HCでも問題ないはず)
音楽再生ソフト 「foobar2000 + lyrics Art Panel Plugin」(今回サポート)
と連携して動作してます。

ツール自体はオープンソースで
Githubで公開中。https://github.com/bee7813993/KaraokeRequestorWeb/
一応セットアップすればだれでも使えます。
圧縮ファイルを展開するだけで簡単セットアップ…だと思っていたんだけど、知り合いに使ってもらおうとしたところ、セットアップに結構手間取っちゃったので、使ってみたい方がいたらWindowsのリモートアシスタンスという操作補助ツールでお手伝いします。

作成履歴

  • 2011年ごろ
    参加者が各自USBメモリなどでカラオケ動画を持ち寄って機材PCに接続して、機材のPCを操作して曲ファイルを検索して動画プレイヤーのプレイリストに追加するという持ち込みカラオケリクエストの仕組みが確立する。この時点では機材PCを操作しているときしか曲の検索ができないので、もっとゆっくり探せるようにできないかと機材係的に思っていた。
  • 2014年10月
    曲ファイル検索に「Everything file Search」を使用するようにした。リモート検索機能で手元のWindowsノートPCにインストールした「Everything file Search」で曲ファイル検索ができるようになった。(が、誰も使ってくれなかった(笑))

↑ ここまで既存ソフトを使って何とかしていたところ。

  • 2014年11月
    「Everything file Search」で見つけたファイルをドラッグ&ドロップして曲リクエストをするWeb画面を作成。機材係とは別の参加者のWindowsノートPCで曲検索からリクエストまでできるようになった。この時点ではまだ、自動的に再生する機能はないので、リクエストされた画面を見て機材係が手動でプレイリストに登録する仕組み。
  • 2014年12月
    ファイル検索をWeb画面の機能の中に搭載。これによりノートPCだけでなく、スマホとかWifiアクセスできる端末のブラウザで曲検索と予約リクエストが行えるようになった。自動再生機能はまだない。
  • 2015年 1月
    GitHubにsource公開。
    「エロゲソングが好き」コミュニティのカラオケオフで使用。自分主催以外のカラオケオフでの初デビュー。
  • 2015年 2月
    自動再生機能実装。
    プレイヤーコントローラ実装(手元の端末から音量、OnOffボーカル切り替え、曲終了などの再生中のプレイヤー操作を可能にした)
    banditの隠れ家と連携して、歌手名、作品名、ブランド名から曲検索できる仕組みを作成(エロゲソング専用)
  • 2015年 3月
    スタイルシート分離(デザインをスタイルシートの変更で変えることができるようになった)
    動作安定化(時々Webサーバが落ちてしまうことがあったのでダウンしたら自動的に再起動するようにした)
  • 2015年 4月
    スマホ用画面デザイン作成
    mp3+カラオケタイムタグファイル形式に対応。foobar2000で再生。

No Comments

カラオケ動画作成のために作ったavisynth関数(1)

avisynthだけでカラオケ動画を作る人はそういなさそうだし需要はなさそうだけど、
先月のカラオケ動画作成の時にいくつか関数を作ったので晒しておく。
ってか備忘録

うちが関数を使うときは編集しているavisynthスクリプトの最後に関数を書いておいて、本文から呼び出してる。しょっちゅうOS入れ替えるから別ファイルにして置いておくと入れ忘れちゃうしね。

  •  ぬるぬるフレームレート変更関数 Part2

ぬるぬる60fps化動画を作る時に最後に1行加えておけば簡単に60fps化ができる関数。
いままで指定できるfpsが整数だけだったんだけど今回から分数指定ができるようになって
汎用的に使えるようになった。

クソ重いからこれを付けてプレビューするのは無理っ。編集が終わって最後にチョコっとつければ簡単に高FPS化

準備

http://avisynth.org.ru/mvtools/mvtools2.html
から取ってきたMVtoolsのライブラリをAvisynthのプラグインフォルダに置いておく、
MT対応avisynthが必要(2.6.0以降なら大丈夫)

書式

nurunuru2(clip c, int “targetfps”, int “targetfps_den”)
c 対象動画クリップ
targetfps 目的のfpsの分子
targetfps_den 目的のfpsの分母(省略すると1)

たとえば
29.97fpsだと targetfps=30000 targetfps_den=1001
59.94fpsだと targetfps=60000 targetfps_den=1001
を指定する。

使用例

movie=ffVideoSource(“op.mpg”)
return movie.nurunuru2(60)

これで簡単に60fps化

source

function nurunuru2(clip c, int “targetfps”, int “targetfps_den”){
targetfps_den = default(targetfps_den, 1)
SetMTMode(2)
super=c.MSuper(pel=4, hpad=0, vpad=0)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=8, blksizev=8, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=8, blksizev=8, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, blksizev=8, searchparam=2, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, blksizev=8, searchparam=2, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=8, blksizev=8, searchparam=1, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=8, blksizev=8, searchparam=1, search=3)
c.MBlockFps(super, backward_3, forward_3, num=targetfps, den=targetfps_den, mode=0)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
}

 

  •  フレーム数指定動画スピード変更関数

いままで、動画のスロー化とかを.ChangeFPS(15).Assumefps(movie)みたいにして数字をいろいろ入れ替えて試していたけど、
倍率を考えるより目的のフレーム数を指定した方が簡単だと思いついた。

書式

changespeed_frame(clip c,int “flamenum”)
c 対象動画クリップ
flamenum 目的のフレーム数

使用例

movie=ffVideoSource(“op.mpg”)
fullvideo=movie.Trim(0,300)++movie.Trim(300,400).changespeed_frame(150)++movie.Trim(400,500)
return fullvideo

動画の300~400フレームの部分を150フレームになるようにスロー再生にする。

source

function changespeed_frame(clip c,int “flamenum”)
{
return c.Changefps(c.FrameRate/c.FrameCount*flamenum).Assumefps(c.FrameRate)
#     return c.nurunuru2(targetfps = c.FrameRateNumerator*flamenum,targetfps_den=c.FrameRateDenominator*c.FrameCount).Assumefps(c.FrameRate)
}

上のnurunuru2関数を使うとキレイになるかもしれないので使いたい方をコメント(#)付けたり外したりして使ってみて。

割り算の切り捨ての関係で目的のframe数から±1するかもしれない。

  •  拡大縮小付き静止画スクロール関数

静止画を単純にスライドショーにするんじゃなくて、
スクロールするとなんかかっこよくなるよね。
って考えて作ってみた。
いろいろ盛り込んでいくうちにどんどん長くなっていった。
と書いているうちに拡大縮小は別関数に分けた方がいいような気がしてきた。

とりあえず、使うにはスクロールさせるのに十分大きな解像度(ピクセル数)の画像1フレームのクリップを用意して、
開始の中心点と終了の中心点、生成するフレーム数を指定するととりあえずスクロールしてくれるはず。

スクロールを始める前とかスクロールした後にしばらく絵を止めていたいことがよくあるから
それも指定できるようにしてる。
ついでにスクロールしながら拡大縮小できるかもしれない(未検証)

引数が多すぎるから簡単に呼べる中間関数を作った方がいいな。

プレビューするときは関数内のSpline36ResizeをPointresizeにしておけば軽くなる。
(条件分岐で切り替えたいけど困ったことにavisynthではif文が使えない)

書式

zoomscroll(clip imageclip, clip baseclip, int start_x, int start_y, int end_x, int end_y, int allframes, int “startstopframes”, int “endstopframes”, int “bcolor”, float “startzoom”, float “endzoom”, bool “preview”)

# (clip) imageclip : スクロールする画像(1フレームでいい)
# (clip) baseclip : 形式を合わせる動画
# (int)  start_x : 開始画像の中心点(x)
# (int)  start_y : 開始画像の中心点(y)
# (int)  end_x : 終了画像の中心点(x)
# (int)  end_y : 終了画像の中心点(y)
# (int)  allframes : 生成フレーム数
# (int)  startstopframes : 開始画像静止フレーム数 (default : 1)
# (int)  endstopframes   : 終了画像静止フレーム数 (default : 1)
# (int)  bcolor : 追加枠色 (Default : $FFFFFF)
# (float) startzoom : 開始画像拡大率 0.1~1(等倍)~N (default : 1)
# (float)   endzoom : 終了画像拡大率 0.1~1(等倍)~N (default : 1)
# (bool) preview    : プレビューフラグ (trueだとpreview用に高速に動く予定:未実装)

使用例

length=297
e_1=Imagesource(“01_natuki.png”,start=0,end=1,fps= movie.FrameRate)
e_2=Imagesource(“02_nene.png”,start=0,end=1,fps= movie.FrameRate)
e_3=Imagesource(“03_kagami.png”,start=0,end=1,fps= movie.FrameRate)
e_4=Imagesource(“04_numabuti.png”,start=0,end=1,fps= movie.FrameRate)
e_5=Imagesource(“05_tsukumo.png”,start=0,end=1,fps= movie.FrameRate)

e_1=e_1.Spline36Resize(1280,1216).zoomscroll(movie,640,856,640,360,length,1,40)
e_2=e_2.Spline36Resize(1280,1216).zoomscroll(movie,640,856,640,360,length,1,40)
e_3=e_3.Spline36Resize(1280,1216).zoomscroll(movie,640,856,640,360,length,1,40)
e_4=e_4.Spline36Resize(1280,1216).zoomscroll(movie,640,856,640,360,length,1,40)
e_5=e_5.Spline36Resize(1280,1216).zoomscroll(movie,640,856,640,360,length,1,20)

ss=Dissolve(e_1,e_2,e_3,e_4,e_5,35).Changefps(movie).ConvertToYV12

5枚の絵をしたから上へスクロールするものを5つつないだものができる。

source

function zoomscroll(clip imageclip, clip baseclip, int start_x, int start_y, int end_x, int end_y, int allframes, int “startstopframes”, int “endstopframes”, int “bcolor”, float “startzoom”, float “endzoom”, bool “preview”){

## set default value

startstopframes = Default(startstopframes,1)
endstopframes   = Default(endstopframes,1)
bcolor = Default(bcolor ,$FFFFFF)
startzoom=Default(startzoom,1)
endzoom=Default(endzoom,1)
preview=Default(preview,false)

bigimageclip = imageclip.AddBorders(baseclip.Width/2,baseclip.Height/2,baseclip.Width/2,baseclip.Height/2,bcolor)

bigimageclip = bigimageclip.Loop(allframes,0,0)
# return bigimageclip.info

## Calc Start Image
s_moviesize_x = Ceil (baseclip.Width / startzoom)
s_moviesize_y = Ceil (baseclip.Height / startzoom)

s_croppoint_x = start_x + baseclip.Width/2 – Round(s_moviesize_x/2)
s_croppoint_y = start_y + baseclip.Height/2 – Round(s_moviesize_y/2)

## Calc End Image
e_moviesize_x = Ceil (baseclip.Width / endzoom)
e_moviesize_y = Ceil (baseclip.Height / endzoom)

e_croppoint_x = end_x + baseclip.Width/2 – Round(e_moviesize_x/2)
e_croppoint_y = end_y + baseclip.Height/2 – Round(e_moviesize_y/2)

## create clip
resizefunc=”Pointresize” # not work
#resizefunc=”Spline36resize”

bigimageclip = bigimageclip.assumefps(baseclip.FrameRate)

startimage = bigimageclip.Spline36resize(baseclip.Width, baseclip.Height, s_croppoint_x, s_croppoint_y, s_moviesize_x, s_moviesize_y).Loop(startstopframes,0,0)

endimage = bigimageclip.Spline36resize(baseclip.Width, baseclip.Height, e_croppoint_x, e_croppoint_y, e_moviesize_x, e_moviesize_y).Loop(endstopframes,0,0)

animateimage = bigimageclip.Animate(0,allframes-startstopframes-endstopframes, resizefunc, baseclip.Width, baseclip.Height, s_croppoint_x, s_croppoint_y, s_moviesize_x, s_moviesize_y,   baseclip.Width, baseclip.Height, e_croppoint_x, e_croppoint_y, e_moviesize_x, e_moviesize_y)

## return clips

return animateimage
return startimage ++ animateimage ++ endimage

}

No Comments

iPhone4s動画再生環境がちょっと改善

iPhone4で

  1. level 3.1以下じゃないとiTunesで転送すらできない。
  2. マルチ音声トラックにすると同時になってひどいことになる。
  3. 字幕を別ファイルのassにしておいても合成表示されない。

ってのが原因で動画再生機能が使えねーよ状態だったのが、

「1.」 は 4Sになって解消(おそらくlevel4.1くらいまではいけそう)。「3.」はそもそもAndroidでも厳しいから自分でPlayerアプリを作るとかしないと無理っぽいのであきらめ気味(最近字幕エフェクトに凝りだしたから焼き付けでいいような気がしてきた)。

というところで「2.」の解決法があったのでやっと使い物になりだした。

こちらのサイトにiPhoneでもちゃんと動作するmp4boxのオプションが書いてあった。

いままではYambをつかって映像と音声の合成をしていたんだけど、YambではiPhone対応のオプションが指定できない。

情報が載っているサイトに替わりで動きそうなGUIツールが公開されていたけど、なぜかうちで動かすと処理に失敗して合成元のファイルが消えるというひどい動きをしてくれたので、自分でバッチファイルをつくった。

——— (ここから) ————–

rem mixonoff <Video track> <OnVocal_audio> <offVocal_Audio>

if “%~1″==”” goto USAGE
if “%~2″==”” goto USAGE

set mp4box=C:\progns\x264\MP4Box.exe
set filename=”%~dp1%~n1%_OnOff.mp4″
set filename=%filename:_noaudio=%
if “%~3″==”” goto USAGE

if “%~4″==”” goto ONOFF

if “%~5″==”” goto PLUSONOFF

:ONOFF
%mp4box% -add “%~1” -add “%~2”:lang=jpn:group=1:name=OnVocal -add “%~3”:disable:group=1:name=OffVocal %filename%
pause
exit /b

:PLUSONOFF
%mp4box% -add “%~1” -add “%~2”:lang=jpn:group=1:name=OnVocal -add “%~3”:disable:group=1:name=OffVocal “%~4”:disable:group=1 %filename%
pause
exit /b

:USAGE
echo “mixonoff <Video track> <OnVocal_audio> <offVocal_Audio> “
pause
exit /b
--------- (ここまで) --------------

本文に書くと変になるので ダウンロードリンク置いとく mixonoff

set mp4box=のところにmp4boxの実行ファイルを書いて保存して

上から映像トラック、OnVocalトラック、OffVocalトラックとなっている状態でエクスプローラーで3つのファイルを選択してバッチファイルにドラックアンドドロップ。そうすると「映像ファイル名(拡張子なし)+_OnOff.mp4″というファイル名の動画の出来上がり。

GUIツールは作るのあんまり得意じゃないんでとりあえずバッチファイルで。(そのうち作るかも)

モバイルで再生するためにわざわざ再エンコする気にはならないけど、これならエンコードしないからすぐ終わる。どうしてもモバイルで聞きたいものと今後作るものはこれで作っていくことにしよう。

 

2 Comments