ラベル ツール の投稿を表示しています。 すべての投稿を表示
ラベル ツール の投稿を表示しています。 すべての投稿を表示

2020年5月11日月曜日

仮想カメラ OBS-Studio + OBS-VirtualCamプラグイン をソースからインストール方法(Mac編)

OBS-Studio + OBS-VirtualCamプラグインを使えば、下記のように遠隔会議システムで利用するカメラで、映像や画像等メディアリソースを合成して仮想カメラとして見せる方法があるようです。うまく活用すれば、プロジェクタに投影したプレゼン資料を、あたかも講師(本人やアバター等)がその場にいて発表しているような合成ができるかもしれません。
そうしたことにどこまで意義があるかわかりませんが、MacでのOBS-Studio + OBS-VirtualCamプラグインインストールは、私の環境では一筋縄ではいかなかったので、インストールについて備忘録を残します。

インストールの流れ


*OBS-VirtualCamプラグインをインストールするためには、OBS-Studio本体もソースからビルドする必要があるようです。試しにバイナリの OBS-Studioに組み込もうと思いましたが、うまくいかず。
基本的には、OBS-VirtualCamプラグイン(Mac版)が置いてある GitHubの Building の通りに進めます。ただし途中でエラーになったりしてうまくいかない場合があります。どういうエラーに遭遇して、どのように解決したのかも含めて説明していきます。

STEP 1. 準備


インストールに必要な、コマンドツール、コンパイルシステムのインストールが必要です。いずれもターミナルアプリ(Macintosh HD > ユーティリティ内)上で操作します。それぞれ参考先のサイトを参考にインストールしてみてください。

1. Homebrew のインストール(Xcode内のコマンドツールも自動的に入る)


2. Git ツールのインストール


STEP 2. OBS-Studio のイントール

以下、青文字の部分が、ターミナルで実行するコマンドです。
これを入れてEnterをプッシュすることになります。
$HOME(/Users/ユーザ名)以下に
obs-studio
フォルダを作って、その中にインストールすると仮定します。

cd $HOME
git clone --recursive https://github.com/obsproject/obs-studio.git
brew install FFmpeg x264 Qt5 cmake mbedtls swig

=== (エラー1)以前から Homebrew を使っていた場合 ===
Error: Permission denied @ apply2files - /usr/local/lib/pcsc/drivers/scmccid.bundle
これは、brew cleanup でエラーがでて途中で止まっています。
https://github.com/Homebrew/homebrew-core/issues/45009 を参考に解決しました。

brew doctor
と診断すると、いろいろ出てきて
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/lib/pcsc/drivers/scmccid.bundle
という今回のエラーに関係するところが出てきます。

sudo rm  -rf  /usr/local/lib/pcsc/drivers/scmccid.bundle
brew cleanup
でエラーがでないことを確認した上で、改めて
brew install FFmpeg x264 Qt5 cmake mbedtls swig 
でエラーがでないことを確認
========================================

mkdir build
cd build
export QTDIR=/usr/local/opt/qt
cmake .. && make -j

STEP 3. OBS-VirtualCamプラグイン のインストール


$HOME/obs-mac-virtualcam フォルダにインストールされます。

git clone https://github.com/johnboiles/obs-mac-virtualcam.git
cd obs-mac-virtualcam
export OBS_DIR=$PWD/../obs-studio
mkdir build
cd build
cmake -DLIBOBS_INCLUDE_DIR:STRING=$OBS_DIR/libobs -DLIBOBS_LIB:STRING=$OBS_DIR/build/libobs/libobs.dylib -DOBS_FRONTEND_LIB:STRING=$OBS_DIR/build/UI/obs-frontend-api/libobs-frontend-api.dylib -DQTDIR:STRING=/usr/local/opt/qt ..
make -j

=== (エラー2)すでに XCodeをインストールしていた場合 ===
3 warnings generated.
make[1]: *** [src/obs-plugin/CMakeFiles/obs-plugin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 98%] Built target dal-plugin
make: *** [all] Error 2
'bootstrap_create_server' is deprecated: first deprecated in macOS 10.10

新しいバージョンのXCode にアップデートされていて、一度も Xcodeを開いていない場合に上記エラーになる場合があります。一度アプリケーションフォルダにインストールされている XCodeを開くと、command components 追加を要求してくると思うので、これをインストールします。もし求められなければ、ターミナルより
sudo xcodebuild -runFirstLaunch
を入力して、インストール画面をだしましょう。

そして
make -j
を再度実行します。
========================================

=== (エラー3)下記のエラーになってしまった場合(make -j) ===
make[2]: *** No rule to make target `../../obs-studio/build/libobs/libobs.dylib', needed by `src/obs-plugin/obs-mac-virtualcam.so'.  Stop.
make[1]: *** [src/obs-plugin/CMakeFiles/obs-plugin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 63%] Built target dal-plugin
make: *** [all] Error 2

cd $HOME/obs-studio/build
make -j

と再度、OBS-Studio をコンパイルしましょう。

cd $HOME/obs-mac-virtualcam
cd build
make -j

と改めて実行してエラーがでないことを確認します。
========================================

最後に、ビルドできたOBS-VirtualCamプラグインを本体のほうへコピーします。
$OBS_DIR は、すでに
*export OBS_DIR=$PWD/../obs-studio
と環境変数として、 $OBS_DIR は、$HOME/obs-studio のフォルダを指しています。

cp src/obs-plugin/obs-mac-virtualcam.so $OBS_DIR/build/rundir/RelWithDebInfo/obs-plugins/
sudo rm -rf /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin && sudo cp -r src/dal-plugin/obs-mac-virtualcam.plugin /Library/CoreMediaIO/Plug-Ins/DAL

これでインストールは完了です。

STEP 4. 実行してみる


cd $HOME/obs-studio/build/rundir/RelWithDebInfo/bin
./obs

でウィンドウが立ち上がり、ツールにある Start Virtual Camera を選択すると、Stop Virtual Camera に切り替わって起動しているか確認します。

→ 

実際の使い方については冒頭に挙げた
あたりを参考にしてみてはと思います。

2020年5月11日 @kimipooh


2018年7月3日火曜日

greple + App::Greple::msdoc で Microsoft Office ドキュメントをコマンドラインから検索、テキスト抽出(出力)する!

知人がFacebookでつぶいていたのをみて、面白そうだったので早速手持ちの Mac(macOS 10.13.5)にインストール。ちょっとインストールに手間取ったので、備忘録として残しておきます。

参考情報


greple を Mac へインストール


ターミナルより、次の3つのコマンドでインストールできます。
※参考情報であげたサイトをみると brew (要 Homebrewのインストール)でインストールしてますね。

sudo cpan install App::Greple::perl
sudo cpan install App::cpanminus
sudo cpanm install App::Greple::msdoc

cpan は perl モジュールをインストールするためのツールで、macOS には標準搭載されています。これを使って greple をインストールします。 /Library 以下に書き込む(標準 perl を使うので)ため、sudo を使って管理者権限でインストールします。

greple コマンドは、
  • /usr/local/bin/greple 
にインストールされます。

次に cpanm コマンドをインストールします。これは App::cpanmius というモジュールをインストールすることで利用できるようになります。

cpanm コマンドは、
  • /usr/local/bin/cpanm
にインストールされます。
cpanm をインストールした理由は、App:Greple::msdoc(GitHub)のINSTALL項目に、「cpanm App::Greple::msdoc」とあったので、cpanm があったほうがいいのだろうな、、という軽い気持ちでした。

で、そのコマンドを叩いてインストールしたのでした。

/usr/local/bin への PATHを通そう!


macOS 標準の bash シェルを使っているなら、
which greple
/usr/local/bin/greple
とPATHがすでに通っていれば何もしなくてもよいのですが、
which greple と /usr/local/bin/greple 等 greple のPATHが表示されないなら、PATHを設定する必要があります。

 ~/.bash_profile
export PATH="/usr/local/bin:$PATH"
を追加しておきましょう。

使ってみよう!


とまぁ、インストールは cpanm をどうやってインストールするのかなとかで少し手間取りましたが、終わってみれはあっさりとインストールできました。インストールしたからには使ってみなければ!ですね!

Microsoft Office 2016 for Mac で、2種類のフォーマットの Word文書を用意してみた
  • test.doc (Word 97-2004 までの形式)
  • test.docx (Word 2007 以降の形式)
でまぁ文章は上記の通りですね。あまり考えてません (^^;
ダウンロードフォルダに test.docとtest.docx を置いたとします。

現在の Word 形式の場合


greple -Mmsdoc --dump  ~/Downloads/test.docx >  ~/Downloads/test.txt

としてダウンロードフォルダに text.txt として出力してみましょう。
それを CotEditor というテキストエディタで開きます。


ほうほう、改行コードは LF なのね。。また段落(Enter)ごとに空行が入るのは仕様だそうです(参考情報によれば)。ちなみに、Shift+Enter (改行)は、認識しないようで、テキストデータで出すと、改行なしで出力されます。

を出力すると


になります。

画像を途中で挟んでも、そこは無視されてテキスト部分だけが出力されます(当たり前か)。

古い Word 97-2014 形式の場合


greple -Mmsdoc --dump  ~/Downloads/test.doc >  ~/Downloads/test2.txt
SKIP /Users/◯◯/Downloads/test.doc

あらま、古い形式は対応していないようですね。
test2.txt も空でデータが入っていません。

検索してみよう


greple -Mmsdoc '検索'  ~/Downloads/test.docx


ふむふむ。まぁ テキストファイルに落とし込めたなら、あとは別ツールを使えばいいので、このあたりでいいかな。

PowerPoint もいけるそうだが、どうやる?


折角なので、発表に使ったデータでやってみましょう。
のように 64スライドもあります。画像も沢山つかっています。
これを test.pptx にリネームして、ダウンロードフォルダにいれておきます。

greple -Mmsdoc --dump  ~/Downloads/test4doc >  ~/Downloads/test4.txt

とするとあっさりできましたね。
ちなみにサクッと出来ました。time で時間をはかるとほぼ一瞬。

time greple -Mmsdoc --dump ~/Downloads/test4.pptx> test4.txt
real 0m0.297s
user 0m0.218s
sys 0m0.047s

はやいな!
データは、スライドにページ番号をいれていたので、
開幕〜いきますよ!
9
のようにスライド9番目だなというのは分かります。ただスライドの順番がバラバラですねぇ。スライド28→7→8→9→10→22→11→.. 


スライド44の文字化け


は、下図のように元スライドをみると「→」か。。まぁ一部このような部分もありますが、ほぼテキストをうまく取り出しているのですごいですね!



じゃあ、Excelはいけるの?いけるよね?


Excelデータを test5.xlsx としてダウンロードフォルダに入れる

greple -Mmsdoc --dump ~/Downloads/test5.xlsx > test5.txt

さすがに意味不明なデータになりますね。



元は、下記のようにA - E にデータが入っていました。もちろんテキストデータとしては問題なく出力できていますが、どの行かわからなーいという感じに。




簡単に使えるようにエイリアス設定をしておこう!


greple というコマンド自体覚えておける自信がありません。
ここは alias コマンドで好きな名前で使えるようにしちゃいましょう。
macOS の標準シェルは bash です。ので、 ~/.bash_profile の末尾に、

alias msdump='greple -Mmsdoc --dump'

を追加しておけば、以後

msdump  ◯◯.docx  > △△.txt 

のように、コマンドオプションを知らなくても使えるようになりますよ。

XML形式での出力も可能


何かプログラム処理をしたいなら、そういうのもありかもしれません。

greple -Mmsdoc --dump --indent ~/Downloads/test.docx >  ~/Downloads/test.xml

などのように --dump に加えて --indent オプションを追加するだけです。
すると下図のように、XML形式のデータとして出力できますね。



とちょっと面白そうなコマンドだなと思っていろいろ試したのでした。これはなかなか良さそうですね!

2018年7月3日 @kimipooh




2017年3月1日水曜日

【備忘録】日本語IMEが表示されず日本語入力できない(Windows10へのアップグレード端末)

知人PCで久々に特殊事例に遭遇したのでメモしておきます。
すべての原因は、Windows10への強制アップグレードのせい。

日本語IMEが突然使えなくなった


タスクバーにも出てこずと今頃になってそういう症状がでたとのこと。
そういう人は割といるらしい。
つまり ctfmon.exe が起動できないことが原因かな。

ctfmon.exe のショートカットを、スタートアップに入れるべし

ctfmon.exe をコピーして、スタートアップに入れる。。。という情報が沢山ありますが、それやっちゃうと、ctfmon.exe が Windows Updateでアップデートされても反映されないのでダメだよねぇと思ったので記録として残すことにしました。

ctfmon.exe の場所


下記のいずれかにあるはず。
  • C:\Windows\System32
  • C:\Windows\SysWOW64
ctfmon.exeのショートカットをデスクトップにまずは置こう。

スタートアップの場所


AppDataは隠しフォルダになっているので、一時的に隠しフォルダを表示する設定にしてみてください。参考:https://helpx.adobe.com/jp/x-productkb/global/cpsid_87117.html

あとは、下記の「スタートアップ」フォルダに、ctfmon.exe のショートカットをコピーするのみ。
  • C:\ユーザー(Users)\ユーザーの名前\AppData\Roaming\Microsoft\Windows\スタートメニュー\プログラム\スタートアップ
2017年3月1日 @kimipooh

2016年11月4日金曜日

MacOSX で 写真の日付(EXIF情報)を一括変更する方法

Automatorでアプリ作成したいなーと思いつつ、そうすぐにできなかったので当面断念。

Finderから選択したファイルのパス(複数)と、Apple Scriptで日付入力したデータを纏めて、シェルスクリプトの変数の引数として渡せればいけるはずなんですけどねー。

以下、コマンドラインツール、Exiftoolを使ったやり方です。
詳細は
のブログで詳しく書かれているのでそれみたらわかると思います。
以下は日付だけ変更する備忘録です。

何故必要?


必要性を書き忘れていたので追記。
Googleフォトに写真をバックアップしてますが、時系列に表示されるのがとても重宝します。しかし人に撮影してもらった写真とか、アップロードするとダウンロードした日付とかになって、、おおおおお、、、ってなったりします。そういうのを修正したい!ってことです〜

1. ツールのダウンロードとインストール