目次
04日 QNAP TS-251D 購入
04日 251D 使用レビュー
17日 FFMPEG
18日 続・FFMPEG
22日 夏休み
24日 IOCCC
しばらく前に「もう一つ買ったものがあるので、後日書こうと思う」なんて予告しておいて、なかなか書けなかった。
購入したのは、新しい NAS 。QNAP TS-251D。
ある程度設定が終わったらレポートを兼ねて書こう、と思っていたが、この設定に手間取ったのだ。
今までは、同じ QNAP の TS-220 を使用していた。
6年半ほど前に購入したものだ。
その前の NAS は、6年半使ったところで壊れた。
だから、TS-220 もそろそろ買い替え時だと思うのだ。
後継機への乗り換えだから簡単にできる…つもりでいたら、思った以上にハマリポイントが多かった。なかなか日記を書けなかったのもそのためだ。
購入を検討している人のために最初に結論を書いておくと、標準のメモリ(2Gbyte)は足りなすぎる。
特に複雑なことをしない、普通の状態でも足りていない。
なぜそんな状態で売っているのか、と思うのだが、一応動作はしているので、最低限のセットで販売しているのだろう。
4Gbyte モデルも販売しているようなのでそちらを買うか、交換用の増設メモリを最初から買うのが良いと思う。
もうひとつ、乗り換えの際には、新しい NAS と一緒に新しい HDD も購入しよう。
古い機種の HDD を新しい機種に入れよう、とは考えないこと。
公式には、古い NAS から HDD を取り出して入れ替えると、今までの設定もそのまま引き継がれて簡単…ということになっているのだけど、残念な結果にしかならない。
つまり、251D を購入するなら
・本体
・HDD 2台
・増設用メモリ
を同時購入するのがいい。
僕はトラブルに見舞われながらこれらを順番に買うことになり、無駄な時間を費やしてしまった。
なんでそういう結論に至ったのか、順を追って説明しよう。
まず NAS について知らない人のためにざっくりとした説明を。
狭義には、LAN に接続できるハードディスクドライブ (HDD) 装置を NAS という。
PC に USB で HDD を接続することはできるが、これを LAN 接続で行おう、というものだ。
LAN 接続なので、多くの PC から同時アクセスできる。
(もともと SAN の逆、というパロディでもある。SANもネットワーク HDD 装置だけど、いろいろと逆なのだ)
NAS は最近はもっと多くの機能を提供していることが多いのだけど、いちばん重要なのは「大切なデータが壊れないようにする」機能だ。
そして、この最も基本的な部分に、RAID 技術がある。
RAID を単純に書くと「2台の HDD に同じ内容を書いておけば、片方が壊れてもデータは守られる」というものだ。代償として HDD の導入コストは2倍になる。
現在販売されている NAS 装置は、大きく分けて2系統ある。
買ってきてそのまますぐ使えるように、HDD などをすべて内蔵した製品と、HDD は別売りで自分で購入する製品だ。
一般に前者は初心者向けで、HDD を取り出したり交換したりすることは想定していない。
ここで問題になるのが、HDD が故障する前に本体が故障したらどうなるか、ということだ。
実は以前にその状態になったことがある。僕は技術を知っていたので HDD からデータを取り出すことに成功したが、普通はデータが失われると思っていい。
これでは、なんのための RAID なのかわからない。
HDD 別売りの機種は、当然のことながら HDD の取り出しや交換も想定している。
容量が足りなくなったらデータを残したまま増設する方法も提供しているし、本体が故障したら新しい(後継機の)本体に移し替えてデータを取り出せる、という保証もある。
ここまでの説明で、やっと冒頭の話につながる。
本体の故障だけでなく、後継機への乗り換えの際にも、以前の機種の HDD を移し替えるだけでいい、と公式には説明していた。
でもこの説明はかなり嘘だった、という話だ。
まず、設定は一部しか持ち越されない。
LAN 接続のための一番重要な「ネットワーク設定」は持ち越されず、デフォルトである DHCP 参照にされてしまう。
データ保全に必要な、バックアップの設定なども残ってはいたが使い物にならなかった。
バックアップ先となる「外部 HDD」の認識名が変更になったためだ。
僕の場合、後継機とはいっても、CPU の違う上位機種に乗り換えた。
そこで、NAS 上で使用できる機能なども細かく変更になったのだが、当然ながらそれらに関する設定も動かなくなった。
そしていちばん重要なことだ。
新しい機種で使えると期待していた「ファイルを保護する機能」が、旧機種から持ってきた HDD では使えなかった。
公式ページの説明では、今回の機種間の HDD の移行でもこうした機能制限は無いはずだった。
でも、公式ページの説明と違って機能は制限される。
HDD の載せ替えは、新機種への移行というよりは、本体故障時の緊急措置と考えたほうが良いのだろう。
仕方がないので、新しい HDD を購入することにした。
ちなみに、購入したのは IronWolf の 4T 。
NAS に入れる前に、表面に書いてあるシリアルナンバー (SN と書いてあるアルファベット混ざりの文字列)を2つとも控えておくといい。
(あとで NAS の設定画面から登録を行うと、3年以内に HDD が故障した際には無料でデータ復旧サポートを受けられる)
問題はその後だ。
新機種に古い HDD を入れると、自動的に認識されて新機種用の OS が書き込まれる。
だから、もうこの HDD を旧機種に戻すことは出来ないだろう。データが壊れるのが怖いので試してないけど。
旧機種はすでに使えず、新機種に新しい HDD を入れれば、古い HDD にアクセスする方法は失われる。じゃぁデータはどこから取り出せばよいのか。詰みだ。
これが、冒頭で旧 NAS を稼働したまま新 NAS を導入したほうが良い、と書いた理由だ。
そうすれば、旧 NAS から新 NAS に簡単・確実にコピーを行える。
僕は、幸いバックアップ用の外付け USB HDD があった。
NAS のデータはすでにバックアップされているが、念の為もう一度バックアップした。
(すでに書いたとおり、バックアップ用設定は動かなくなっているので新しく作り直した)
新しい HDD で新機種をもう一度設定した後、このバックアップを書き戻すことで無事復旧することができた。
さらっと「もう一度設定した後」と書いたが、ここにもハマリポイントがあるので書いておこう。
まず、設定をするには、新しい HDD を入れて NAS を起動したあと、WEB ブラウザで NAS にアクセスする必要がある。
この際、NAS には DHCP で IP アドレスが割り振られる。
(家庭内 LAN には DHCP サーバがあるだろう、という前提。DHCP とは、LAN に接続した機械に自動的にネットワーク設定を行う技術)
自動で割り振られた IP アドレスがどこになっているかは人間には分からないので、QNAP が提供する Qfinder というソフトを WIndows などにインストールする必要がある。
これを使えば IP アドレスを見つけ出し、その IP アドレスで WEB ブラウザを開いて NAS にアクセスしてくれる。
最初に HDD のフォーマットが始まる。これには数分程度かかる。
フォーマットが終われば、すぐに NAS として使い始められる。
実は裏で「RAID構築」と呼ばれる作業をやっているのだけど、それは1日も放置すれば勝手に終わるし、構築中でも別の作業は可能だ。
でも、ここがハマりポイントだ。まだ旧 NAS からのデータ移行をしてはならない。
この後の作業で全データを消すことになるから。
最初にやることは、「ストレージ&スナップショット」の設定に入ることだ。
ここから、Linux の技術の中でも難解な部類に入る LVM の設定を行う。
…いや、簡単に扱えるのが売りの NAS で、なんでこんな難しい設定を包み隠さずみせてるんだよ、と思う。
デフォルトにしろ、とまではいわないが、おすすめ設定とかで勝手にやってくれればいいのに。
HDD をストレージプールに登録し、ストレージプールから改めて「ボリューム」を作り出す。
ボリュームというのは従来の考え方で言うパーティションのことだ。
ボリュームは幾つかの方法で作り出せるが、シックボリュームで全体容量の6割程度にしておくといい。
また、「保護されたスナップショット領域」も確保する。こちらは2割程度で。
残りはシステムで使用する領域と「余り」になるわけだが、この余りはいつでも他の部分に追加できる。容量が足りなくなったときの予備だ。
従来のパーティションだとこうした動的な割当は出来なかったのだが、ボリュームなら可能だ。
これで、以降は「スナップショット」という、最新の便利機能が使えるようになる。
せっかく最新の NAS を買ったのだから、最新機能を使わないのはもったいない。
バックアップを書き戻しながら、RAID 構築を行いながら、NAS の設定もしていると、画面の左下のマスコット(謎のロボット。カイル君みたい)が、頻繁に目をバッテンにしながら「メモリ容量低下」と言っている。
なんだこれ、同時並行作業数が多すぎるのかな…と思いながら、このときは様子見にした。
翌日、RAID 構築もバックアップ書き戻しも終わった状態で、改めて各種設定などを行う。
まだ「メモリ容量低下」と言い続けている。
ここで気づくが、標準搭載の 2G のメモリでは、単純なファイルサーバーの状態でもメモリが足りないようだ。
頻繁に SWAP をおこし、プログラムが HDD の上で動いているような状態。
その HDD は NAS だからもともと頻繁に動かしているわけで、全体的に速度が低下する。
SWAP しても動いてはいるし、2G でも足りるだろうと考えて売っているのかもしれないけど…
いや、これむしろ「メモリは交換されるのが前提」だと考えて、一番安いメモリ搭載して売っているだろ。
増設用メモリを注文。
251D には SODIMM のメモリスロットが2つあり、最初は片方に 2Gbyte のメモリが入っている。
公式には、片方に 4Gbyte まで搭載可能。両方に搭載する場合は、同じメモリを搭載しなくてはならない。
ネットで探すと、今どき SODIMM は 8G が主流のようだ。
251D でも、公式にはサポートしないが 8G を認識するという報告がネットに散見される。
僕としては複雑なことをしたいわけではないので、倍の 4G あればいいかな…
とおもったが、後から気が変わったときに、もう一本全く同じメモリを買うのは多分無理だ。
4G 2本を購入。届いてから交換して 8G になった。
ネットによれば、相性問題が激しいらしくて、「動作確認できた」というメモリは人気商品になっている。
…Amazon ではすでに売り切れだったり、妙に高値だったりする。
あえて別の製品を選んでみる。
TIMETEC 社製のメモリ。4G SODIMM として最安値ではないが、それに近い価格だった。
アメリカの会社で、日本法人からの直販なので、問題が出たときのサポートもしっかりしていそうだ。
でも、問題なく動いた。すでに数日稼働を続けているが、相性による不具合は出ていない。
(もっとも、相性って個体差もあるので、他人が「相性問題出てない」と言ったとしても、あまり意味はない)
これでやっとまともに運用できるようなった。
251D は「後からパーツを購入して機能拡張できる」と人気の NAS なのだが、「後から」ではなく、最初にやらないとまともに動かないという話でした。
NAS の話、長いので一旦ここで区切る。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
QNAP の NAS TS-251D の導入だけで大変だった、という話を書いたが、ここからはやっと「本来やりたかったこと」を試した話だ。
旧機種 220 は、ARM CPU だった。これは家庭用 NAS としてはエントリーモデルだ。
この頃の「上位機種」は 251 だった。Intel CPU だ。
さて、220 の後継機種は 230 になる。そして、251 の後継機種は 251D だ。
今回、単純な後継機への乗り換えではなく、上位機種の乗り換えにもなっている。
220 と 251 は、当初同じ機能が提供されていた。ただ、251 のほうが動作が高速だった。
その後、新機能は 251 にのみ提供されたり、機能差が出来ていく。
僕が 220 を購入した最大の要因は、家族写真・ビデオの整理だった。
220 には「トランスコード」という機能があり、各種フォーマットのビデオファイルを、スマホや WEB でも見やすい mp4 に変換してくれた。
ところが、ある時の OS バージョンアップに伴い、このトランスコード機能が 251 だけの提供となった。
それまで使えていた機能が、ある日から急に使えなくなったのだ。
現時点で、230 と 251D には同じ機能が提供されている。
ただ、251D の方が「処理性能が高い」というだけだ。
(あと、251D は拡張可能だが、230 はそうではない)
しかし、以前の経験があるから、上位機種を買っておこうと思ったのだ。
ではそのトランスコード機能について書こう。
トランスコード機能は確かに使えるのだが、期待していた機能が入っていなかった。
かなり残念な結果だ。
我が家の家族ビデオの多くは AVCHD フォーマット(拡張子 MTS)で撮影されている。
220 にトランスコードが提供されていたときは、AVCHD は対応していた。
しかし、現在の 251D のトランスコードは、AVCHD は対応していない。
AVCHD は家庭用ビデオカメラでは広く普及している規格だ。
内容的にもそれほど特殊なものではなく、mp4 の一種に過ぎない。
ただ、mp4 というのは細かなパラメータが多い規格であり、ファイルの名付け規則やディレクトリの配置規則もない。
家電品としてはそこら辺が定まっていないと使いにくかろう、というので定めた程度の規格だ。
だから、それほど対応が難しい規格ではないはずだし、先に書いたように以前は対応できていた。
それなのに対応していないというのは…
じつは、220 が対応していた頃は「QNAPが」この対応プログラムを作っていた。
しかし、数多のビデオフォーマットに対応するのは大変だったようで、現在はサードパーティのプログラムを使って対応している。
(QNAP ユーザーは無料でインストールできるようになっている)
そして、このプログラムは AVCHD に対応していない。
QNAP が独自対応していた時は AVCHD に対応していたのだけど、数ではもっと多くの形式に対応できるサードパーティのライブラリは、完全な包含関係にはなかった、ということなのだろう。
とりあえず、対応してくれと QNAP に要望は出しておいたが、望み薄だと思っている。
多分そんな要望はすでに山ほど来ているだろうから。
このライブラリ、変換部分は ffmpeg にすぎないようなので、パラメータがいじれれば自分でも対応できるようなレベルの話なのだけど…
ちなみに、ファイルサーバーとして Windows からアクセスして、ファイルを直接見れば Windows のビデオ機能で再生できる。
ただ、一括管理ができず、不便というだけだ。
仕方がないのでビデオは諦める。
写真整理についてはどうか。
これについては、悪くない。
以前の 220 では、PhotoStation という WEB アプリが提供されていて、これで NAS に入っている写真を閲覧できた。
でも、この使い勝手はちょっと微妙なもの。悪くはないのだけど、Google photos に比べると使い勝手が悪い。
251D にも PhotoStation が入っていて、新機能なども追加されていたのだけど使い勝手は余り変わらなかった。
ちょっとがっかり…と思ったら、新しい写真閲覧ソフトとして、QuMagie というものが入っていた。
これが、Googe photos を強く意識した…いや、正直パクリのインターフェイス。
それがなかなか使いやすい。
AI による顔認識とか、写真に写っているものの認識とか、EXIF 情報の GPS 位置による場所の認識とかがあって、写真を自動分類してくれる。
顔認識の精度は、ちょっと微妙かもしれない。
というのは、うちの三人兄弟の幼児期の写真を区別できない場合も多かったから。
もっとも、顔だけ見ると親でも識別できないような写真ばかりだけど。
親は周りのシチュエーションで誰か区別できるのだけど、AI はそこまで出来ないので区別できないのは仕方がない。
まぁ、Google photos も有料化したとはいっても、当面の無料使用可能な容量があるので、当面は使い続けるのだけどね。
導入部分で書いていた、スナップショット機能について。
これ、すごく期待していた機能だ。
「大切なデータを守る」というのは簡単なのだけど、どうすればそれができるのか、という方法論は実は奥深い。
RAID は、ディスクの故障からファイルを守ってくれる。
でも、人間のうっかりミスで消してしまった、上書きしてしまった、などの事故からは守ってくれない。
Windows には、「シャドウコピー」という機能がある。
ある瞬間のディスクの状態を記録しておいて、いつでもそこに戻れるようにする機能だ。
ファイル1個単位でも戻せるのだけど、よく使われているのは「システムの復元ポイント」だろう。
こちらは、システムフォルダを丸ごとシャドウコピーしている。
Update などの前に自動的に作られ、その直後の再起動で失敗すると、自動的に以前の復元ポイントに戻ったりする。
同様の機能が、MacOS X でも提供されているし、Linux でも LVM の一部として提供されている。
そして、NAS のスナップショット機能も、この LVM を使用したものだ。
先に書いたように、Windows にも類似機能があり、NAS をファイル共有で見ると、Windows 上の通常のファイル操作で「以前のバージョン」に戻すことができる。
Windows の復元ポイントは 64個しか作れないが、QNAP の NAS は、256 作れる。
また、その残し方もかなり柔軟で、直近のものは1時間ごとのスナップショットを残すが、やがては1か月ごとにまとめたものを1年間残す…なんて設定もできる。
その仕組み上、こんな残し方をしていても HDD の容量はそれほど使わない、はずだ。
(まだ1週間程度しか運用していないので、1年続けたときの容量はわからない)
これは、ファイルの保全というより、うっかりミスに備える機能だと思っている。
なので、これとは別にバックアップを取る必要はあるだろう。
NAS は万全のバックアップ体制をとれるとして、個人使用のマシンのデータを NAS に効率的に送るにはどうしたらよいか。
以前は BunBackup を使っていた。Windows 用のフリーソフトだ。
でも、251D なら QNAP 公式の2つの方法が取れる。
1つは Qsync 。もう1つは NetBak Replicator 。
Qsync の方が後から作られ、高機能だというので試してみたのだが…これはなんか違うな。
僕が求めているのは NetBak Replicator の方だった。
まず Qsync の説明をしよう。
これは、MicroSoft の OneDrive とか、Google の GoogleDrive とかの、Windows 向けドライバと同様の動作を行う、QNAP の NAS 向けアプリケーションだ。
デバイスと NAS の間で、常にファイルの同期を行う。
複数台で同じ場所を同期していると、データの共有が簡単にできる。
でも、そのために保持しているパラメータは非常に多いようだ。
「同期をとる」って、案外厄介な作業だからね。
そのため、NAS のデータ置き場は、Qsync 経由でしか見られない。
勝手にファイルをいじられると、それだけで同期が破綻するためだ。
結果として、せっかく NAS にデータを集約しているのに、Windows のファイル共有などからでは、このデータにアクセスできないようになっている。
僕としては、NAS にデータを集約して、バックアップなどで万全の体制を保ちたい、というのが一番の要求だ。
複数 PC で同期をとりたいわけではないし、NAS で見られないのは魅力半減だ。
そこで、NetBak Replicator 。これは Windows の特定のディレクトリ以下のファイルを、変更があれば即座に NAS にバックアップするためのソフトだ。
一方的なバックアップであり、同期ではない。
そして、バックアップしたファイルは、ファイル共有から見ることができる。
先に書いたが、NAS にはスナップショットで過去のファイルでも取り出せるような仕組みがある。
これは、Windows からは、該当ファイルに対して「プロパティ」の「以前のバージョン」を見ることで簡単に取り出せる。
これで、個人所有の PC から NAS にデータを送り続け、バックアップする体制ができあがる。
ちなみに、スマホからは Qfile を使ってバックアップの設定ができる。
撮った写真を自動的に NAS に入れるように設定した。
まだ購入から1週間、まともに動くように(メモリを増設して)からは3日くらいしかたっていない。
なので、今のところレポートできるのはこれくらい。
でも、大体やりたい設定は終わった感じなので、後はこれらの設定がどれだけ「普段の動作を邪魔せず、スマートに」動いてくれるか、という程度だ。
ちなみに導入コストだが、当初予定していなかったメモリ増設なども含め、6万8千円ほどだ。
また6年半くらい使うとして、年間1万円程度のコストで、家族で使える 4T のストレージが入手できたことになる。
Google One ドライブなら、2T で年額1万3千円。
NAS の方がいろいろと便利な部分もあるし、悪くない買い物かな。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
QNAP 251Dのその後。
前回書いたが、AVCHD で撮影したビデオを見ることが出来ない。
QNAP に「どうにかして」とお便りを送ったところ、数度のやり取りの後「現在のところ、仕様」という予想通りの答えとなった。
でも、サポート担当してくださった方はこの問題を知らなかったようで、色々と調べてくださった。
その中で、以前は(僕が前の NAS である 220 を購入した頃には)フリーウェアを使って変換していたが、その後フリーウェアの開発終了にともない、サポートできなくなった、という情報を得た。
QNAP は、アプリをダウンロードすることで機能を拡張できる。
機種によって提供されているアプリが多少違うのだが、少し前の機種では CodexPack というものがあったらしい。
これは FFmpeg の拡張コーデックで、入れると対応できるビデオ形式が増えたそうだ。
(アプリを増やせばメモリを食うようになるため、必要な人だけ入れれば良い、という配慮)
つまり、内部的にはフリーウェアである FFmpeg を使用していた、ということ。
FFmpeg は、非常に多くのビデオ・音声形式を相互変換したり、編集したりできるフリーソフトだ。
つまり AVCHD が見られた、「以前の」フリーウェアは使わなくなったが、その後は FFmpeg を使っていた、ということになる。
はて。FFmpeg なら、AVCHD にも対応できるはずなのだが。
しかし、今は CodexPack は提供されていない。
各種情報を総合して考えると、いまでも FFmpeg は使っているのだが、CAYIN MediaSignPlayer というサードパーティアプリの一部として提供されている。
そして、拡張コーデックは無償提供ではなく、別売りになっている。
ただ、この拡張コーデックを買ったとしても、AVCHD には対応できない。
CAYIN の WEB ページを見ると、ページ下部に FAQ があり、そこに「現在のところ AC3 には対応していない」と書かれていた。
QNAP でAVCHD が見られない最大の理由は、AVCHD で使用されている音声フォーマットである AC3 に対応しないためだ。
FFmpeg が対応しているのに、なぜ対応しないのだろう。
QNAP には ssh ログインの機能もある。
NAS の OS の基幹部分である Linux を見せてしまう、ということだ。
NAS は安定性が第一なので余りいじりたくはないのだけど、入ってみた。
ffmpeg コマンドを実行すると、たしかに入っている。
そして、usage メッセージには、ffmpegのコンパイルオプションが示される。
ここに、 --disable-decoder=ac3 と書かれていた。「ac3 は使えないようにする」という指示だ。
つまり、CAYIN が対応していないというだけでなく、その内部で使われている FFmpeg も、わざわざ AC-3 を使えない状態にしてある。
バージョンは、3.3.6 、結構古い。どうやら 2017 年のバージョンらしい。
Debian の一部としてコンパイルされたもの、らしい。
…他にも色々調べ物をしたが、見えてきたのはこういうことだ。
2011 年頃、FFmpeg プロジェクト内で管理方針をめぐる対立があり、分裂があった。
FFmpeg と機能的には同じだが、管理方針の違う libav というプロジェクトが興ったのだ。
当初は両者活発に活動していた。管理方針で対立はあったが、機能面では同じものを志している。
お互いに成果を取り入れつつ、それぞれ活動していたようだ。
これを応援するように、いくつかの Linux ディストリビューションでは、libav を採用する。
Debian も libav 派だった。
しかし、やがて libav は失速する。一部が飛び出して新プロジェクトを作ったとはいえ、多くの開発者は FFmepg に残っているのだ。
新機能は主に FFmepg で実装され、libav はバグ修正すらなかなか行われない状態になる。
2015 年頃、FFmpeg のプロジェクトリーダーが辞任し、交代となった。
トップが交代するということは、管理方針にも影響を与える。
このとき、引退するリーダーは「プロジェクトが分裂しているのは望まない。戻ってきてほしい」とlibav の開発者にメッセージを出した。
これがきっかけで、libav は2016年にはその活動を事実上停止した。
(一応、その後も 2018年まではリリースを続けているのだけど)
どうも、QNAP が古い機種で使っていて、開発終了になったライブラリというのは libav のようだ。
Debian なども、このときに libav から FFmepg に再変更している。
QNAP の内部の Linux が、どのディストリビューションをベースとしているかはよくわからない。
しかし、やはり同じように libav から FFmpeg に戻したのだろう。
ただ、これだけでは AC-3 非対応の理由にはならない。
AC-3 は、ドルビー研究所が考案した音声コーデックだ。
そのため、ドルビー研究所が特許を持っていて、使用するには特許料を払う必要があった。
「あった」という過去形で、2017 年には特許が失効している。
先に書いたが、CAYIN が内部に抱えている FFmpeg は 2017 年のものだ。
推察するに、CAYIN の開発を行っていた頃はまだ特許が継続していて、特許料の関係で AC-3 はサポートしないことにしたのだろう。
その後特許は失効したわけだが、「サポートしない」つもりで作成したソフトを、今からサポートするように変更するのもリスクが伴う。
そもそも、内部の FFmepg のバージョンがずいぶん古いのだ。これも、バージョンを変えたら、その上で動く CAYIN が正しく動作するのか、全チェックを行うのが大変だからだろう。
QNAP が CAYIN と提携したのは、2020 年…去年のことなので、今後どうなるのかはよくわからない。
翌日追記
CAYIN の内部 FFmpeg が 2017 年のもの、と書きましたが、勘違いでした。
QNAP は標準で内部に FFmpeg を2つ持っていて、QNAP が入れた(使っていない?)FFmpeg が 2017年のもの、CAYIN は 2020 年のバージョンでした。
しかし、AC-3 をサポートしていないのは同じです。
どうも「AC-3 自体の特許は失効したが、関連特許が残っているため念のためサポートを見合わせている」ということのようです。
追記終わり。
ということは、だ。
おそらく、内部の FFmpeg を、しれっと AC-3 対応に変えてしまえば、ビデオが見れるようになるのかもしれない。
AC-3 対応が目的ではないが、同様のことを試みている人がいる。
機種が違うし、このパッケージは「CodexPack」が入っていることを前提としているので、251D で動くかは不明だ。
変なことをして NAS の動作を不安定にするのも嫌なのだけど、どこかで試して見る価値はあるかもしれない。
→ 翌日試しました。AVCHD 動画も見られるようになりました。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
20年 phpSpreadsheet で小数点付き数値と見なせる文字列を入力するとおかしくなる
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
最近 NAS の話ばかりで恐縮だが、また昨日の続きだ。
文章を書くというのは現状の整理に役立つ。
昨日の日記を書いているときは、QNAP サポートとのやり取りを公開・記録して「仕様ということで、AVCHD を見るのは諦めるしかありません」というまとめにする予定だった。
でも、それまでに集めたデータを、人に伝えるために整理しているうちに「あれ? これ、なんとかなるんじゃないの?」と思うようになった。
それが最後に書いた部分で、含みをもたせた終わり方になった。
この時点では自分では試しておらず、可能も不可能も言い切れる段階にないと思ったためだ。
現時点で続きを書いているというのは、もちろん進展があったためだ。
完全ではないが、QNAP から AVCHD の動画を見られるようになった。
ただし、Web アプリの QuMagie からの再生だけ、うまくいっていない。
写真閲覧の機能が充実しているだけに、この点が残念だ。
具体的に言えば、AVCHD から mp4 へのトランスコードは可能になるのだが、QuMagie だけは元ファイルを参照しようとしてしまう。
FileStation や VideoStation では、トランスコード済みのファイルを参照するように設定する項目があるのだが、QuMagie にそのような設定が見当たらないのだ。
(Android アプリ版の QuMagie では設定が行えるため、動画の再生に支障はない)
そんなわけで、完全ではないがかなりの状況改善だと思う。
では、設定方法を記そう。
前提条件として、NAS に ssh ログインして管理者権限で作業を行う必要がある。
管理者権限での ssh 作業というのは、「NAS を壊すかもしれない行為」だ。
意味が理解できない人はやるべきではない。
ただ、Linux などに慣れている人であればさして難しい作業ではない。
251D の、日記執筆時点での環境を前提に話を書くが、多少違っても対応できるように、作業の「意味」も記しておく。
まず、NAS を ssh ログイン可能な状態にしよう。
コントロールパネル → ネットワークとファイルサービス → Telnet / SSH で、SSH 接続を許可する。
このとき、「アクセス許可の編集」で、接続できるユーザーも設定しておこう。
ssh クライアントは自由に選んでくれ。…この言葉の意味がわからない人は、NAS を壊す危険があるので諦めよう。
ssh ログイン可能なことを確認したら、ひとまずこの作業は終わり。
つづいて、AppCenter から FFmpeg をインストールする。
普通、AppCenter には QNAP 純正のアプリしか表示されないが、AppCenter には「サードパーティのアプリ」をインストールさせるための機能もある。
海外には QNAP Club という大きな QNAP ユーザーのコミュニティがあり、そこでは、AppCenter に設定することで直接インストールできる形式のアプリをたくさん公開している。
これを AppCenter に設定しよう。
AppCenter を開き、右上の歯車アイコンをクリックし、「設定」パネルを開く。
「アプリリポジトリ」のタブを開き、「追加」ボタンを押す。
すると、リポジトリ(アプリ置き場)の URL などを尋ねられる。
名前は QNAP Club 、URL は https://www.qnapclub.eu/en/repo.xml を登録しよう。
ユーザー名などは不要だ。
これで、AppCenter の左端に「QNAP Club」というアイコンが表示されるようになる。
そのアイコンを選ぶと、QNAP Club の「マイアプリ」を表示した状態になる。
過去にインストールしたアプリの一覧だが、当然なにもない。
左端から2番めの縦の帯(言い方が難しいな)の中に「マイアプリ」と「すべてのアプリ」の切り替えがあるので、全てのアプリを表示する。
大量のアプリが表示されるので、上にある虫眼鏡アイコンをクリックし、 ffmpeg を検索しよう。
日記執筆時点では、バージョン 4.4.0 だった。
後はインストールするだけだ。
この ffmpeg は ac3 にも H.265 にも対応しているので、AVCHD だけでなく、最近のスマホの動画形式も見ることができるようになる。
(公式には CAYIN の有料コーデックを買わなくては H.265 対応にならない、ということになっているのだが)
さて、ffmpeg が入っても、QNAP の OS はこれを使ってくれない。
現在入っている ffmpeg ではなくこちらを使うように…OS を騙す設定をしよう。
ここからは、ssh での作業だ。
まず、AppCenter でインストールされたパッケージは、各種共有ディレクトリと同じ階層の隠しディレクトリに入る。
ただ、この共有ディレクトリの実態は、環境により異なるらしい。
環境によりディレクトリが違うというのは、面倒な手間になる。
そこで、QNAP では、ソフトリンクによってこの違いを隠蔽する。
/share/Public がソフトリンクになっていて、ここにアクセスすれば共有ディレクトリにアクセスできる。
まずは、このディレクトリのソフトリンクがどうなっているか確認しよう。
(ls -l で確認できる)
251D の場合、
ls -l /share/Public
lrwxrwxrwx 1 admin administrators 21 2021-07-11 10:46 /share/Public -> CACHEDEV1_DATA/Public/
という結果が得られた。/share/CACHEDEV1_DATA/Public が共有ディレクトリの実態だ。
このディレクトリと同じ階層の隠しディレクトリ、.qpkg の下が、パッケージからインストールされたアプリが入るディレクトリだ。
つまりは
/share/CACHEDEV1_DATA/.qpkg
の下で作業を行う必要がある。
ディレクトリ内には、少なくとも、先ほど入れた ffmpeg と、トランスコードなどを行うプログラムである MultimediaConsole が入っていると思う。
251D ユーザーでトランスコードを使いたいなら必須とされる、MediaSignPlayer も入っているだろう。
(少し以前の機種のユーザーであれば MediaSignPlayer ではなく、CodexPack が必須となるようだ)
さて、MultimediaConsole と MediaSignPlayer の下には、それぞれ別の ffmpeg が入っている。
どちらも、ac3 や H.265 のサポートを外してあるものだ。
(昨日も書いたが、ライセンスの問題があったのだろう)
具体的なファイル位置は、以下の通りだ。
ffmpeg/ffmpeg
MultimediaConsole/medialiblary/bin/ffmpeg
MediaSignPlayer/CodexPackExt/static/bin/ffmpeg
ffmpeg/ffmpeg で、それ以外の ffmpeg を上書きする。
まぁ、上書きと言っても実際には、古いものは ffmpeg.bak のような名前にリネームしておき、新しいものをソフトリンクしておくのが良いと思う。
なお、普通に ffmpeg を起動するときは /usr/bin/ffmpeg が動作するのだが、これは MultimediaConsole の ffmpeg へのソフトリンクだ。
まとめると、251D の場合は、ssh 上で行うべきは次の作業。
(ここまでに書いた意味を理解したうえで実行すること。最初に警告した通り、意味が分かっていないと NAS を壊す可能性がある)
cd /share/CACHEDEV1_DATA/.qpkg/
mv MultimediaConsole/medialiblary/bin/ffmpeg MultimediaConsole/medialiblary/bin/ffmpeg.bak
mv MediaSignPlayer/CodexPackExt/static/bin/ffmpeg MediaSignPlayer/CodexPackExt/static/bin/ffmpeg.bak
ln -s ffmpeg/ffmpeg MultimediaConsole/medialiblary/bin/ffmpeg
ln -s ffmpeg/ffmpeg MediaSignPlayer/CodexPackExt/static/bin/ffmpeg
なぜ2つの ffmpeg を持っているのかは不明だが、現在は MediaSignPlayer をインストールしないとトランスコードができないので、MultimediaConsole のものは「歴史的経緯」で残っているだけかもしれない。
以上の作業で、AVCHD ファイル (拡張子 MTS)のトランスコードが可能になる。
一応オンザフライ(再生するその場で変換を行う)のトランスコードも可能なのだけど、処理速度が遅くて実用にならない。
あらかじめトランスコードを行う設定をしよう。
なお、「あらかじめ」のトランスコードの場合、ファイルが生成されるので保存容量を使う。
元の品質と処理後の品質にもよると思うが、僕は「内容が確認できれば良い」と割り切って、360p のデータを生成することにした。
(デフォルトもこの値なので、お勧めなのだろう)
我が家の場合、元はハイビジョンの 1920 x 1080i。
これを 640 x 360p に変換するので、この時点でデータ量は 2/9 になる。
実際には圧縮の効きやすさとか、動画ごとの特性もあるのだろうと思うが、データは 1/5 ~ 1/10 程度のファイルサイズになるようだ。
このくらいなら利便性の代償として、使っても良い程度の容量に思える。
MultimediaConsole アプリの「トランスコーディング」設定を行うだけで、特に難しいことは無い。
これは標準の機能なので詳しくは解説しない。
最後に、動画を再生する際に、トランスコード済みのファイルを参照するように設定する必要がある。
ある程度トランスコードが終わってから、ファイルが生成された動画を使って確認するといいだろう。
・アプリの場合、動画再生しようとした時点で、品質を聞いてくると思う。
360p を選べばよい。「この設定を記憶する」をチェックしておけば、今後は常にその品質を使ってくれる。
・QTS 上の FileStation (つまり Web アプリ)の場合、MediaViewer というウィンドウが開く。
再生できないと言われるが、これは元ファイルを参照しているため。
右下の、フィルムと歯車を組み合わせたアイコン(ビデオ設定)を開き、「オンラインストリーム再生」の項目を「360p」にすると再生される。
設定は記憶されるので、以降はどのファイルを開いてもすぐに再生されるようになる。
・VideoStation の場合も同様に設定する。というか、FileStation で開く「MediaViewer」の実態は VideoStation の再生ウィンドウのようで、上の設定はこちらでも活きているはず。
・PhotoStation では、動画を見ようとすると再生品質を聞いてくる。
360p を選べばよいのだけど、記憶させる設定はなく、毎回聞かれる。
・CAYIN MediaSignPlayer では、元のファイルとトランスコード済みファイルが並んで表示される。
トランスコード済みを指定すれば見ることができる。
(しかし、CAYIN はトランスコードに必要だから入れているだけで、全体に使いやすくはない。
わざわざ使う必要はないだろう)
そして、最後だ。
Web アプリ版の QuMagie 。最初に書いた通り、設定の方法がわからず、動画が見られない。
AVCHD ではない、普通にみられる動画で実験してみると、QuMagie で動画を見た場合にも、右下に歯車アイコンが表示され、品質を設定できる。
ただ、この時設定した品質を記憶してくれないのだ。
そのため、必ず「元のファイル」を表示した後で「トランスコード済みのファイル」を再生するように指定する必要がある。
この時点で、AVCHD は元ファイル表示ができずに終わりなのだ。
非常に残念だが、ビデオを気軽に見たい理由は「家族に見せるため」だ。
僕が見たいのであれば、Windows 上でファイルを開けばよい。
なので、目的はほぼ達成されたと言ってよいだろう。
FFmpeg を公開している、QNAP Club に感謝。
翌日追記
Amazon Fire TV Stick 用の Qmedia も試したが、動画は見られなかった。
トランスコード済み動画を使用する機能がなく、360p を指定してもオンザフライになってしまう。
このため、使い物にならないくらい遅い。
Fire TV Stick だからテレビが前提で、圧縮しない元データで見るという前提のようだ。
もっとも、この Qmedia というソフト、Fire TV 専用であまり使いやすくなかった。
(家族の想い出ベースで…写真と動画を一緒に見たいのだが、Qmedia では写真と動画は全く違うもの、という扱いだった)
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
子供たちが夏休みに入った。
小中学校は20日で終業式。高校は21日だった。
なので今日から夏休み。
これで…ゆっくり眠れる。
長男の高校は家から遠いため、朝7時には家を出ないといけない。
そのためには6時に起きて食事をしないといけないし、お弁当を作る必要もある。
そのため、僕は4時半には起きていた。
一方で、中学生の長女は塾に通っており、今時の塾は終わるのが夜10時近い。
子供をそんな夜遅くに一人で出歩かせるのは怖いため、送迎は僕が車で行っている。
このため、どうしても寝るのが11時すぎになってしまう。
まぁ塾は毎日ではないのだが、これが地味にきつい。
子供を学校に送り出した後に寝たりして、睡眠時間のつじつまは合わせているのだけど。
夏休み中も塾はあるし、高校の登校日もあるのだけど、少し余裕をもって寝られるだけでもありがたい。
夏休みに入る前に梅雨は明けているのだけど、今年の梅雨はひどかった。
特に7月の頭は、毎日日本のどこかで豪雨による災害警報が出ていた感じ。
僕の住んでいる鎌倉でもレベル4の避難指示が出たし、熱海では土石流が起きて多くの方が亡くなった。
幹線道路が壊れたことによる、付近住民の生活に対する影響も大きいという。
観光地としての熱海のあたりは大丈夫なのだが、旅行のキャンセルなどの被害も大きいという。
そう聞くと旅行に行ってあげたい気になるのだが…今年もコロナの影響で外出自粛も呼び掛けられているし、夏の家族旅行は予定していない。
コロナの影響で1年延期されたが、オリンピックは明日から開催。
開催直前になって、サプライズを狙って隠されていた開会式などの関係者が明らかになったところ、過去のいじめや障碍者に対する差別などが次々と明るみになり、辞任に追い込まれている。
開会式の楽曲が使えなくなり、今日になって演出自体も使えなくなった。
どうするかは現在検討中とのこと。
ロンドンオリンピックに関与したロックミュージシャンとかは前科持ちばかりだった、ということを言っている人もいたが、別にそれは構わないと思う。
しかし、差別やハラスメントを無くす、という建前のオリンピックで、障碍者の努力をたたえようというパラリンピックで、障碍者に対して差別意識を持っている人を関与させるのは、批判が出て当然だろう。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
オリンピックが始まったが、IOC ではなくて、IOCCC の話。
IOC は International Orimpic Comittiee (国際オリンピック委員会)の意味だけど、
IOCCC は the International Obfuscated C Code Contest(国際難読Cコードコンテスト)だ。
IOCCC の話は、昔の日記でちょろっと出したことがある。
「難読」ということになっているけど、この意味は多様だ。
ソースを見ても動作が想像できない、程度に考えておくとよいと思う。
だから、数学的に高度なことを行っていて想像つかないようなものもあれば、C言語の仕様を悪用しているものや、単に読む人に対する「いたずら」をしているものもある。
そしてもちろん、読めなければいいというだけではない。近年は「驚くような動作」が求められるようになっている。
昔、興味を持って入選作のプログラムを読もうとしたことがあったのだけど… いや、全く歯が立たなかった。
特に古いプログラムは、現代の環境では動かないものも多く、動作させながら理解することも難しい。
ところが数日前に、過去に入賞した全作品の解説を、日本語で行っているページが今年に入ってから作られているのを知った。
現代の環境で動かすためのパッチなども示されている。
これがまた、面白い。
解説を読んで感心したり、面白そうなプログラムは自分でも動作させてみたりしながら、何日もかけてゆっくり楽しんでいる。
いったい誰がこんなページを、と思って確認したら、近年の IOCCC で常連の日本人だった。
しかも、その受賞作のいくつかは、IOCCC とは無関係に、その動作のすごさがネットで話題になっていたりしていて、見たことがあった。
ところで、第1回大会は 1984年に開かれている
この時の大賞作品について少し話をしよう。
C言語では、プログラムの制作者は必ず「main」と名付けられたプログラムを作り、それが最初に呼びだされることになっている。
しかし、対象作品には main がない。それどころか、プログラムが1行も書かれていない。
代わりに、main という名前のデータを定義している。このデータも、意味不明の数値が並んでいるだけだ。
じつは、C言語では「名前」にプログラムとデータの区別はない。
だから、main という名前のデータがあれば、言語のシステムはそれがプログラムだと思って最初に呼びだしてしまう。
ところが、内容は数値データだ。実はこの数値データは、当時 UNIX の世界では一般的だったコンピューター、PDP-11 の機械語命令コードなのだ。
そんなわけで、このプログラムは大賞をとってはいるが、PDP-11 がないと動かない。
先に僕が「現代の環境は動かない作品も多い」と書いたが、要求されるマシン環境すら限定されるのだ。
さて、話を戻して、この解説記事を書いてくださっている人の話。
IOCCC の常連と書いたが、2015 年の作品で「1984 年の作品を動かすための PDP-11 エミュレータ」を作っている。
これにより、PDP-11 がないと動かないはずの作品ですら、動作させることに成功している。
とにかくこのコンテストが好きで、過去の作品の動作も見てみたい、という愛にあふれている。
愛のある人が解説をしているのだから、その面白さは保証されていると言ってよいだろう。
最後に自分の想い出語り。
このコンテストの「存在」を知ったのはずいぶん昔…年齢がばれるが、大学生の時に友人から聞いたもので、1992年ごろだったと思う。
その時はまだ WEB も普及していなかったし、話に聞いただけで作品を直接見たわけではない。
でも、 2["abc"] と書くことで c を取り出せるとか、配列に機械語を入れて呼び出すことができるとか、C言語の「低レベルな」仕様の話を聞いて、すごく面白いと思ったものだ。
(僕は当時、PDP-11 を参考に作ったという MC68000 CPU のアセンブラは理解できていて、C言語も初心者ではあったが理解していた。そのため、 [ ] が配列を意味するのではなくアドレス演算にすぎない、という話は素直に理解できたのだ)
当時の理解としては、とにかく仕様の穴を突くようなプログラムテクニックを競う、というようなものだと思っていた。
いや、実際初期の作品はそういうものも多い。
でも、制約の中で複雑な動作をつくる、という側面も大きい。
今だと、C言語以外でも文字数の制約の中でプログラムを作るようなコンテストは行われているのだけど、そういうコンテストのさきがけの一つともいえる。
となると、そこには単に「難読」というのを超えた、素晴らしい工夫がたくさん入っているのだ。
日本語解説ページで取り上げられている作品は非常に多く、まだ全部は読めていないが、そうした工夫を見るのは非常に楽しい。
とりあえず、コンテストの比較的初期の中から気に入った作品を1つ上げておこう。
この作品は、プログラムが「往復書簡」のように読めるように作られている。
もちろん、C言語のプログラムとしての制約があるため、英語そのものではない。でも、「英語っぽく」読めるように工夫されているのだ。
往復書簡の登場人物は、 char*lie と char lotte 。チャーリーとシャルロット、なのだけど、C言語の char 型の変数定義になっている。
英語そのものではないが、英語っぽく読める、というのはそういうこと。
で、この二人がラブレターを送りあっているのだけど、途中から仲たがいして、破局に至るまでがつづられている。
これはプログラムなので、コンパイルして実行できるのだけど、花占いのプログラムになっている。
「好き」「嫌い」って交互に表示するプログラムなのね。
で、これを作った作者のコメントによれば「char*lie と char lotte は非互換」とのこと。
(C言語わかる人ならわかるね)
つまり、英語のラブレターとして読めて、C言語のプログラムとしても読めて、実行すると恋愛占いで、その登場人物の相性が悪いのは最初からわかってるだろ、と、4つも意味を重ね合わせている。
超絶技巧。
これは、ソースコードが英語だ、というわかりやすさがあったので紹介したけど、他にも舌を巻くような作品ばかり。
行単位でランダムにソートしても、必ず動くプログラムになる作品、なんていうのもあったな。
プログラマーなら読んでみると楽しめると思う。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |