FM-TOWNSでのRS-MIDI
FM-TOWNSでRS-MIDIというと一般に外部クロック方式のものを指す。これはTOWNS-OSのMIDI-BIOSが外部クロックで割り込みするようになっているためである。
外部クロック方式は別名同期通信と呼ばれ、平たく言えば25ピンのRS-232CでTxC1(ST1、24番ピン)とTxC2(ST2、15番ピン)、RxC(RT、17番ピン)を用いて通信する方法である。より具体的に言えば、TxC2に基準クロックを入れるとその1/16のボーレートでTxDからデータが送信され、RxCに基準クロックを入れるとその1/16のボーレートでRxDからデータを受信する、という使い方をする。なお、TxC1は機器の内部クロックがそのまま出ている。MIDIの通信速度は31.25 kbpsなので、31,250×16=500,000 [Hz]のクロックをTxC2とRxCに入れることになる。当然のことながら、PC/AT互換機のEIA-574の9ピン端子では同期通信機能が削除されているので外部クロック通信はできない。
T-OSのMIDI-BIOSに対応したRS-MIDI I/Fには、ミュージカルプランのRS232C MIDI OUTアダプタとシステムサコムのSX-M232、下に追記した自作I/Fがある。このうち、ミュージカルプランのアダプターはMIDI OUTのみとなっている。SX-M232でMIDI INが機能するかは調べていない(T-OSのMIDI-BIOS上はINとOUT各1が用意されている)。
また、MIDI機器のTO-HOST端子に接続する場合は、RS-232CのTxC2(ST2、15番ピン)とRxC(RT、17番ピン)に外部クロックが入るものを選ぶことになる。ヤマハのCCJ-PC1NFが半分該当しており、T-OSのMIDI BIOSでMIDI-OUTを使用できる(少なくともTG300以降の音源、TG100でいけるかは調べてない)。なお、MU50のマニュアルには「FM-TOWNS側のシステムの問題で、RS-232C 端子に接続したMIDIインターフェースを通しての入力はできません。」とあり、MIDI-INを使用できない。これはシステムの問題というよりも、単純にCCJ-PC1NFではRxC(RT、17番ピン)が接続されていないためと思われる。
もちろん、今となってはCCJ-PC1NFは入手困難なので、ケーブルを自作することになる。この手のデータを示しているサイトとして、HOTARUIKA☆氏のサイトを紹介しておく。CCJ-PC1NFはCCJ-PC1に15番ピンの配線を加えたものであり、これに加えてPC側の15と17番ピンをつなげば良いと思われる。
一方、TOWNS-OSのMIDI-BIOS経由でMIDIを扱わないのであれば、PC-9800用のケーブルで接続する方法がある。ただ、この方法だとシーケンサーが奏、プレーヤーがCool!しかなくなってしまう。
www.asahi-net.or.jp www.vector.co.jp
追記。T-OSで使用できる外部クロック方式のRS-232C MIDI I/F(MIDI-OUTのみ)の自作記事を見つけたのでリンクしておく。これの50ページから52ページを参照のこと。
Debian StretchからBusterへのアップグレード
何かうまく行かないですねぇ。apt-get dist-updateをかけるとこんな感じ。
取得:5214 http://ftp.jp.debian.org/debian buster/main amd64 winff all 1.5.5-6 [16.4 kB] エラー:640 http://ftp.jp.debian.org/debian buster/main i386 gnome-themes-extra-data all 3.28-1 403 Forbidden エラー:641 http://ftp.jp.debian.org/debian buster/main i386 gnome-themes-standard all 3.28-1 403 Forbidden エラー:649 http://ftp.jp.debian.org/debian buster/main i386 gnome-accessibility-themes all 3.28-1 403 Forbidden エラー:1432 http://ftp.jp.debian.org/debian buster/main i386 gnome-tweak-tool all 3.30.2-1 403 Forbidden エラー:1433 http://ftp.jp.debian.org/debian buster/main i386 gnome-tweaks all 3.30.2-1 403 Forbidden 5,562 MB を 29分 40秒 で取得しました (3,123 kB/s) E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-themes-extra/gnome-themes-extra-data_3.28-1_all.deb の取得に失敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-themes-extra/gnome-themes-standard_3.28-1_all.deb の取得に失敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-themes-extra/gnome-themes-extra_3.28-1_amd64.deb の取得に失敗しま した 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-themes-extra/gnome-accessibility-themes_3.28-1_all.deb の取得に失 敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/a/attica-kf5/libkf5attica5_5.54.0-1_amd64.deb の取得に失敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-tweaks/gnome-tweak-tool_3.30.2-1_all.deb の取得に失敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/g/gnome-tweaks/gnome-tweaks_3.30.2-1_all.deb の取得に失敗しました 403 Forbidden E: http://ftp.jp.debian.org/debian/pool/main/k/kdeconnect/kdeconnect_1.3.3-2_amd64.deb の取得に失敗しました 403 Forbidden E: いくつかのアーカイブを取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。
しかたないのでStretchに戻しましたとさ。
カーネルまわりでinitramfs-toolsのエラー
最近、Debian GNU/Linuxでapt-get dist-upgradeをかけると、「インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました」と宣う。
最初は
- /var/lib/dpkg/info/linux-image-4.9.0-9-amd64.postinst
- /var/lib/dpkg/info/linux-image-4.9.0-9-amd64.postrm
- /var/lib/dpkg/info/linux-image-4.9.0-9-amd64.prerm
なりを消して
# dpkg --configure linux-image-4.9.0-9-amd64
をかけていたものの、カーネルまわりでinitramfs-toolsのエラーが出るのは基本ありえない。
ちょっと調べたら、/bootが一杯になっていたという……。仕方ないので/bootの中の古いカーネルを消しましたとさ。
ARecX6でOneSeg24
ARecX6というワンセグを6 ch分全録するハードウェアで遊んでいたり。公式サイトは閉鎖されたようで、普通の使い方をするのは難しくなっているよう。まあ、元々のファームウェアのまま録画データのvpp形式をts形式に変換(vpp2ts)して、適当なプレーヤーで再生することもできるけど、変換の時点で普通の使い方ではなし。
こいつはOpenRD-BaseにSianoのワンセグチューナー(世代としてはNice)をUSB接続したハードウェア構成になっているので、任意のLinuxディストリビューションで扱うことができる(元々のファームウェアもRedhat系だったらしい)。
自分の例だとU-BootでHDDからDebianを動かして、firmware-sianoパッケージを入れてDVBデバイスとして動かしてやる。ただ、そのままだとDVB用のファームウェアがロードされてしまうので、/lib/firmware/isdbt_nova_12mhz_b0.inpを/lib/firmware/dvb_nova_12mhz_b0.inpにシンボリックリンクを張り、ISDB-T用のファームウェアがロードされるようにする。(この辺りは普通にDebian機にSiano Nova B/Niceなチューナーを入れるのと同じ)
このようにしてDVBデバイスとして認識してしまえば、後は煮るなり焼くなり。dvbstreamとOneSeg24を入れればワンセグ全録サーバーの出来上がりである。
FFmpegで欠落フレームがある場合の音ズレ対策
注記・今はこんな感じに設定している。
映像ソースがノイズだらけの放送波とか、バグ持ちな機器で撮影とかで、動画ファイルに欠落したフレームが存在する場合、フレームの枚数で時間を管理しているプログラムやコンテナにおいては、欠落したフレーム分の時間がないものとなってしまう。こうなると、FFmpegで-asyncなどで時間を同期しようとしても、動画側の時間がずれてしまっているので、盛大に音ズレが生じてしまう。
したがって、元のデータの時間軸を維持した状態でフレームを補完することになる。FFmpegではフレームレートを指定する方法がいくつかあるものの、欠落フレームがある場合は、時間軸を維持するためにfpsフィルターやframerateフィルター、minterpolateフィルターで欠落したフレームを補完をしてやる必要がある。
なお、-rオプションでフレームレートを指定する方法は実在するフレームの数を維持して、フレームの数の合計×フレームレートを時間にする結果になるので不適当である。時間軸が無視される。
一番軽いのはfpsフィルター。こいつは指定したfpsよりも元データのフレームが多い場合はフレームを捨て、少ない場合は既存のフレームで補完する。逆に一番重いのはminterpolateフィルターで、フレームを予測して補完する。
まあ、自分の場合は映画やらアニメーションは逆テレシネして24 fpsにしてしまうので、fpsフィルターで一旦30 fpsにして、そこからdecimateをかけてしまう。decimateをかけてからfpsフィルターで24 fpsに変換する。ここでfpsでなくframerateフィルターを使用してしまうと、既存のフレー厶で補完するためにわざわざ残像を作ることになってしまう。
% ffmpeg -i in.ts -vf bwdif=0:-1:1,decimate,fps=24,removelogo=logo.png -acodec copy -async 100 -vcodec -pix_fmt yuv420p -vcodec libx264 -tune film -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=4/3:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=4:level=4.1" out.m2ts
指定するfpsは、入力するファイルのfpsを維持して、ただ単純に欠落したフレームを補完するなら30000/1001(約29.97 fps)のようにする。一方で扱いやすい形にしたいのであれば整数の30にする(NTSC系統の30000/1001 fpsだとドロップフレームがあるし)。映画やらアニメーションは本来NTSCの24000/1001 fpsではなく、24.0 fpsであるので、逆テレシネ前の段階で30.0 fpsにしておけばdecimateフィルターが24.0 fpsにしてくれる。
追記。Past duration 0.xxxxxx too largeというメッセージが出る場合は、fpsフィルターを別のものに変えてみる。自分のところではminterpolateフィルターではこのメッセージは消えず、framerateフィルターにすると消えた。 なお、decimateの後ろにfps=24とやってもメッセージは消えるものの、これでは元ソースに欠けがあると音ズレの原因になる。
FFmpegでのBDAV向けh.264の例
備忘用メモ。音声までは再エンコードしない(動画に比べて容量が大したことがない)。音ズレするならdecimateしないで30pにするのも手か。
ソースが1920x1080 pxの場合
ffmpeg -i in.ts -vf bwdif=0:-1:1,decimate,removelogo=logo.png -acodec copy -async 1000 -pix_fmt yuv420p -vcodec libx264 -tune film -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=1/1:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=4:level=4.1" out.m2ts
ソースが1440x1080 pxで画面アスペクト比が16:9の場合
ffmpeg -i in.ts -vf bwdif=0:-1:1,decimate,removelogo=logo.png -acodec copy -async 1000 -pix_fmt yuv420p -vcodec libx264 -tune film -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=4/3:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=4:level=4.1" out.m2ts
ソースがSDの場合
画面アスペクト比が16:9だとSARが32/27になり、最大refが6になる。
ffmpeg -i in.ts -vf bwdif=0:-1:1,decimate,removelogo=logo.png -acodec copy -async 1000 -pix_fmt yuv420p -vcodec libx264 -tune animation -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=32/27:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=6:level=4.1" out.ts
DOSBOXを高解像度V-TEXTにする方法
非常にマニアックな記事といえばその通り。
DOSエミュレーターの中でDOSBOXは既設のディレクトリーをマウントできるなど、扱いやすい特徴があるものの、こいつを日本語環境にして、つまりDOS/V化して使うとなると、
- DBCSベクター周りの実装に誤りがある
- 日本語キーボード(106とか)に対応していない
という点で困ることになる(DOSBOXの開発部隊はゲームに関係しないところはとことんやらない主義)。まあ、日本だとNEC PC-9800シリーズと互換機が絶対的多数で、少数FMR/FM-TOWNSがあった程度で、IBM系の資産がある人はPS/55やJ-3100を使っていたとか、HP-95/100/200LX、InterTop、DOSモバを使っていた層が大部分であるのだけど。
まず、DBCSベクターについては、DR DOS以外の互換DOS(例えばPTS-DOS)で共通する問題で、こいつはDISPV (Lepton氏、http://www.hmsoft.co.jp/lepton/software/dosv/dispv.htm)に付属するvesapat.exeを/jpオプション付きで起動することで回避できる。
次に、日本語キーボードについては、Windows版ではパッチが当たったものがあるものの、*BSD/Linuxだと諦めて英語キーボードにするというのが現実的な解である。
単純にDOS/V化
話が逸れた。単純にDOSBOXをDOS/V化するだけであれば、フォントドライバーとディスプレイドライバー、言語切り替えソフトを用意してやれば良い。これらソフトウェアを挙げると、
- フォントドライバー: FONTNX (https://www.nanshiki.co.jp/software/index.html?etcdos)
- ディスプレイドライバー: DISPV (Lepton氏、http://www.hmsoft.co.jp/lepton/software/dosv/dispv.htm)
- 言語切り替えソフト: CHEJ (https://www.vector.co.jp/soft/dos/util/se004219.html)
が一般的なところであろう。フォントドライバーとしてはFONTX2 (Lepton氏、http://www.hmsoft.co.jp/lepton/software/dosv/fontx.htm)が一般的であるものの、autoexecで起動できる点から代わりとして軟式で公開されているFONTNX (https://www.nanshiki.co.jp/software/index.html?etcdos)を使用した。また、DISPVの代わりのディスプレイドライバーとしてはDspVV (Torry氏、https://www.vector.co.jp/soft/dos/hardware/se012544.html)がある。DISPVはグラフィックモードへ対応していないため、グラフィックモードを使用する場合はDspVV/DspSSを使うことになる。
なお、通常のDOSを日本語化するのであれば、http://izumilib.web.fc2.com/drdos/docs/drinst.htmlを参照するとよい。
フォント入手先
なお、この他にフォントが必要である。最低限必要なのは
の3種類である。新たにX11用のbdfフォントを変換してもよいものの、入手元を下記する。(出水は自作、東雲などのX11用は以前変換したもの)
izumilib.web.fc2.com izumilib.web.fc2.com izumilib.web.fc2.com izumilib.web.fc2.com
また、平木敬太郎氏のサイトでもFONTX2形式のフォントを公開している。
設定
これらのフォントファイルを適当なディレクトリー(ここではc:\font)に置いた後、fontn.iniを作成する。下記は出水ゴシック16ドット(JIS2004版、izmg1604.fnt)とANKフォントを使用した例である。
[CODE]
[FONT] ; Install font file.
UNVHN16X.FNT
UNVHN19X.FNT
izmg1604.fx2
ここまで準備できれば、
C:\> c:\path\vesapat.exe /jp
C:\> c:\path\fontnx.exe /p=c:\font\
C:\> c:\path\dispva.exe /hs=on /fc=0
C:\> c:\path\chej vt // jpでもよい
とすることでVGA画面で日本語が表示できるようになる。必要に応じこの辺の内容をdosbox-0.74.confの[autoexec]の中に入れてやれば、起動時に自動的に日本語環境にすることができる。
高解像度V-TEXT化
ここまでが前フリである(長かった……)。
実はDOSBOXはディスプレイアダプターを変えられるようになっており、標準ではsvga_s3である。DISPVやDspSSのようなSVGA用のディスプレイドライバーで800x600 pxで使用する分にはこの設定のままでよいものの、DOSBOXで使用できるディスプレイアダプターに適合するディスプレイドライバーがあればSVGA以上の解像度を扱うことができる。
S3に関してはLepton氏のDISPS3が存在するものの、確認したところうまく行かなかった。市販ソフトのDOS/Vスーパードライバーズ/DOS/Vスーパードライバーズ32の中にもS3用ドライバーがあるものの、所有していないので確認できていない。
その他のディスプレイアダプターとしては、hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbeがあり、この中でSVGA以上の解像度を提供するのはsvga_s3, svga_et3000, svga_et4000, svga_paradiseである。この中でフリーなディスプレイドライバーが存在するのはS3を除くとsvga_et4000である。
ET4000にはChaN氏(http://elm-chan.org/)の作成したドライバーがあり、下記で入手できる。
こいつをディスプレイドライバー(DspVVの方がよい)の後にTSRとして起動してやることで大画面環境を得ることができる。
FFmpegビルドのメモ。
FFmpegのARIB字幕対応版を改めて導入したので、そのときのコマンド内容を備忘のためメモ。
FFmpegのARIB字幕対応版自体は下記に公開されており、gitか何かで拾ってくる。
ビルドする前に必要なライブラリーを入れておく。まあ、BSDならports / pkgsrcで一回ffmpegのビルドしてみるとか(一回FreeBSDのportsでビルドしているので、この辺はいい加減)、Debianならapt-get build-dep ffmpegあたりか。そして適当にビルドする。
% ./configure --enable-gpl --enable-nonfree --enable-libbluray --enable-libcodec2 --enable-libdc1394 --enable-libfreetype --enable-libmp3lame --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libspeex --enable-libass --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid
% make
# make install
configureのオプションは削れそうな気もしなくもない。
動画の煮るなり焼くなりのメモ
相変わらず動画関係で苦労している今日この頃。ということで忘れがちなコマンドを備忘的にメモ。
動画ソフト全般的な話
Debianの場合、non-freeなライセンスのものは含まない方針であるので、FFmpegのような動画関係のソフトウェアにはつらいものがある。よって、debian-multimediaなどの外部リポジトリーを導入したり、あるいは自分のところでビルドすることになる。
大抵はFFmpegを自分でビルドするか? とか、一部作業をHandBrakeのような他のソフトでやる、果てはwineでWindowsなソフトを動かすということが迫られるわけで。
あと、DebianだとFFmpegが一時期avconvになっていた関係で、コマンドラインの記述が現在と違うことが結構ある。最新版と書いてあっても十年前の情報ということすらあるので、確認しながら行うと良い。
字幕(ソフトサブ)関係
字幕関係、特にARIB字幕はFFmpegの公式版ではできない(注: version 4.2で追加された)ので、以下の中のarib-ts2assでass形式にして抽出してからFFmpegか何かでsrtに変換するとよい。ただ、FFmpegでソフトサブを埋め込めるコンテナー形式が例えばmkvなど限られたり、mp4だとmov_textしか入らないので、外部運用するなど考えないとならず。
arib-ts2assは出力ファイル名に制限があるようなので、ASCIIなファイル名にで出力するようにするとよい。
% arib-ts2ass in.ts -o mid.ass
FFmpegでの字幕形式の変換はこんな感じ。
% ffmepg -i mid.ass -scodec srt out.srt
ちなみに、FFmpegには次のARIB字幕対応版が存在している。(追記: FFmpeg 4.2にて、libarib25経由でARIB STD B25の字幕に対応した)
追記: 別解として、wineでtsCaptionを用いてdemux/remuxする方法がある。
ロゴ消し
FFmpegにはdelogoとremovelogoの二つのフィルターが用意されており、あらかじめロゴ画像が用意できるならremovelogoを用いる。delogoはロゴがある座標範囲で周りの色と合わせてぼかすもの。removelogoで綺麗に消えない場合はその後にunsharpフィルターをかけるか、あるいはdelogoの方が綺麗に消える場合がある。
removelogoで消す場合
removelogoフィルター用の画像は元の動画と同じ大きさで、ロゴしか入っていない黒地のPNG画像が望ましい。
ロゴ画像を手動で作成するなら、VLC辺りのプレーヤーでスナップショットを撮って画像処理ソフト(ペイントでもよい)で整える。ただ、地デジのような1440x1080 pxをアスペクト比16:9の1920x1080 pxに引き伸ばしている動画だとスナップショットが1920x1080 pxになるので、幅を縮小することになる。
% ffmpeg -i in.mp4 -vf removelogo=logo.png (中略) out.mp4
ロゴ画像をコマンドラインで作成する場合は、以下を参照するとよい。
delogoで消す場合
一方、delogoの場合は次のようになる。
% ffmpeg -i in.mp4 -vf delogo=x=1322:y=954:w=46:h=66 (中略) out.mp4
ここでx=1322とy=954はロゴの左上座標が左から1322 px、上から954 pxであることを、w=46とh=66はロゴの幅が41 px、高さが66 pxであることを示している。ロゴ座標を簡単に調べる方法としては、comskipをかけたときにできるlogo.txtを参照するのが手っ取り早い。
Crop
FFmpegでの動画の画面範囲の切り抜きはcropを用いる。例えば元動画が1920x1080 pxで4:3な動画がピラーボックスになっている場合は、左右両側を240 px取り除いて真ん中の1440x1080 pxを切り抜く形になるので、こんな感じになる。
% ffmpeg -i in.mp4 -vf crop=1440:1080:240:0 (中略) out.mp4
ここで1440:1080は切り抜く動画の大きさで、240:0は左端から240 px、上から0 pxであることを示している。地デジな1440x1080 pxでピラーボックスの場合だと、1880x1880 pxを切り抜くことになるので、crop=1880:1880:180:0となる。これだと画素が正方でないので、正方にするなら、-aspect 4:3 -s 1440x1080で1440幅に引き伸ばしてやることになる。
また、SD放送の720x480 pxだと、同様に540x480を切り抜く形となりcrop=540:480:90:0、さらに画素を正方にする場合は-aspect 4:3 -s 640x480と幅方向に引き伸ばすことになる。
動画のアスペクト比の変更
FFmpegだと、-aspect 16:9なりで指定する。通常は-s 1920x1080のように画面の大きさも同時に指定してやると良い。
CMカット
comskipを用いる。前回書いているので省略。
動画周りこもごも。
録画環境を作ってしまうと、恐ろしい勢いでディスクを消費してしまう。8 TBなハードディスク何台買ったっけ……。
ちなみに、px4_drvでPX-Q3U4は問題なく認識。しっかし、熱に弱いのは確かで、ケースばらして運用してたり。
録画データの後処理としてComskipを入れてみたり。UNIX系OSへのComskipの移植はいくつかあるけれど、ffmpegとの兼ね合いからErikkashoek版を使用した。
ただ、こいつ単体だと扱い辛いので、Nagata氏のラッパースクリプトを今のffmpegに合わせて修正して使用した。まあ、変更点なんてconcat周りとかパイプ周りとかなので、知識があれば対した内容でないので省略。
こんな風にCMカットは省力化したものの、まあ、精度が低いのは確かなので、ファイルの大きさを見て、可否を判断している感じであったりする。
問題と言えば、ffmpegがARIB字幕の書き出しに対応していないので、字幕が吹っ飛ぶことか。ロゴ消しはできても、ねぇ。
DPT-S1を買ってしまった。
あははは。
発売当初に香港の店頭で買いかけたBOOX NOTEと同じくらいの値段(在庫なかったので買えなかったけど)だけど、画面がA4相当というのが最大の理由。大きいのは正義。
10インチなタブレットならあるし、似た大きさのe-inkならPocketBook Pro903があるしで、振り返ればBOOX NOTEはいらなかったのでした……。
ただ、ファイル形式がPDFしか扱えないので、論文やら規格のデータはともかくとして、CBZ/CBRやらテキストファイルの扱いは考えどころ。せめてテキストファイルくらいはと思わずにいられない。
そこでCBZ/CBRからpdfへの変換はこんな感じでやった。この例はCBZで内部がjpgなものの場合。
$ for f in *.cbz ; do mkdir .cbzconv ;cd .cbzconv ; unar ../"$f" ; mv ./*/* .; mogrify -format pdf *.jpg ; pdftk *.pdf output ../"${f%*.cbz}.pdf" ; cd ../; rm -rf .cbzconv; done
説明しておくと、unarはzipの文字化け対策、その次の移動はdebianのunarの-no-directoryオプションがまともに働かないために行っている。また、ImageMagicでのpdfへの変換はconvertで一気に単一ファイルにしてしまうと、オンメモリーでやろうとして恐ろしい量のメモリーを消費するので、mogrifyで画像をそれぞれpdfにしてからpdftkで結合している。
さすがに回転とか解像度合わせとかをやりだすと大変なので、アーカイブ形式を変えるだけ。
Ryzen 5 2400Gでの環境構築
相当放置していた環境構築について、ケースを買ったことからようやく重い腰を上げる。
まず、不本意なことにOSがUbuntu 18.04LTE。後述するドライバーまわりの都合でLinuxのカーネルバージョン4.15以上かつメジャーなディストリビューションとなってしまうため。
- Linux: Wacomのペンタブレットを使用することになると、FreeBSDが候補から外れる。
- Linuxカーネル4.15以上: Ryzen 5 2400GがLinuxの古いカーネル(最低でも4.12以上、内蔵グラフィックスを遣うには4.15以上)に対応していないため。Debianでカーネルバージョンを上げる手はないわけでないものの、巻き添えを喰らうものが多すぎて大変なことになる。
- メジャーなディストリビューション(CentOS 6/7/8、Debian 8/9、Ubuntu14.04/17.10/18.04): 周辺機器のドライバー、具体的にはチューナーがこいつらにしか提供されていない。
ちなみにハードウェア構成はこんな感じ。
- APU: AMD Ryzen 5 2400G
- RAM: 32GB
- M/B: ASRock AB350 Pro4
- HDD: SAMSUNG HD204UI(転がっていたのを流用。かなり古い)
- Optical: HL-DT-ST DVDRAM GH20NS10(上に同じ)
- Tuner: PLEX PX-Q3U4
- 接触式ICカードリーダー
結論から言うと地雷だらけ。もうちょっと枯れたハードを遣いましょう。(追記)おまけにメモリーが一枚ぶっ壊れてた。いやはや。
インストール
まず、起動に一苦労
まず、内蔵DVDドライブから起動させようとするも、つなぐポートがASRockで追加したSATAポートだったので起動せず。
付け替えるのも面倒なので外付けDVDドライブから起動させてみるも、途中で止まる。
画面がまともに映らず
今度はUSBメモリーにUbuntu日本語remixを入れて起動するも……画面の1/4程度しか映らず。構わずインストールを続けるも、途中でカーネルイメージのバージョンが違うと宣い止まる。
本家のイメージにして起動するも、インストーラーの途中で刺さる。調べると、同じところのよう……。
別機体・エミュレーターでインストール
仕方ないので、別機体にUSB経由で接続して、VirtualBoxの中でインストールする。物理HDDを認識させるため、
# VBoxManage internalcommands createrawvmdk -filename sdg.vmdk -rawdisk /dev/sdg
という具合にVMDKファイルを作成してSATA1にしておき、光学ドライブにUbuntu本家のインストールイメージを指定してインストールする。
表示問題
先にBIOSのアップデートをかける。SSDは遣わない構成だけど、気休め。
実機にHDDを移して起動させる。今度は画面がまともに映った……と思いきや、今度は画面の左右端が映り、真ん中が間延び。まともに映るときとそうでないときがあり、まともに映らないことの方が多い。
仕方ないので、プロプライエタリーなドライバーを導入。方法は下記を参照した。
相変わらず同じところで刺さって、ソフトウェア的に再起動やシャットダウンができない状態なものの、まあまあ動く状態にはなった。
あと、GNOMEなんて遣ってられないのでWindowMaker+WDM、GNUStepにする。これでほぼDebianと同様の環境になった。
PX-Q3U4ドライバー導入
最近、公式ドライバーが公開されたことから、それを導入してみるも、vermagicで撥ねられる。こいつはバイナリーを編集して何とかした。
非公式ドライバーはPX-Q3PE4まで対応が進んでいるみたいだけど、PX-Q3U4はまだ(追記: ハード的に同じだからいけた)。待ちですな。
BDAVの作り方
地球の裏側から弾丸で行って帰ってきてクラクラしていたり。
最近ようやくFreeBSD/LinuxでBDAVを焼けるようになったのでメモ。といいつつも、まあ、DLNA経由でPS3なりBDP-150から鑑賞できるのだけど。しかもほとんどwine上での作業。何というべきか。
wineでの作業になったのは、
- chotBDAV
- ImgBurn
といったツールがWindows用のため。前者はBDAV化するのに必要、後者はUDF 2.5/2.6のディスクイメージ作成に必要。今のところDebianだとUDF 2.5/2.6の作成ができず、一方でプレーヤーの中にはUDFバージョンを決め打ちしている代物もあるので、ImgBurnでイメージを作成してgrowisofsで書き込む。
それ以外のバケットサイズの変更(BD2FWなど)くらいならFreeBSD/Linuxでもできるし、タイトルを変更しないならrplsTOOLSとかも遣わずとも良いものの、まあ手抜き・不便極まりないのでやはりwineから動かす。
動作はPS3で確認。
XPSの表示・変換。
今や廃れた感のあるMicrosoftのXPS。今のWindows 10には標準でPDF仮想プリンターがついているので遣う機会が少なくなってきているものの、Windows 7だと標準でPDFを作れないので、PDF代わりとなっていることがある。
PSファイルで配布? WindowsではAcrobatだのGhostscriptなどのソフトウェアRIPなんて入っていることがそもそも珍しい(せいぜい仕事の都合でとかTeXしているとか)し、今時PSプリンターなんて組版屋くらいしか持っていない。
閑話休題。
BSD(Mac含む)とかLinuxとかでは、XPSなんて渡されても扱いに困ってしまうわけだけど、MuPDFはXPSに対応していたりする。mupdfをライブラリーとして遣っているソフトウェアでも同様に表示できる。
% mupdf in.xps
また、mutoolの1.10以降を遣えばPDFに変換することもできる。
% mutool convert -F pdf -o output.pdf input.xps
ただしDebian 9だと1.9なので、libgxps-utilsの中のxpstopdfを用いる。
# apt-get install libgxps-utils
% xpstopdf input.xps output.pdf
この手のファイルで表示できなくて困るファイル形式は、あとはMDIくらいだけど、WindowsのMODIで開くかサードバーティーの市販ソフトくらいしか方法がない。