RaspberryPiでffmpegをビルドしてハードウェアデコーダ/エンコーダを試す

RaspberryPiでffmpegのMPEG2のハードウェアデコーダ(mpeg2_mmal)と、H.264のハードウェアエンコーダ(h264_omx)を使ってみたかったので試してみました。 が、aptでインストールできる3.2.10でmpeg2_mmalを使ってデコードすると解像度が320x240に固定されてしまうというバグを 見事に踏み抜いてしまったので結局自分でビルドすることになりました。

3.2.10で ERBラボのサンプルストリーム パケットサイズ188バイト版 をエンコードしたログ

$ time ffmpeg -fflags +discardcorrupt -c:v mpeg2_mmal -i isdbt188.ts -t 00:00:10 -c:a copy -bsf:a aac_adtstoasc -c:v h264_omx -b:v 4096k isdbt188.mp4
ffmpeg version 3.2 ...
more ...

RaspberryPi ZeroをOTGモードで使う

RaspberryPi Zeroに USB Stem を 取り付けてみました。

取り付けとRaspbianの準備に関しては PIMORONI と そこからリンクされている 公式Gist を参考にすれば簡単にできました。

Macで使う場合は、ドライバも必要ないしBonjourも動作しているのでなんの準備も必要なくSSHでつなぐことができました。 インターネット共有の設定をすればインターネットへ接続するのもOK。

ただ自分のLinuxの環境はGentooなのでドライバも無効になっていたし、Avahiも入っていなかったので少しハマりました。 まずカーネルの設定で CONFIG_USB_NET_CDCETHER を有効にするとRaspberryPiを認識できるようになります。

Device Drivers  --->
  Network device support  --->
    USB Network Adapters  --->
      Multi-purpose USB Networking Framework
        CDC Ethernet support (smart devices such as cable modems)

有効にした上で接続するとdmesgとifconfigにこのように出力されます。(なんかエラーでてるけど…)

$ dmesg
[ 1450.001875] usb 3-1 ...
more ...

Linuxで複数モニタを使うときのメモ

以前買った IGZO液晶 はたまにRaspberryPiを接続したり、 臨時のモニタとして活躍していました。ただ、最近活躍の機会もあまりないのと、 小画面で常時表示しておきたいような用途を思いついたのでデスクトップPCのサブモニタとしてしばらく使ってみることにしました。

デスクトップPCのマザーボードは H77M-ITX を使っていて、 既存のモニタはDVI経由で接続しています。 このマザーボードはDVIとHDMI両方を使ってのマルチモニタに対応しているので、素直にHDMIに接続すれば物理的な準備は終わり。

ただ縦長の解像度が問題なのか、一般的なモニタを接続した場合も同じなのかはわからないけれど、 両方のモニタを接続しているとBIOSの画面が表示されなくなりました。 (キーを押すと入れはするけれど画面の表示がされない状態) その為BIOSに入る必要がある時はIGZO液晶側の電源を切るかケーブルを抜いておく必要がありました。

次にLinux側の対応で、やりたいことは以下の3つ

  • ミラーリングになっていたのでそれぞれ別に使えるようにする。
  • 今まで使っていたモニタを今まで通りメインのモニタとして使う。
  • IGZO液晶はポートレート表示がデフォルトなので回転させてランドスケープで使う。
  • IGZO液晶はメインモニタの左側に配置する。

調べてみたら設定を変更するにはxrandrを使って動的に変更するかxorg.confに静的に書くかの2通りがありました。

その他にディスプレイマネージャにSLiMを使っていたのですが、 もう 開発が止まっているらしい のとマルチモニタに対応していないみたいなので、 LigntDM に置き換えました。 ウインドウマネージャは Awesome でこちらは対応していて特に設定の必要なく使えました。

xrandrを使うにしろ、xorg.confに書くにしろ、まずLinux側にどのように認識されているか調べる必要があります。 単純にxrandrコマンドを実行すれば現在の状況が確認できました。

$ xrandr
Screen 0: minimum 8 x 8, current 3840 x ...
more ...

Kodiのフォントを雑に変更する

BRAVIA KJ-55X8500DKodi をインストールしているのですが、中華フォントが使われるので簡単にフォントを追加変更する方法がないか調べてみました。

現状では変更するUIはあるけれど、 スキンのデフォルト を使うか、 Arialベース の2択のみで、 パスを指定してフォントを追加したりといったことはできませんでした。 正攻法 (HOW-TO:Add_a_new_true_type_font_to_the_skin) では スキンを編集して使用可能なフォントを定義した上で、スキンのディレクトリにフォントを配置することになるみたいです。 しかしデフォルトのスキンはAndroidでは書き込み権限がある場所にないため、コピーするなりして新規に作る必要がありそうです。 それは面倒くさい。

KodiのWikiのフォントについてのページ (Fonts) を確認したら、 フォントの読み込みは以下のようになっているらしく、スキンのディレクトリ以下にフォントがない場合は、 次に XBMC/media/fonts を見に行くようです。 (おそらく最終的にKodiのインストールされているディレクトリのフォントを見に行く。)

There's one special file called font.xml. This file contains a list of all fonts the skin ...
more ...

MacBook Air (11-inch, Mid 2012) のSSDをM.2接続のSSDに換装した

JetDrive高すぎ問題

MacBook Air (11-inch, Mid 2012) のメモリを8GBにカスタマイズしたものを使っています。 このマシンは主に仕事で使っていて、XcodeやらIntelliJやらを入れているので標準の128GBではカツカツの状態でした。 ちょっと思うところがあってWindowsの仮想マシンを用意したいなと考えたのですが、この状態ではどうにもならないので思い切って換装することにしました。

MacBook AirのSSDを換装するとなるとTranscendの JetDrive が主な選択肢になるようです。 ただし Transcend JetDrive 480GB TS480GJDM520 が40196円なのに対して、 今回購入した Crucial MX300 525GB CT525MX300SSD4/JP は18080円で、自作などに使われるM.2のSSDと比べると倍くらいの値段になっています。 幸い使っているMacBook AirはM.2接続のSSDが使えることがわかっています。 できれば動作が保証されていそうなJetDriveを使いたいところですが、値段に負けてこちらを選ぶことにしました。

当然M.2のSSDをそのまま接続することはできないので M.2のコネクタをMacBook AirのSSDのコネクタに変換するアダプタ と、 MacBook AirのSSDをSATAへ変換するためのアダプタ も合わせて購入しました。

more ...

スキャンしたjpegからKindle用のmobiを作る

はじめに

随分前に 裁断機を買いました 。 この時にスキャンしたものはjpegをzipで固めてSambaの共有ディレクトリに配置、Nexus9で ComittoN を使って閲覧できるようにしていました。 この形はデバイス本体にファイルを置かないため、ストレージの空きを気にしなくてよいのがメリットな一方、当たり前ながらSambaにアクセスできる環境でしかファイルを閲覧できません。 VPNを構築すればこの制限は回避できます。

ただしかし手元にある本の数がそれほど多いというわけではないけれど、物理的な本がこれ以上増え続けるのもどうかなと思い始めてきたので、最近新しく買う本はKindleにしようかどうかと考えていました。 そこで、もしKindleへ移行した場合、既存のデータもKindleで読むことができないかと考えました。 スキャン済みのデータは多くないので簡単に変換できるようであれば変換してしまってKindleに一本化したいというのが今回の動機です。

スキャン後の画像データを調べる

今回はmobi形式のデータを作成するのに Kindle Comic Creator と画像の前処理にImageMagic を使います。

image

お試しとして、以前スキャンした攻殻機動隊のデータを使いました。 この冊子のデータは300ppiでスキャンしたもので、表紙、裏表紙を含めて全部で52枚(000001.jpg-000052.jpg)、 縦が2125-2166px、横は1473-1489pxでした。ScanSnapが適当にトリミングするので画像の大きさにばらつきがあります。 Kindle Comic Creatorは全ての画像が同じアスペクト比になっていないとダメみたいなので余白を加えるなどして調節が必要そうです。 あとNexus9の解像度が2048x1536で、それ以上大きくても意味がないので少し縮小した方がサイズの節約になりそうです。

Kindle Comic CreatorがWindows/Mac対応だったのでMacで作業しました。 ImageMagicはhomebrewでインストールしました。 正しくインストールされていれば identify と ...

more ...

AnniversaryUpdate適用後にNW-E052が認識されなくなる問題の対応

何が起きたか

妻のマシンをWindows10へアップデートしたあとしばらくしてから(AnniversaryUpdate適用後)、Walkmanが使えなくなったと言われました。 具体的には以下のような画面が表示されたので本体の初期化をしたが状況が改善されない、ということでした。

image image

通常WalkmanはUSBメモリと同じようにエクスプローラに表示されるのでプロパティを確認してみると、 このようになっていてドライブとして正しく認識されていないようでした。

image

コンピュータの管理から確認してみるとこう。ボリュームが無いように見えます。

image

公式の情報

Windowsのアップデートをする前は特に問題なく使えていたということでした。 アップデートが原因だとはあまり考えられないのではと思ったのですが、調べてみたら公式のアナウンスを見つけることができました。

ここにはE080/S10/S770/S780で問題が起きること、これらのモデルはソフトウェアアップデートで対応することが書かれていました。 手元のNW-E052でも同様の問題が起きていましたが、サポートが切れているためかここでは触れられていませんでした。 また当時は暫定の回避策の情報もなかったので打てる対策がない状況でした。

見つけた対応策

買い換えるしかないのかなぁと思ったのですが、なんとか回避できないかと思ってしつこく調べていたら 認識するようにできたという情報 があったので試してみました。 結果的にあとからアナウンスされた公式の回避策も含めて以下の2通りの方法があります。

  1. Windows10以外またはAnniversaryUpdate未適用のPCでフォーマットする。 (公式)
  2. MiniTool Partition Wizard というツールを使ってWalkmanのボリュームに対し Set inactive という操作をする。 (非公式)

環境を用意できる人は1の公式の対応策に従ってください。 ただこの公式の方法ですが、普通の人は他のPCを用意できない場合が多いと思います。 が、AnniversaryUpdate適用済みのPCでも復活させる方法を偶然見つけたのでこちらも書いておきます ...

more ...

秋月電子で買えるIGZO液晶のケースを作ってみた

前回 動作確認をした液晶ですが、ケースの加工の見積もりを依頼した業者がどうも信用できない印象だったのでキャンセルしました。 レーザーカッターを使わせてもらえる場所がいくつかあるので、そこを利用して自作することにしました。 そのうちリーズナブルで講習を受ける必要もないし場所も職場とそれほど離れていなかったため FabCafe Tokyo でカットしてもらうことにしました。

レーザーカッター の説明にあるように、Drop-inでの利用は10分800円。 データの作成方法は簡単にですが FAQ に書いてありました。 ただ見るべき場所が分散しているので、FAQからの抜粋と今回実際に利用してみてわかったことをまとめておきます。

素材について (主にアクリル板について)

  • 800x450mmまでの素材をカット可能
  • アクリル板の場合、厚みは最大5mmまで
  • 上記の制限内であれば持ちこみ可能
  • 150x150mm、2mm厚のアクリル板は店頭で購入できる

データについて

  • 図面のデータはIllustrator CS4形式を推奨
  • カラーモードはRGB
  • カットしたい線の太さは0.01pt、色はRGBで255,0,0
  • カットする順序を変えたい場合は赤と緑以外で別の色にしておく (今回は0,255,255を使用)
  • 彫刻する面は、線無し、塗りつぶしの色は0,255,0
  • 上記の条件を満たしていればInkscapeで作成したSVGでも可 (今回は問題なかった、ズレる可能性はある)

Inkscapeについて

  • はじめに ファイル -> ドキュメントのプロパティ ...
more ...

秋月電子で買えるIGZO液晶を試してみた

秋月電子で SHARPの7インチIGZO液晶モジュール を購入したらあっという間に届いたので動作確認してみました。 動作確認自体は土曜に終わっていて、本当はアクリルのケースを作成してから記事を書くつもりでした。 が、月曜の夜に見積もり依頼を出して既に木曜の深夜です… メールには2営業日と書いてあったのに何が起きているんだろうなぁと少しイラッときたので先に記事だけ書いてしまうことにしました。 (ちなみに今日くらいから シリコンハウスでも購入できる みたいですね。)

組み立てと接続に関しては付属の説明書を参考にすれば特に問題なく済ませることができると思います。 注意すべきことがあるとすれば、細い方のフレキシブルケーブルのコネクタは、開く方向が太い方とは逆になっていた点くらいです。 あとは単純に壊さないように作業するだけです。(すごく壊れやすそうなので何度も作業したくない感じでした。)

映像の出力機器に関して、とりあえず普段使用している MiniDP-HDMI変換ケーブル を使ってMBAと接続してみたのですが無反応でした。 次にGentooがインストールされているデスクトップと DVI-HDMI変換ケーブル を使って接続してみたら、こちらはうまく表示されました。 MBAが悪いのか、変換ケーブルが悪いのかは切り分けることができていませんが多少相性はあるようです。 Twitterでも報告している人がいましたが接続する機器によっては映らないということがわりと当たり前に起こりそうです。こわいですね。

下の画像はデスクトップに接続して画面を左に90度回転した状態で撮影したものです。 この液晶の仕様でデフォルトでは縦画面の1200x1920で認識されるようです。 なので、横向きで使用したい場合はOS側で画面を回転させてやる必要があります。 (この仕様のせいでおそらくPC以外の機器との接続が難しくなっているのだと思われます。)

Gentoo(Linux)のXでは xrandr というコマンドがあり、これを利用すると画面を回転させることができます。 今回はこのように xrandr -o left 実行しました。

image

アクリルケースに関しては、本当はCADやIllustratorを使用して書くのかもしれませんが、木材を使った家具のイメージ作りのために SketchUp を使っていて ...

more ...

GentooとNginxでLet's Encryptを使う

Let's Encrypt がPublic Betaになったので使ってみました。 Gentooに関してはまだ実験的なサポートで、Nginxはこれからプラグインが取り込まれる予定みたいです。 (なので他の組み合わせて使うより多少不便なのかもしれない) ただ試してみた結果現状でもとても簡単に利用できました。

基本的には ドキュメントInstallationHow to run the client の章を読めば事足りて、 あとは必要に応じて User Guide も読むといいはず。

まず必要なファイルはgithubからcloneするだけ、コマンドを実行したタイミングでディストリビュージョンごとに必要なパッケージが自動でインストールされるようになっていました。 Gentooの場合は bootstrap/_gentoo_common.sh に書かれていて以下のパッケージがインストールされるようになっていました。 あと普通に実行するとGentooは実験的なサポートなので --debug をつけて実行するように言われるのでそのようにします。 ただこれは初回のパッケージのインストール時のみ必要みたいなので、次回以降はつける必要がありませんでした。

PACKAGES="dev-vcs/git
  dev-lang/python:2.7
  dev-python/virtualenv
  dev-util/dialog
  app-admin/augeas
  dev-libs ...
more ...