2021年07月18日の日記です


続・FFMPEG  2021-07-18 12:27:59  コンピュータ

最近 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 では写真と動画は全く違うもの、という扱いだった)



同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

FFMPEG【日記 21/07/17】

別年同日の日記

07年 電車のパン

13年 ハングアウト

16年 山登り

18年 年棒制


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -