min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi 3 に libdvdcss2 をインストールする

 

libdvdcss2 を RaspberryPi 3 にインストールする必要が出た。このへん参照。

d.hatena.ne.jp

進める。

# sudo -s

# wget http://archive.debian-maintainers.org/unofficial/packages/libdvdcss/1.2.10-1_i386/libdvdcss2_1.2.10-1_i386.deb

f:id:min117:20161127132357p:plain

# sudo dpkg -i libdvdcss2_1.2.10-1_i386.deb

なぜかエラーになる。

f:id:min117:20161127132719p:plain

gdebi コマンドでインストールを試す。

# sudo gdebi libdvdcss2_1.2.10-1_i386.deb

f:id:min117:20161127133047p:plain

権限が足りないと言われた。Linuxではこれが面倒。777でいいよ。

# chmod 777 libdvdcss2_1.2.10-1_i386.deb

# sudo gdebi libdvdcss2_1.2.10-1_i386.deb

f:id:min117:20161127133112p:plain

やっぱダメ。RaspberryPi だからか?arm専用バイナリが必要?探すしかないか。

 

 

RaspberryPi 3 に HandBrakeCLI をインストールしてDVD吸い出し&mp4にエンコードする → 成功

 

前記事で、RaspberryPi(初代)にHandBrakeのインストールができなかった。

min117.hatenablog.com

リベンジに、RaspberryPi 3 に HandBrake をインストールすることにする。初代 と 3 とでは、3のほうがCPUの数が4倍に増えているし、エンコードスピードも段違いだろう。

なんと、RaspberryPi 3 (と2)用に、専用のインストーラdebファイル)を作っている人がいた

Raspberry Pi • View topic - Video Converter HandBrake 0.10.5 for RPi2&3

たったこれだけでインストールできるらしい。

f:id:min117:20161127114647p:plain

インストールしてみる。作業は全部 sudo してから行うことにする。

まずは gdebi-core とやらをインストール。

# sudo -s

# apt-get install gdebi-core

f:id:min117:20161127115240p:plain

次はwgetdebファイルをダウンロード。

# wget http://steinerdatenbank.de/software/ghb_0.10.5-1_armhf.deb

f:id:min117:20161127115031p:plain

gdebiコマンドで、debファイルをインストールする。

# sudo gdebi ghb_0.10.5-1_armhf.deb

f:id:min117:20161127114846p:plain

インストール完了。

f:id:min117:20161127115613p:plain

たったの3ステップで HandBrake がインストールできてしまった。arm用は無いからソースからコンパイルを覚悟してたし、前記事のようなエラーは出るだろうから、それを1つ1つ読んでいかねば…と思っていたけど、これ一発で解決。ほんと、ネットは素晴らしい。

 

インストールした HandBrake のヘルプを見てみる。

f:id:min117:20161127115839p:plain

ちゃんとインストールされたようだ。さっそくエンコードを試してみる。ソースはDVDディスク。dfコマンドに表示される /media/pi/DVD_VIDEO がそれ。

$ df

f:id:min117:20161127120605p:plain

エンコード(圧縮)後に出力されるmp4の保存先は、ネットワーク内にあるNAS(192.168.xxx.xxx)の「PT3」という共有フォルダにする。見慣れた書き方をすれば「¥¥192.168.xxx.xxx¥PT3」といったところか。

NASをマウントする。RaspberryPi3のfstabに記述があるので、mountコマンドでマウントしてやる。

$ sudo mount -a

マウントされたか確認。

$ df | grep PT3

f:id:min117:20161127121221p:plain

/volumes/PT3 としてマウントされたのがわかる。

 

これで、圧縮元ソース(DVD_VIDEO)と、圧縮先のNAS(PT3)が揃った。早速HandBrakeでエンコードしてみる。

と思ったが、今回のDVD(4.7GB)をエンコードする前に、小さいサンプルファイルで綺麗にエンコードできるかテストしてみよう。

 

まずはソースファイルがあるNAS(共有フォルダ「PT3」)に移動する。

# cd /volumes/PT3

f:id:min117:20161127122604p:plain

サンプルファイルには、以前キャプチャした動画ファイルを使う。ファイル名に「花束」「ver1」という単語を含んで、かつ、ファイル名の終わりがtsで終わるファイルがそれそれを検索し、そのサイズを確かめる。

# for i in *花束*ver1*ts; do echo "$i"; ls -shal | grep "$i"; done

f:id:min117:20161127122939p:plain

ファイルサイズは 43MB しかない。これならエンコードにも時間はかかるまい。サンプルとしてちょうどいい。

書式

HandBrakeCLI -i ソース -o 出力先 -Z "品質指定プロファイル"

実行

HandBrakeCLI -i 花束を君に_ver1.ts -o 花束を君に_ver1.ts.mp4 -Z "AppleTV 3"

※ 品質指定の「AppleTV 3」については、HandBrakeが持っている品質指定ファイル(プロファイル)名を指定する。どんなプロファイルがあるかはネットに情報が溢れてるけど、今まで試した中で一番バランスが取れてるのが「AppleTV 3」だったので、今回もそれを使ってみた。

なお、「AppleTV」と「3」の間に半角スペースがあるので、指定するときはダブルクオート""で囲んで "AppleTV 3"としてやる必要がある。

 

エンコード実行。-i や -o を手書きするのが面倒なので、for文に組み込む。

# for i in *花束*ver1*ts; do echo "$i";  HandBrakeCLI -i "$i" -o "$i".mp4 -Z "AppleTV 3"; done

f:id:min117:20161127123319p:plain

圧縮開始した。上から数行目に「4 CPUs detected」とある。RaspberryPi 3 の4つのCPUがフル活用されるようだ。完了までしばらく待つ。

 

圧縮完了。数分で終わった。

f:id:min117:20161127124729p:plain

映像は1分ほどで、圧縮も1分程度だから、映像ファイルの元時間と同じ程度で圧縮できるってことがわかった。十分に速い。RaspberryPi3の消費電力はスマホ程度だから、これで、超省電力の動画圧縮専用マシンができたことになる。

 

エンコードされたファイル.mp4 を再生してみる。

f:id:min117:20161127125308p:plain

f:id:min117:20161127125342p:plain

十分キレイ。元ファイル.tsに見劣りしない。さすがは HandBrake。圧縮前後の動画ファイルサイズはどうか。

f:id:min117:20161127125554p:plain

圧縮前:43MB

圧縮後:29MB

何パーセント圧縮された?計算式は「29 / 43 * 100」でいいと思うけど、面倒なのでpythonにやらせる(bashだと小数点計算が面倒だから)。

$ python

f:id:min117:20161127125900p:plain

>>> 29.000 / 43.000 * 100

f:id:min117:20161127125945p:plain

67.4% 圧縮された。 ほんと RaspberryPi 3 最高。

 

RaspberryPi3 の apache2 で「AH00558: server's fully qualified domain name」エラー

 

RaspberryPi3 で運用していたWebサーバ(apache2)が、突然起動しなくなってしまった。

# sudo -s

# apachectl start

AH00558: apache2: Could not reliably determine the server's fully qualified domain name

f:id:min117:20161127074455p:plain

このへん参考に直してみる。

blog.dacelo.info

 

RaspberryPi(初代)に HandBrakeCLI をインストールしてDVD吸い出し&mp4にエンコードする → 失敗

 

運動会のDVDをiPhoneで見れるようにしてくれない?と頼まれた。HandBrakeでmp4動画にエンコードしてしまえばいい。

エンコードには数時間かかるので、デスクトップPCやノートPCでやらせると、電気代が無駄。こういう時こそ、消費電力がスマホ並の raspberrypi にやらせる。

ーーー

f:id:min117:20161127080758p:plain

f:id:min117:20161127080809p:plain

f:id:min117:20161127080833p:plain

 

必要なパッケージのインストール。

$ sudo apt-get -y install subversion yasm build-essential autoconf libtool zlib1g-dev libbz2-dev libfribidi-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev libwebkit-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev  libass-dev libtheora-dev libvorbis-dev libogg-dev libsamplerate-dev

f:id:min117:20161127072656p:plain

f:id:min117:20161127073042p:plain

エラーになったので、案内どおりに apt-get update してみる。

$ sudo apt-get -y update

f:id:min117:20161127073143p:plain

f:id:min117:20161127073456p:plain

もう一度インストール。

sudo apt-get -y install subversion yasm build-essential autoconf libtool zlib1g-dev libbz2-dev libfribidi-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev libwebkit-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev  libass-dev libtheora-dev libvorbis-dev libogg-dev libsamplerate-dev

f:id:min117:20161127073624p:plain

RaspberryPiも、初代だとCPUがかなり非力なせいかインストールに時間がかかる。しばらくほっておく。

ーーー

参考サイトのとおりにファイルを書き換えして make したけど、pythonがエラー吐いてる。ログもなくて調べようもない。RaspberryPi(初代)でのインストールは諦めた。

RaspberryPi3 に続く。

min117.hatenablog.com

 

参考サイト

stblog.satsumablog.com

 

RaspberryPi(初代)でKTV-FSUSB2/V3(K1510)を使った録画

 

KTV-FSUSB2/V3(K1510)を以前から持ってたけど、RaspberryPiでうまく録画できなくてお蔵入りしていた。

良いサイトがあったので、録画に再挑戦してみる。

RaspberryPi3でKTV-FSUSB2/V3(K1508)を使った録画方法その1(Softcasとlibarib25のインストール) - Qiita

サイトそのまま進めていく。

f:id:min117:20161123160427p:plain

f:id:min117:20161123160431p:plain

f:id:min117:20161123160436p:plain

f:id:min117:20161123160441p:plain

f:id:min117:20161123160451p:plain

$ cd softcas/

f:id:min117:20161123160516p:plain

f:id:min117:20161123160606p:plain

f:id:min117:20161123160615p:plain

f:id:min117:20161123160625p:plain

f:id:min117:20161123161226p:plain

f:id:min117:20161123161240p:plain

f:id:min117:20161123161253p:plain

f:id:min117:20161123161302p:plain

f:id:min117:20161123161310p:plain

f:id:min117:20161123161319p:plain

f:id:min117:20161123163304p:plain

f:id:min117:20161123163311p:plain

f:id:min117:20161123163320p:plain

f:id:min117:20161123163329p:plain

Keys.h は自力でggks。

cd /home/pi/Desktop/

f:id:min117:20161123163348p:plain

だめか。fedora(地デジ録画できてるサーバ)で使っている libpcsclite.so.1.0.0 をデスクトップに持ってきてみよう。

$ cd /home/pi/Desktop/

f:id:min117:20161123163409p:plain

f:id:min117:20161123163419p:plain

f:id:min117:20161123164609p:plain

f:id:min117:20161123164619p:plain

f:id:min117:20161123164626p:plain

f:id:min117:20161123164636p:plain

f:id:min117:20161123165659p:plain

f:id:min117:20161123165713p:plain

f:id:min117:20161123165728p:plain

make がコケる。fedoraでうまくいったときの wincard.cpp を使ってみる。

f:id:min117:20161123170413p:plain

f:id:min117:20161123170904p:plain

SoftCasをUbuntu 12.04に入れてB-CASカードなしでもテレビを見る · GitHub

f:id:min117:20161123171805p:plain

f:id:min117:20161123171822p:plain

なんだ。libpcsclite.so.1.0.0 てのは、そのアーキテクチャfedoraならfedora、piならpi)用に作らなきゃいけないのか。fedoraからコピッったのは消しておく。

f:id:min117:20161123171834p:plain

f:id:min117:20161123174047p:plain

f:id:min117:20161123174116p:plain

'Keys.o', needed by 'libpcsclite.so.1.0.0' ググる。このへんに情報ありそう。

Raspberry Pi2による地デジ・リアル視聴 | e在京白堊会

こんな記述が。

f:id:min117:20161128000412p:plain

2)にあるwgetを実行。

f:id:min117:20161128000505p:plain

3)にある pcsclite.h の書き換え実行。

f:id:min117:20161128000619p:plain

# vim /usr/include/PCSC/pcsclite.h

f:id:min117:20161128000812p:plain

make を実行する。

f:id:min117:20161128001020p:plain

f:id:min117:20161128001033p:plain

pcsclite.hの修正を間違った。カンマもコメントアウトしなきゃいけなかった。再度修正。

# vim /usr/include/PCSC/pcsclite.h

f:id:min117:20161128001442p:plain

# make

f:id:min117:20161128001536p:plain

 Keys.oの作成ルールがなくてmakeが失敗している。何か足りないかもしれない。lsしてみる。

f:id:min117:20161128003828p:plain

ラスパイで地デジのリアルタイム視聴をしてみた。

f:id:min117:20161128004005p:plain

f:id:min117:20161128003847p:plain

f:id:min117:20161128003930p:plain

f:id:min117:20161128004026p:plain

再度試す。

f:id:min117:20161128004034p:plain

だめだ。

ーーー

2016/12/25

No rules to make target 'Keys.o', needed by 'libpcsclite.so.1.0.0'

のエラーが解決できない。

ーーー

原因わかった。単純だった。Keys.cpp が足りなかった

これじゃダメ。

f:id:min117:20161225190438p:plain

これが正しい。

f:id:min117:20161225190527p:plain

makeしてみる。

f:id:min117:20161225190633p:plain

makeが通った。libpcsclite.so.1.0.0 ができている。

ーーー

冒頭サイトの手順に戻る。

RaspberryPi3でKTV-FSUSB2/V3(K1508)を使った録画方法その1(Softcasとlibarib25のインストール) - Qiita

$ sudo cp libpcsclite.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libpcsckai.so 

f:id:min117:20161225192213p:plain

$ cd  /usr/lib/arm-linux-gnueabihf/pkgconfig/

$ sudo cp libpcsclite.pc libpcsckai.pc

$ sudo vim libpcsckai.pc

f:id:min117:20161225192133p:plain

10行目付近を書き換えた。

変更前 Libs: -L${libdir} -lpcsclite

変更後 Libs: -L${libdir} -lpcsckai

ーーー

/usr/include/PCSC/pcsclite.h の記述を元に戻す。

$ sudo vim /usr/include/PCSC/pcsclite.h

f:id:min117:20161225193435p:plain

90行目の赤枠を復活させた。

f:id:min117:20161225193602p:plain

ーーー

libarib25のインストールに進む。

f:id:min117:20161225212839p:plain

f:id:min117:20161225212753p:plain

f:id:min117:20161225212733p:plain

$ cd libarib25-master/

f:id:min117:20161225212725p:plain

srcフォルダにMakefileなんてないぞ。for文で調べるか。

f:id:min117:20161225215327p:plain

src/libarib25.pc.in にある Requires: libpcsclite を書き換えてみるか。

変更前 Requires: libpcsclite

変更後 Requires: libpcsckai

f:id:min117:20161225215517p:plain

f:id:min117:20161225215553p:plain

$ make

f:id:min117:20161225215701p:plain

$ cd src

$ sudo -s

# make

f:id:min117:20161225215828p:plain

# cmake

# apt-get -y install cmake

f:id:min117:20161225220937p:plain

$ cmake

f:id:min117:20161225221244p:plain

f:id:min117:20161225221546p:plain

f:id:min117:20161225221923p:plain

f:id:min117:20161225222942p:plain

ーーー

KTV-FSUSB2/V3(K1510)接続

f:id:min117:20161225222527p:plain

KTV-FSUSB2/V3(K1510)接続

f:id:min117:20161225222550p:plain

新Macbook Pro の Touch Bar で Vim を使ってみる(escキーを試す)

 

Macbook Pro。Touch Bar。

f:id:min117:20161122210150p:plain

知りたいのはただ一つ。

Touch Bar の escキー で Vim は使えるのか?

とにかくその一点。youtubeに溢れる開封動画とか、どうでもいいことしか伝えない。Touch Bar で知りたいのは、「escキーの使い勝手はどうよ?」。とにかくそれ。

ーーー

Touch Bar に触れる機会があったので早速テスト。

f:id:min117:20161122212342p:plain

f:id:min117:20161122215214p:plain

結論からいうと、全然ダメMacbook ProではVimは使えない。escキーが使いにくすぎる。以下、触った感想。

esc キー

Touch Bar になってしまったせいで、escキーに押した感覚が全くないVimを抜けようとしてescでコマンドモードに移行するのに、そこで「押したかどうか分からない」。不安になって、何度か押し直してしまう。致命的な使いづらさ。Appleプログラマ(てかVim使い)を見放したのか。

f:id:min117:20161122215322p:plain

escの「位置」自体は悪くない。感覚的に、左手の小指を(いつもどおり)escキーに持っていくと、ちょうどその位置にescがある。あるにはある。

しかし、それを「押した感覚がない」。これが致命的に気持ち悪い。よりによってescキーを仮想にしてしまうとは。

10分ほど触ってみたけど、違和感がとれない。慣れの問題かな?とも思ったけど、違う。試しに、今回のMacbook Proの一番安いモデル(Touch Barじゃないやつ)を使ってみたら、本当に快適すぎたプログラマが買うならこれ一択。

ーーー

② カラーパネル

f:id:min117:20161122215525p:plain

ターミナル画面でカラーパネルボタンを触るとどうなるのか?テスト。

結果「ターミナルの背景色を変えられる」だけだった

f:id:min117:20161122215721p:plain

Touch Bar をスライドすると色が変わる。

黄色

f:id:min117:20161123002535p:plain

青色

f:id:min117:20161123002803p:plain

「あ、そう…」で終わる機能。

この機能のためだけに数万円も払う価値はない。最下位モデルが結局一番よさそう。 

iMac 5K Retinaの素晴らしさを実感する

iMac 5K を買って2週間。ブログ書くのにプログラミングに…とにかく最高の環境ができた。あまりに素晴らしいので残しておく。

ーーー

画像

ディスプレイがRetinaでしかも5Kなので、大きな画像でもクッキリ。例えば、以下のサイトから落とした高画質サンプル画像を開いてみる。

Wonderful City of Mikulov, Czech Republic Free Stock Photo Download | picjumbo

f:id:min117:20161120122136p:plain

サンプル画像は4000ピクセルらしい。2K?4K?詳しいことは分からんけど、とにかく綺麗な画像。

ダウンロードした画像を開いてみる。

f:id:min117:20161120122340p:plain

こんな感じになる。

f:id:min117:20161120123059p:plain

すごい。巨大な高画質画像でも、デスクトップいっぱいに表示できる。さすがは5K。しかもRetinaだから、めっっちゃ綺麗。

ーーー

コーディング

bashでコーディングする画面はこんな感じ。

f:id:min117:20161120124955p:plain

sshでRaspberryPi1と、fedoraと、RaspberryPi3 の3つに接続して、3つを一度に表示できる。最高だ。

ちなみに、ウィンドウの切り替えは Command + F1 で可能。

ーーー

リモートデスクトップ

iMacからWindows10(解像度1920x1280)にリモートデスクトップしてみるとこうなる。

f:id:min117:20161120130059p:plain

かなり快適。2つ、3つと並べても全く狭く感じない。新しいMacbook Pro(2016)を買おうかほんと迷ったけど、iMacにしておいてよかった。