AT-LP3XBT

レコードプレーヤーを買ってしまいました。
レコードの再ブームみたいなのからもう何年もたって、City Popブームというかバブルもそろそろひと段落という感じ。イギリスではPlayStation4/5のソフトよりレコードが売れてるとかいう報道もありました。前からなんとなく興味はあったレコードですが、もう今買わないと一生縁がない!と思い、ついにポチってしまいました。
www.audio-technica.co.jp
ちなみに、掲示板などのソース(??)によると現在国内で出回っている著名なメーカーの安価なプレーヤーの多くはaiwaOEM製品らしく、とりあえずどれもそこそこの音が出るという様子。
複数の候補はありましたが、ちょうどタイミングよく2か月ほど前に新発売となったAudio-Technicaのこの製品にしよう、と決めました。レコードのカートリッジといえばオーテクみたいな個人的なイメージがあり(※何も詳しくない自分の勝手なイメージ)、イヤホンやヘッドホンで何かとオーテクにはお世話になっているので今回も、といった感じです。Bluetooth機能は必要ないのですけど……まあそれはそれで。
さてレコードというのは自分のような年代にとってはまさに未知のメディアであるわけで、用語どころか概念みたいなところから調べることから始めなければなりません。幸いにも検索すればいくらでも情報は出てくるので、説明書とGoogle検索結果を交互に見つつ慎重に組み立てていきます。
水平出し、カウンターウェイト、アンチスケーティング、慣れないというかはじめての作業に苦戦しセットアップに1時間以上かかりましたが、どうにか完成。現状仕方なくメタルラックに乗せていますが本来はちゃんとしたラックに置くべきですよね。
いざ、針を落として聞いてみます。事前に用意しておいたユーミンをかけます。

サブスクのおかげで比較が容易

……ところが、明らかにピッチが速い、というか声が高い、ボイスチェンジャーがかかったような声。もしかして回転数を間違えたか? と思うも33回転で間違いなし。まさかと思い本体のスイッチで45回転に切り替えるとさらに速度が上がってしまいます。(あたりまえ)
最近は便利なものでターンテーブルスマホを置くと回転数を教えてくれるアプリなどもある(本当にいいアイデアですね)ので、早速スマホを置いてみると、なんと43rpmの表示。
もしかして不良品を引いてしまったかとかなり慌てたのですが、ここでもう一度セットアップを1から確認してみよう、と思ったところ

はい

ベルトがプーリーに正しくかかっていませんでした……(かけなおしたら33.3rpmになりました)

サイン会に参加するなど(右上)

実際に自分の家に12インチのLPがあるとその存在感に圧倒されます。中古も新譜も、いろいろ買って聞いていこうと思います。

BeyerDynamic DT880 PROのイヤーパッド交換

DT880 PROという超ロングセラーヘッドホンを使っています。
global.beyerdynamic.com
2007年発売、現在も新品で購入可能。先代のDT880は1980年発売だそうです(!?)。

購入から10年ほどたちイヤーパッドがかなりヘタってきており、耳にヘッドホン内部が当たるようになって耳が痛くなり長時間つけられなくなってきたこともあり、スペアパーツを購入しました。
beyerdynamic ( ベイヤーダイナミック ) EDT990V DT880PRO/DT990PRO用イヤーパッド 送料無料 | サウンドハウス
3780円。

My new gear...

購入から24時間たたずに商品が届きました。マジかよ

はい

物自体がとても丈夫でしかもロングセラー、本体もスペアパーツも容易に入手可能というと使ってる側からすると非常に安心感があっていいですね。(逆に昨今のワイヤレスイヤホンとか10年後も同じように使えますか? とか考えちゃいますね)
音も非常に自分好みなのでまだまだ使っていきます。

QSV対応FFmpegをコンパイルする2022(Gemini Lake、Ubuntu20.04編)


皆さん、FFmpegコンパイルしてますか?
誰しも人生のうち一度はFFmpegコンパイルしたいと思う時があると思います。
今回、ついに私もパッケージマネージャのバイナリでは不満な事例がでてきてしまい、さらに先日FFmpeg 5.0がリリースされましたので、いい機会と思いコンパイルしてみようと思った次第です。

想定環境

CPUはCeleron J4105(Gemini Lake)、OSはUbuntu Server 20.04 LTS。

Gemini LakeはIntel Atom系列のブランドの一つです。超低価格ノートにありがちなCeleron N4000がまさにこれとか、iGPUだけでいうとKaby Lakeなどと一緒の世代とか、でなんとなく分るでしょうか。
そしてUbuntuは20.04 LTSです。22.04 LTSはあと2か月あります。
……なんでこんなことわざわざ書いてるのかは後述。

目標

動画ファイルのエンコードをしたい、けど画質よりも変換スピードを重視したい。使用するCPUが高速とは言えない。
そのために、想定環境において(主要な映像コーデックの)ハードウェアアクセラレーションでのデコードおよびエンコード対応のffmpegがほしい。
ffmpeg本体のコンパイル以外はなるべく楽をしたいのでインストールできるパッケージがあればそちらで済ませる。
ヘッドレスサーバで動作させるのでX11関連のパッケージをなるべくインストールしたくない。

ドキュメントを読む

ffmpegコンパイル方法などインターネット上に数え切れないほどありますが、基本的には公式方面からドキュメントを集めていきます。

https://www.ffmpeg.org/documentation.html
他を読んでどうしても分からないときは結局ここ

HWAccelIntro – FFmpeg
ffmpegで使えるハードウェアアクセラレーションの確認。一応目を通す

CompilationGuide/Ubuntu – FFmpeg
Ubuntu等における一般的なffmpegコンパイルのガイド。3回読む

Hardware/QuickSync – FFmpeg
Intel CPUの世代とそれぞれで対応する映像コーデックのリスト、QSV対応バイナリのコンパイルオプションおよび実際のffmpegのコマンド例。3回読む

GitHub - intel/media-driver
Intel Media Driver(iHD driver)のビルド方法はREADMEに全部書いてある

Build FFmpeg QSV · Intel-Media-SDK/MediaSDK Wiki · GitHub
Intel Media SDK(MSDK)(libmfx)のドキュメント内にもffmpegコンパイル方法が書いてある。ふたつ上のとすこしかぶるけど

以上より

あたりが肝、というのが分かります。

それでは、主にCompilationGuide/Ubuntuを見つつ始めていきます。

FFmpeg依存パッケージのインストールとか下準備とか

コンパイルに必須のパッケージ。ただし、ガイドにあるようにffplayが必要ない場合それらの依存パッケージはインストールしなくてよいのと、Ubuntu 20.04に限り追加でlibunistring-devがインストールが必要のようですね。

sudo apt install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libmp3lame-dev \
  libtool \
  libvorbis-dev \
  pkg-config \
  texinfo \
  wget \
  yasm \
  zlib1g-dev \
  libunistring-dev
sudo apt install \
  nasm \
  libx264-dev \
  libx265-dev \
  libnuma-dev \
  libvpx-dev \
  libfdk-aac-dev \
  libopus-dev

上記のガイドではH.265やVP9、AV1など新しめの映像フォーマットにも対応するようにパッケージのインストールをしています。今回の主目的とずれるこれらの(ソフトウェア)コーデックは必要性は無いのですが、まあまあ汎用的に使えるバイナリを作ったほうがいいだろうという思いでほぼガイド通りにインストールします。
ただしAV1およびVMAF(これはコーデックではなく映像の定量的な評価システム)に関しては今回は除外しました。現代のハイパワーなCPUならともかくGemini Lakeには荷が重すぎると判断したためです。とはいえH.265とかOpusとかいつ使うかな......

mkdir -p ~/ffmpeg_sources ~/bin

ffmpegコンパイル済ファイルを置くディレクトリを用意します。

echo -e "/usr/local/lib\n/opt/intel/mediasdk/lib" | sudo tee -a /etc/ld.so.conf.d/locallib.conf
sudo ldconfig -v

この後自分でビルドした諸々がインストールされる場所をライブラリ検索パスに追加します。後ででもいいかも。

Intel Media Driver(iHD driver)

自分でビルドします。
ドキュメントにはUbuntu19.04以降ならaptでインストールできると書いてあるのですが罠です。
Ubuntu20.04でaptでインストールできるMedia Driverのパッケージを使ってビルドしたFFmpegはGemini Lakeでだけ使用できないという問題があるのです。
[Issue] KO hardware decode/encode with Gemini lake family · Issue #930 · intel/media-driver · GitHub
このissueが建てられたのは2020年5月で後にちゃんと修正されていますが、Ubuntu 20.04のaptでインストールできるバージョンは今も相変わらず2020Q1。
Ubuntu 22.04リリース後とか、Gemini Lake以外のCPUを使ってるとか、そういう場合はわざわざビルドする必要は無いと思われます......

sudo apt install \
  libdrm-dev \
  libgl1-mesa-glx \
  libgl1-mesa-dev

media-driverの依存パッケージ、ただしX11関連のパッケージはインストールしません

libva

media-driverのREADMEに従ってビルドします。

cd ~/ 
wget https://github.com/intel/libva/archive/refs/tags/2.13.0.tar.gz 
tar xzvf 2.13.0.tar.gz 
 cd libva-2.13.0/ 
./autogen.sh 
make -j"$(nproc)" 
sudo make install
gmmlib

同じくビルドします

cd ~/ 
wget https://github.com/intel/gmmlib/archive/refs/tags/intel-gmmlib-22.0.2.tar.gz 
tar xzvf intel-gmmlib-22.0.2.tar.gz 
cd gmmlib-intel-gmmlib-22.0.2 
mkdir build 
cd build 
cmake -DCMAKE_BUILD_TYPE=Release -DARCH=64 .. 
make -j"$(nproc)" 
sudo make install
Media Driver
cd ~/
wget https://github.com/intel/media-driver/archive/refs/tags/intel-media-22.1.1.tar.gz 
tar xzvf intel-media-22.1.1.tar.gz 
mkdir build_media 
cd build_media 
cmake ../media-driver-intel-media-22.1.1 
make -j"$(nproc)" 
sudo make install

Media SDK(libmfx)

既に依存関係にあるパッケージのインストールやlibvaのビルドは終わってるので、ドキュメント前半をすっ飛ばしていきなりビルドできます。

cd ~/
wget https://github.com/Intel-Media-SDK/MediaSDK/archive/refs/tags/intel-mediasdk-22.1.0.tar.gz
tar xzvf intel-mediasdk-22.1.0.tar.gz
cd MediaSDK-intel-mediasdk-22.1.0
mkdir build && cd build
cmake ..
make -j"$(nproc)"
sudo make install

FFmpeg

さてメインディッシュです。
AV1関連オプションを外し、libmfxを有効、パッケージコンフィグパスをmsdkがインストールされている場所に指定しなおしています。

cd ~/ffmpeg_sources
wget https://www.ffmpeg.org/releases/ffmpeg-5.0.tar.gz
tar xzvf ffmpeg-5.0.tar.gz
cd ffmpeg-5.0
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="/opt/intel/mediasdk/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs="-lpthread -lm" \
  --ld="g++" \
  --bindir="$HOME/bin" \
  --disable-ffplay \
  --enable-gpl \
  --enable-gnutls \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-libmfx
PATH="$HOME/bin:$PATH" make -j$(nproc)
make install
hash -r

これで、~/binにffmpegが生えてるはずです。

エンコードテスト

Big Buck Bunnyを変換してみましょう。
Big Buck Bunny

なお素の状態だとパーミッションで怒られるので、sudoなしでエンコードしたい場合は

sudo gpasswd -a $USER render

ユーザーをrenderグループに追加して再起動、あたりが楽でしょうか? udevをいじる方法もありますが。

以下の2つのコマンドを試してみます。

ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vf 'scale_qsv=1280:720' -c:v h264_qsv -look_ahead 1 -global_quality:v 36 -c:a aac -b:a 128k -ac 2 output.mp4

画質とサイズのバランスをとって720p。

ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vf 'scale_qsv=720:480' -aspect 16:9 -c:v h264_qsv -look_ahead 1 -global_quality:v 44 -c:a libfdk_aac -b:a 48k -ac 2 -profile:a aac_he_v2 output.mp4

小さな画面サイズでの再生を想定してギリギリまでビットレートを落として480p。

global_qualityで画質の調整をしています。数値を小さくするほど画質が良くなる代わりにビットレートは高くなります。
私の場合は720pでglobal_qualityを36、480pで44という数値にしてみました。ついでに480pでは音声のビットレートも馬鹿にならないくらい映像のビットレートが落ちているので、HE-AAC V2の48kbps、つまりradikoと同じコーデック・ビットレートにしてみました。
見てわかる通り、画質を犠牲にかなりファイルサイズを抑えています。
以上のそれぞれのコマンドでの実行結果は以下の通り。

変換前
720p、1016kbps、4.73倍速
480p、239kbps(にしてはなかなか!)、7.64倍速

はい

当初の目標通り、マシンパワーを考慮すればかなり高速・ビットレートを考慮すればそこそこの画質でのエンコードに成功しました。
正直こういうのって試行錯誤から実際に動作を確認するまでの段階までが一番楽しいですよね......まあ趣味なのでどこに労力かけようが楽しければ何でもいいのです。

省エネ自宅サーバとしての中古シンクライアント端末(Fujitsu FUTRO S740)

富士通の法人向けシンクライアント端末、FUTRO S740です。

jp.fujitsu.com

これを書いてる段階ではヤフオクで定期的に在庫が供給されており、数千円程度で比較的状態の良い中古品が手に入る状況です。おそらくどこかの企業か官公庁のリース落ちを中古業者が一括で買い取り、その在庫をチマチマ放出しているのでしょう。

USB3.0はフロントのみ
かわいい

購入した構成では、
CPU: Celeron J4105 (Gemini Lake, 4C4T, 1.5GHz-2.5GHz)
RAM: DDR4 SO-DIMM 4GB (1スロット, 空0)
SSD: 32GB (M.2 SATA)
という感じでした。

どうも実際の運用では組み込み向け(?)Windows10で使われていたようですね。シンクライアント端末というジャンルで売っていますが、ほぼパソコンです。若干BIOSに特殊な設定項目がありますがまあ無視してしまえば本当にパソコンです。

オンボードCPUのCeleron J4105はTDP10W。ファンレスです。
RAMは4GBが1枚、スロットの空きは無し。
ストレージはBIOSを確認すると本当に1つしかSATAが無いようです。すごい割り切りです。
サイズも165x147x36mmとかなりコンパクトでいい感じ。
電源はACアダプタ19V。コネクタ径は5.5/2.5mmです。しかしマザーボードの仕様を(なんだかインターフェースが少し違う兄弟機種みたいなものですが)見ると8V~24Vの入力に対応しているとのこと。
Kontron D3544-S D3544-S1, D3544-S1-woLVDS, D3544-S2, D3544-S2-woLVDS, D3544-S3, D3544-S3-woLVDS | Industrie-Mainboards | ROSCH Computer

変態
すごい絵面

なお今回の用途ではストレージは速度よりも容量(と手持ちの資産を有効活用)ということで、2.5''1TBのHDDに差し替えています。M.2からSATAの信号をそのまま取り出し、その上3.3Vの電源ラインを昇圧してSATA電源用5Vを生成するというおもしろアダプタを買いました。もちろんAliExpress。

手持ちの12VのACアダプタを使用し、Ubuntu Server 20.04 LTSをインストールしてみると、難なく動作。(もうすぐ22.04 LTSの季節ですね)

USB電流計にDCジャック/プラグを雑に追加した魔改造

しかもアイドル2W前半!! これはDC側での測定なので実際はACアダプタの損失も加わりますが、どちらにせよド省エネです。

というわけで小規模自宅サーバとしてこのS740を使っています。セットアップから2~3か月ほど経ちましたが至って快調。先代サーバのOrange Pi PC2(名前からわかる通りシングルボードコンピュータです)はこれにてお役御免です。

おやすみ

TX-L50 修理より帰還

ONKYOのAVアンプTX-L50が修理から帰ってきました。
ONKYO | オンキヨー ホームAV| 日本

修理に出したのはお盆頃でしたが帰ってきたのは年末なので、4か月以上かかってしまいました。経営のゴタゴタと昨今の半導体不足が重なって現在新規修理受付を一時停止しているほどなので仕方ありません。
オンキヨー、修理遅延。新規の修理受付を一時停止 - AV Watch

D級のAVアンプというのはどうもニッチ市場らしく後継品も無かったので、修理が無事完了してとにかく感謝感謝。

2021邦楽マイベスト10

今年リリース(アルバム/シングル、物理/配信問わない)された邦楽から個人的に好きな10曲を挙げます。
年末なので。


山本真央樹 - Prototype

昨年知ったフュージョンバンドDEZOLVE
彼らのアルバムが結構良くてかなり好みだったのですが、今年はドラムス山本真央樹のソロ1stが出ました。
景気良すぎて好き

フジファブリック, JUJU - 赤い果実

少し前にJUJUがJ-WAVE TOKIO HOT 100のゲストで出てた時SMEサウンドロゴの口真似をしてたのがすごい面白かった(曲と無関係のコメント)

NONA REEVES, 真城めぐみ - Ain't No Mountain High Enough

🐄モータウン🐄

POP ART TOWN - MOONLIGHT

Spotifyのレコメンドエンジンで知ったアーティスト
ホントこのSpotifyのシステムどうやってるんでしょうね、おすすめの精度が良すぎる

冗談伯爵 - ピンク・シャドウ

ブレッド&バターの楽曲(1974)のカバー
これもSpotifyのレコメンドエンジンより

冨田ラボ - MAP for LOVE

昨年J-WAVEで一時期流れてましたが今年になって配信リリース
冨田ラボの良さが最近になってわかってきました

東京事変 - 緑酒

WBSエンディング曲
ユーミンの深海の街が以前同じくWBSのエンディングに使われててセンス良いな~と思っていましたが、今年のエンディングも非常に良い感じ

OSTER project feat. 初音ミク - コンフェッション

OSTER節全開のメロディーと激エモ百合歌詞の大名曲フレンドシップ(2018)の3年越しの続編
OSTER projectは昔から追ってますが楽曲自体だけでなくアルバムの曲順に関してもすごいセンスが良く、今回のこの曲は今年出た2枚組ALの1枚目の最後から2曲目です。解釈一致~
ちなみにこのCDは秋のM3の新譜だったのですが、様々な事情を考慮し通販での購入となってしまい、OSTER氏に直接会えなかったのが心残りです……皆さんも推しに会えるときには会いましょう

矢舟テツロー feat. 野宮真貴 - 陽の当たる大通り~ヒッピー・デイ

こちらは若干無理をして実際に現場に行った話
自分がピチカートファイブを知ったのは10年くらい前だったのでリアルタイムで活動をしていたころを知らなかったのですが、先日のBillboard Live横浜ではじめて生で歌う野宮真貴を見ることができて本当にうれしかった。というかこのライブでは小西康陽も突然一緒に歌いだすしほとんどピチカートだった

あつぞうくん feat. まいん - 渚にて

初音ミク歌唱で発表されていた楽曲(2011)のリアレンジ
すべてが美しい。

そのほか雑感

Spotify Premiumに入った

Spotifyのおかげでさらに沢山音楽を聞くようになったが、同時に様々な理由でストリーミング解禁されてない曲にも意識的に触れていこうと思えるようになった。

プロセカ

はじめてソシャゲというものに手を出してしまった。このプロセカも含めて、そういえば今年はカバーをたくさん聞いたな~という印象があります。
あとこのゲームで初めて知った曲が実はすでにニコニコ動画でミリオン行ってたりして、最近全然ボカロ聞けてないことに改めて気づかされました。来年はもうちょっとちゃんとボカロを聞きたい。
瑞希ちゃんが好きです

ていうか

全然音楽聞き足りない。もっと音楽聞こう。

ScanSnap S300のローラー交換

べたつくようになってしまったScanSnapのローラーを交換します。初期症状はジャムる程度でしたが最近はシャフトが回りすらしません。

ローラーは4個、シャフトは2本。(写真は交換後のもの)

いわゆる隠しネジみたいなものは無いです。
見えているネジ全部外したらあとは爪で取り付けられているだけなので、いい塩梅の角度を探ってどんどん爪を外していきます。
側面→前面→後面の順に外装を外すといい感じ。

真鍮色の部品が真鍮のストッパーです

ついにシャフトが見えてきた、という時にちょっと手間取ったのは真鍮製(?)のストッパー。90度回転させてスライドさせると(説明が難しい)シャフトがスッと抜けます。

はい

もはやローラーとしての役割を果たしていない何かをカッターで削ったりパーツクリーナーで拭き取ったりします。

穴が細すぎ

AliExpressで互換性があると思われるローラーを買いましたが明らかにこいつの内径とシャフト径があっていません。即席治具作って全体重使って押し込みました。つらい。

新型のYouTube見たらめっちゃスキャン速度向上してたけど見なかったことにした

仮組みでとりあえず動いたのですが若干動作が怪しい感じ。しかし100枚くらいガシガシスキャンしてやるとすっかり調子を取り戻してくれました。そのまま本組みして素人修理終了。

おうちADF最高~~!