デジタル映像のスマホ持ち出し検討
録画などの画像を外で見るにはどうするか、ということですが、今はスマホで簡単にできる用に思えます。でもよく考えると結構面倒だったりと。家の中ではDLNAサーバや東芝のregza、vardiaで楽しんで映像の移動や場所を選ばず視聴が楽しめますが、モバイルで移動や視聴するには昔より面倒になったと思えます。理由は明白、デジタル化です。
私のやりたいことは、
・外で取りためた番組を消化したい
この一点のみです。
更に条件は、
・できればiPhoneで‥‥
いま使っているのがこれなんで、なかなか敷居が高いです(^^;
で、時間ができてきたので、色々試してみたメモを残しておきます。結局良い案はまだ無いです。
- 過去おさらい
まだ地デジではない頃(コピーフリー)は、単にモバイルでどのように映像を見るかだけでした。
その頃はモバイルの性能もプアでメモリの値段も相当高かったので、如何に容量を小さくするかだったと思います。
私はwillcomのades使ってました。
これは映像のフォーマットがh.264コーデックが再生できるプレイヤー内蔵だったので、このコーデックに変換できれば、後はメモリーカードにコピーするだけ。変換は携帯道が変換君を使っていました。これは結構方言が強いので、ドライバ(?)を上手く選ばないと音が出なかったりとかあったような気がします。詳しくは忘れてしましましたが、携帯ゲーム機のPSPと同じプロファイルで作って変換したモノが共通に使えた記憶があります。
iPhone3Gを使い出して、こっちもなんとadesと同じコーデックで使えたもので、カードに入れるのではなく、iTune経由という、ちょっと面倒はありますが、これで問題なく使えていました。この頃に使っていた便利なアプリを紹介します。(未だに使っている)
- Folders
単なるプレイヤーなのですが、映像データの格納Folderを分けられて、何よりも一番私にとって有用なのは、Folder毎にパスワードをかけられます。iPhoneの写真の中に入れたくない動画とかはこちらにアップロードしておけば、たぶん心が安まることも有ると思います。
- TIOD
これの特徴はなんと言ってもiPhoneでmpgが見れるということに尽きます。iPhoneの動画はH.264が基本(movファイルですね)なので、他の動画フォーマットは受け付けてくれませんが、このアプリは変換して元ファイルがmpgでも再生することができます。玄箱の中のmpg映像を見るときには必須ですね。
- pDownloader
こちらは初期の頃によく使っていましたが、youtubeをセーブできます。youtubeはマイナーなモノだと時間が経つと消えてしまいます。その前に救出しておく、という用途です。これはiPhoneの写真の中に追加されます。
iPhone4Sに乗り換えても未だに使っている、神アプリです。
- Folders
- 今の試み
メモリーの追加できないiPhoneなので、地デジのでかい容量の番組などを持ちだそうと思ったらやっかいです。そこでVR画質(昔のアナログ放送)に落とせば、今まで通りの方法で変換(H.264で圧縮)して持ち出せます。ただ、これはイリーガルなアレをやらなければならないので、面倒だし心が痛みます。よって別の方法がないか模索しています。
キーワードはDLNAとDTCP-IPです。
DLNAはmedhiatombなどで、玄箱の中に像を溜めてどこのテレビやタブレットなどでも見れるようにしたわけですが、デジタル家電の映像をやりとりするにはスタンダードとなりつつあるのでこれを使えないかということです。ただ、自分で作ったmpg映像なら良いですが、こと地デジなどregza、vardiaで撮ったものは普通にはmpgにできないのでダメです。
そこで最近にぎわっているDTCP-IP勧告です。これは平たく言うと、著作権の関係する映像をコピー/ムーブするための条件とでも言いますか、これの条件下で認定を受けたソフト(アプリ)により、条件付きですが著作物(地デジなどの映像)をムーブしても良いですよ、という感じになるようです
。最近のスマホはようやくこれに対応してきています。
中でもデファクトスタンダード的な存在がデジオンのDiXiMでしょうか。富士通やNEC、最近は京セラのスマホに元々搭載されているようです。DTCP-IP自体が日本の地デジなどに対するローカルな仕様なので、海外製スマホにはDTCP-IP対応機能は搭載されていません。後から対応したアプリを待って入れるしかないわけですね。つまり地デジを持ち運ぶなら国内製スマホが良いって事になりますかね。
そうそう、私の感覚では、ソニーとパナは何となくDiXiMではなく独自路線を行っているような気がします。ビエラの専用アプリやnasne専用のアプリが有ったりと、いつもの汎用とはほど遠いやり方で囲い込みをしていますね。その当たりは実はandroid使ったことがないのでわかりませんけど‥‥。
で、持ち出すことはさておき、DTCP-IPのアプリを試してみました。
- Twonky Beam
最もメジャーではないかと思うアプリです。これでregza(RD-BR610)のAVCRECに変換した映像がiPhoneで見れました。ただしiPhone4Sの限界か8.0に圧縮したものは見れますが12.0は結構厳しいです。
またDRは対応していないしビットレートが鬼なので見れません。あと、スカパー!からダビングした映像はファイルの中身がavcrecなのかどうかわかりませんが(見た目AVCRECと同じアイコン)、これはVer3.4.4-39では音声のみで映像は見れませんでした。
- MLPlayer DTV
これは以前MLPlayer LiteというDLNAプレイヤーをダウンロードして使おうと思っていたのですが、結局iPhoneのH.264縛りで見れませんでした。リスト表示など操作系は非常に秀逸なのですが、結局映像が見れずにあきらめた事があります。今回DTVというバージョンでその辺が変わったと期待したのですが‥‥。こちらはサーバがパナとソニー専用だそうで、ウチの東芝製はその時点ではじかれました。結局またリストは出るものの機種ではじかれて見れませんでした。
そもそも論ですが、メモリーの制約のあるiPhoneで映像を持ちだそうというのが無理なんでしょうか? 64GBならそれなりに入るとは思いますが、メモリーカードを換えるなどの気軽さは有りません。さらにiTuneで転送とかiPhoneをサーバにしてwebからiPhoneにアップロードとか、非常に面倒です。やはりDOS時代に育った私としては、cpコマンドでコピーしたいですね。
というわけで、今使っているiPhone4Sは発売と同時に買ったので、そろそろ2年になります。次のおもちゃはandroidにしてDTCP-IPを弄ろうかな。
- Twonky Beam
浦島状態
アップデートできないのは不安なので、この時間のあるときにやってしまいたかったので、とりあえず/etc/apt/sources.listのlennyを全てsqueezeに置き換えて、aptitude update、aptitude upgradeをなにも考えずにやって見ました。
まぁ一発でうまくいくことは稀でだいたい何かあるモノです。時間があるときはむしろその方が楽しかったりするのですけどね(M?)
今のところの問題点は有る意味非常にやっかいです。原因と対策は簡単なのですが‥‥。
エラーが出たのですが、そのエラーとはHDDの容量がゼロということで、至極明快なエラーでした。とはいうものの、新しいものを買って付ければ良いというわけではなく、パーテーションの変更という面倒な作業があります。パーテーションを切り直すためには、普通に考えればフォーマットし直しです。2TBもあるHDDを待避する手間たるや想像を絶する時間がかかるのでは(まぁ待避するのは機械の仕事ですが)
何か上手い方法はないかと考え中です。
玄箱DLNAサーバ化(mediatomb)
テレビをREGZAやBRAVIAに替えてから、VARDIA(東芝のHDDレコーダ)をサーバとしてHD画質をDLNAで他のテレビで見れることから、「DLNAもいいな」と考えるようになり、やってみようかとなったわけです。玄箱だとSD画質ですが(暗号化されたファイルはダメ)、MediawizだとLinktheaterを立ち上げる必要がありましたが、DLNAだとテレビ自体に機能があるので、テレビだけで操作できるので一手間省けます。そんなこんなでインストールしてみました。
- mediatombのインストール
- 設定
- 問題発生
DLNAサーバはたくさんありますが、利用者の多そうな(?)mediatombにしてみました。ただ、apt-getでバイナリからインストールできるものは0.11.0-3と多少古いようなので、最新のものをsourceからインストールしてます。これだとISOも使えるようです(まだ試してないですが)
apt-getだとこれがインストールされる
# apt-cache show mediatomb
Package: mediatomb
Priority: optional
Section: net
Installed-Size: 96
Maintainer: Andres Mejia
Architecture: all
Version: 0.11.0-3
Depends: mediatomb-daemon (>= 0.11.0-3), iceweasel | firefox | www-browser
Filename: pool/main/m/mediatomb/mediatomb_0.11.0-3_all.deb
Size: 18064
:
:
今回は最新のpkgのsourceを入手して使いました。
sourceはここから入手
http://mediatomb.cc/pages/download
現状最新版はmediatomb-0.12.1.tar.gz
/usr/local/srcで展開
tar zxvf mediatomb-0.12.1.tar.gz
その前に、必要なpkgをインストール。メモリを圧迫するため最低限表示に必要なモノだけを入れた。
# aptitude install build-essential
# aptitude install zlib1g-dev
# aptitude install libmysqlclient-dev
# aptitude install libid3-dev
# aptitude install libexif-dev
# aptitude install libmagic-dev
# aptitude install libmozjs-dev
# aptitude install mysql-server
mysqlをつかうかlite3を使うか微妙なところだけど、これは好みの問題で。
mediatombのsrcを展開したディレクトリに移り、makeします。
# ./configure
# make
# make install
私の場合、どうしても「expatがないよ!」的なエラーでconfigureが正常終了しなかった。aptitude install expatを実行しても、やはりconfigureで止まってしまう。
半ばヤケになりapt-getでインストールできるmediatomb-0.11.0でいいかな‥‥、と思いましたが、ダメもとでexpatをsourceからインストールしてみたところ、うまくいきました。
apt-get source expatで/usr/local/sourceにダウンロードし、expat-2.0.1のディレクトリで./configureを実行。特に設定するところはないので、makeしてmake installを実行。
その後、mediatombをconfigureを実行したところ無事終了。あとはmake;make installで終了。
起動する前に、これは先人たちのhpを参考に、sqlのおまじない。
mysqlのデータベースを作成します。
# mysql -p
mysql> CREATE DATABASE mediatomb;
mysql> GRANT ALL ON mediatomb.* TO 'mediatomb'@'localhost';
mysql> ^d
次にテーブルを作成します。
# mysql -p mediatomb < /usr/local/share/mediatomb/mysql.sql(パスワードはmysqlをインストールしたときのパスワード)
そこで一度起動すると、root/.mediatombの下にconfig.xmlが作成されます。
※できるディレクトリはインストール時に/etcの下にmediatomb.confがあるかないかで変わるみたいです
config.xmlは、0.12.1ではあまりいじるところは無くて、
<protocolInfo extend="yes"/>を
no→yesに替えたくらいです。
mediatomb.confの設定をしておきます。
sourceからインストールした弊害なのか、私の環境ではmediatomb.confとinit.d配下にできるはずの起動用scriptファイルmediatombが有りませんでした。仕方がないので自分で作ることに。
sourceを展開したディレクトリの下(/usr/local/src/mediatomb-0.12.1/scripts)に元となるファイルがあるので、それを適宜コピーして、自分の環境にあわせてディレクトリを修正すればOK。
/etc/init.d/mediatomb
miz-testbox:/etc# less /etc/init.d/mediatomb
#!/bin/sh
#
# mediatomb This script starts and stops the mediatomb daemon
#
# chkconfig: - 95 30
# processname: mediatomb
# description: mediatomb is a daemon process which provides a UPnP service
# config: /usr/local/etc/mediatomb
# config: /usr/local/etc/mediatomb/config.xml
# pidfile: /usr/local/var/run/mediatomb.pid
# Source default mediatomb configuration
. /etc/mediatomb.conf
MEDIATOMB="-d -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE -l $MT_LOGFILE -m $MT_HOME
-f $MT_CFGDIR -p $MT_PORT"
[ -f /usr/local/bin/mediatomb ] || exit 0
[ -e /usr/local/etc/default/mediatomb ] && . /usr/local/etc/default/mediatomb
# By default it's all good
RETVAL=0
# See how we were called.
case "$1" in
start)
if [ ${MT_ENABLE} = false ] ; then
echo "mediatomb startup is disabled in /usr/local/etc/default/mediatomb"
exit 0
fi
# Check if MT is already running
if [ -e /var/lock/mediatomb ] ; then
$0 stop
fi
# Start daemon.
touch $MT_PIDFILE
chown $MT_USER.$MT_GROUP $MT_PIDFILE
mkdir -p "/$MT_HOME/$MT_CFGDIR"
chown $MT_USER.$MT_GROUP "/$MT_HOME/$MT_CFGDIR"
echo -n "Starting mediatomb: "
/usr/local/bin/mediatomb $MEDIATOMB $MT_OPTIONS
RETVAL=$?
if [ $RETVAL = 0 ] ; then
touch /var/lock/mediatomb
echo "ok"
else
rm -f ${MT_PIDFILE}
echo "failed"
fi
;;
stop)
# Stop daemons.
echo -n "Shutting down mediatomb: "
if [ -f ${MT_PIDFILE} ] ; then
kill `cat ${MT_PIDFILE}` 2>/dev/null
else
killall mediatomb 2>/dev/null
fi
RETVAL=$?
if [ $RETVAL = 0 ] ; then
rm -f /var/lock/mediatomb
rm -f ${MT_PIDFILE}
echo "ok"
else
echo "failed"
fi
;;
restart)
$0 stop
$0 start
;;
condrestart)
[ -e /var/lock/mediatomb ] && $0 restart
;;
*)
$0 start
;;
esac
exit $RETVAL
(END)
うまく動くかどうかテストします。
/etc/init.d/mediatomb start
ps axで確認しプロセスが起動していることを確認。
18533 ? Ssl 4:33 /usr/local/bin/mediatomb -d -u root -g root -P /var/r
un/mediatomb.pid -l /var/log/mediatomb -m /etc -f mediatomb -p 50133
玄箱のサーバのアドレスとmediatomb用にmediatomb.confで指定したポート(私は50133にした)にアクセスし、設定画面が開くことを確認します。
テレビ側でDLNAで配信を受けるためには、配信するファイルをmysqlに登録する必要があります。操作は簡単、設定画面のGUIで操作するだけ。
1.左上の"Filesystems"をクリックし、サーバのどのディレクトリを配信するか選び、右上にある"+"のマークをクリックすると、その配下のファイルおよびディレクトリがdatabaseに追加されます。
その右となりの、"+"の周りに矢印がぐるっと回っているアイコンは、追加したディレクトリをスキャンして新たにファイルが追加された場合databaseに自動的に追加する設定です。これをInotifyにでもしておけば、ファイルにどかどか追加するだけで、クライアントで見れるようになります。
一旦登録したファイルを消すには、databaseで該当のファイル、およびディレクトリを選択して”×”マークを押せばdatabaseから削除されます。
テレビからDLNAのサーバの内容が見れることは確認できましたが、肝心のファイルを選択すると、”クライアントで表示できません”的なメッセージが出ました。念のためjpgやmp3などを、BRAVIA、REGZA、iPhoneのそれぞれのDLNAクライアントで試したけど、結果は同様に表示や再生をできない旨のメッセージが出ます。
ここで数日悩んで放置‥‥。
で、最初から入れ直して気づきましたが、常識的なことなのかも知れませんが、mysqlで最初に登録する際のディレクトリ、およびファイルに日本語ファイルを設定してはダメです!
なお、ディレクトリを最初に登録した後は、日本語ファイルでもいけます。これは気づかなかった。
ということで、過去取りためたSD映像をサーバにポンポン入れておいて、必要ならばすぐ読みに行ける機能を無事に果たすようになりました。
参考にしたhp
http://shige-take.cocolog-nifty.com/blog/2008/02/hgdlna_d0f3.html
玄箱の計画停電対策(2)
とりあえず忘却する前に残しておきます。
- 製作2(続き)
- 玄箱への配線ポイント
- テスト
回路図(実際に使用)
左半分は先に作って失敗に気づいたマルチバイブレータの回路と同じ遅延回路、右半分はタイマーIC555を使った遅延回路、それらを積分回路(トリガ)でつないでます。Tr3はリレーを押すだけです。
これらをユニバーサル基板で作ったところ
ここまでは順調。問題はここから‥‥。
玄箱を開けて、基板とにらめっこしてました。どこから電源を取るかと。
コンセントに電源が復帰したら電圧がかかるところでなけばなりません。電源を入れたままでいろんなところにテスターを当てて調べましたが、玄箱がオフの状態ではメイン基板上には、電源コネクタの部分しかありませんでした。それもそのはず、コネクタの5VはそのままMOSFETのpowerSWに入っています。とりあえず、GNDと玄箱の電源スイッチへ配線します。
GND
GNDはどこで取っても良いのですが、比較的大きめの部品が付いているところの方が半田付けしやすいので、私はCN4の6ピンにGNDがでているので、ここに半田付けしました。
スイッチ
スイッチは閉でGNDとメークするようなので、GNDの反対側に半田付けします。方向があるので間違わないように。
一番重要な+5Vを取る部分ですが、結局電源基板に直接半田付けすることにしました。できるだけ電源基板には手を付けたくなかったんですが、ケーブルを切るよりこっちの方がマシだと思ったので。電源基板のコネクタ付近を見ると、空いているランドがあったので、そこに線をつっこみ半田付け。
※ちょうど赤丸の部分です
+5V/GND/スイッチの信号の3本を玄箱の外に出します。私はコンソールケーブルを出すために開けた裏蓋の穴を広げて出しました。結構古いプラスチックなので脆いので注意です。また、玄箱を開けた際にケーブルを引っかけて引きちぎらないように、ホットボンドでケーブルを固定しておきます。
ふたを閉めればこれで終わり。あとはコンセントにつないでみるだけ。
特に問題もなく、コンセントをつなぐと1秒後に電源が入りました。
この基板だけの電流は、平常時でだいたい7~8mAくらい。結構電力を消費してしまうけど、USBメモリを挿したと思ってあきらめることにしよう。
玄箱の計画停電対策(1)
ということで、電源が復旧したら自動的に電源ボタンをONするための工作をしました。
- やりたいこと
停電から復旧したら、一呼吸おいて電源ボタンを押す動作(電源ボタンの回路を閉)をするだけです。本当はUPSのように、電源が落ちた瞬間からshutdown完了するまでバッテリ駆動するようなのも考えて見たいのですが、今はとりあえず落ちたら立ち上がるところまでです。
非常に単純な動作ですが、機械的にボタンをプチッと押すのは精度的に不安だし、玄箱自体を開け閉めする際の邪魔にならないように綺麗に作るのが難しそう(面倒くさい)なので、電気的にタイマーを組み合わせて作ることにしました。
機能としては、こんな波形を作りたいわけです。
- 電源復帰とともにタイマー1が起動、1秒後に玄箱の電源スイッチの回路を閉する
- 玄箱電源スイッチを閉でタイマー2起動、0.5秒で電源スイッチの回路を開にする
たったこれだけです。
でも、コストを抑えたいのでスイッチの開閉は安いメカニカルの小型リレー、タイマー1、タイマー2は単純なCR遅延回路で作ることにしました。
- 電源復帰とともにタイマー1が起動、1秒後に玄箱の電源スイッチの回路を閉する
- 仕様検討
一応作る前に5分くらい(!)は考えたんですが、遅れてONになるだけなら何も考えることは無いのですが、一応その後OFFにするという、2アクションあるので、状態遷移を考えると、CR遅延回路だけで作ろうと思うと結構面倒です。(やり始めて気が付いた‥‥)
状態遷移としては、
電源ボタンON待機状態->電源ボタンON中->電源ボタンOFF(定常状態)
とループは無いので複雑なところは有りません。ただ上記の3つの状態を2つの独立したタイマーで作る上で、それぞれのタイマーをパラレルに置くか、シリーズに置くかが考えどころでした。
パラレル
シリーズ
パラレルの方がタイマー自体は簡単ですが、タイマー1とタイマー2の出力をJKフリップフロップ(双安定マルチバイブレータ)が要るなぁと考え、面倒ということだけで(^^;、シリーズにしようと決めました。
- 製作!
昔電子工作やっていたこともあって、たまたま手元にいくつかパーツがあったので、それらを使ってユニバーサルボードにC、R、Trを差し込んで回路を作って行きます。(超行き当たりばったりデス)
タイマー1の出力からタイマー2をシリーズにつなげるところで苦戦。アナログ回路は面倒だなぁ、と久々に実感(しばらくデジタルばっかりだったもんで‥‥)
タイマー2をタイマー1につなげると、タイマー1が動かなくなったり(トランジスタ回路はインピーダンス低いし)、電圧がなだらかな曲線なもんだから、入力電圧が変動すると時間がまちまちになる様子。
結局タイマー1の出力からタイマー2のCR遅延回路を駆動するのを早々と断念し、タイマー2は面倒だけど単安定マルチバイブレータ回路にすることにした。最初からフリップフロップにしておけば良かったんだけどな。これだと出力もH/Lはっきりしているし、電圧による変動も少ない。
単安定マルチバイブレータを使った回路(不採用だけど)
一応思ったとおりの動作はするんだけど、致命的な問題が有りました。てっきり忘れてましたが、単安定でもマルチバイブレータ回路は初期値が確定しないんでしたよね。
このため、何度か動かしていると、タイマー1で1秒後にONする前に既にタイマー2の初期値がONとなっていたり、ある時はなっていなかったり。これじゃぁ使えないよな。
折角マルチバイブレータのところまでトランジスタで作ったし、パラレルにタイマーを配置しようかとも考えたけど、たまたま部品入れにNE555が1個だけあったので、これを使って足掻いてみる。これだとトランジスタで作った単安定マルチバイブレータのように、初期値がまちまちということも無いし、トリガーのインピーダンスも高いし、うまくいきそう。
早速実験してみた。
結果、期待通りの動作でした。
結局タイマー1はトランジスタとCRの典型的な遅延回路、タイマー2は邪道にも(?)タイマーICを使ってしまって、何となくパッチワーク的な回路でイマイチ美しく無いのですが、まぁそんなこだわるモノでもないし、早く作っておきたいので、これで良いかと。
まだ回路図に起こしていないので、続きは次回。
今の好きなことは、暇な時いじる玄箱とか家電とか
by tkn384
カテゴリ
全体家電
玄箱
電子工作
Raspberry Pi
未分類
以前の記事
2014年 09月2014年 08月
2014年 07月
2014年 06月
2014年 03月
2013年 08月
2012年 05月
2011年 05月
2011年 04月
2011年 03月
2011年 02月
フォロー中のブログ
メモ帳
最新のトラックバック
ライフログ
検索
タグ
玄箱その他のジャンル
ブログパーツ
最新の記事
玄箱サーバ死亡 |
at 2014-09-23 16:39 |
初代玄箱USB増設 |
at 2014-08-31 14:05 |
RaspberryPiのバッ.. |
at 2014-07-21 23:31 |
Windows7とWindo.. |
at 2014-07-20 12:16 |
Windows7のPCを買い.. |
at 2014-07-06 01:48 |