debian on macOSでKTV-FSUSB2/V3を使ってts抜きをする
https://gyazo.com/7252700afbb2ea3273c8503805b16bdf
BBTを受信している様子
tl;dr
macOSネイティブでは各種ソフトウェアをビルドできないため、仮想環境を利用します
現状、長時間安定利用できる段階まで至っていません
後述するが、数十分程度利用すると録画が一切できなくなる
多分raspberry piなどのdebian単体でも同様の手段で通じます
dockerの場合はrecfsusb2iのDockerfile
用いるもの
macOS Catalina
VMWare Fusion
個人利用は無償です
VMWareのサイトがぶっ壊れていて無料ライセンスの払い出しができないので現状30日試用しています
VirtualBoxだとアクセスしまくった時に自動でUSBが外れた扱いになるのでおすすめしませんが、いけることはいけるかもしれません
KTV-FSUSB2/V3
S/N: K1510
無改造で利用でき、recfsusb2iで録画ができます
他の型番の場合、合う録画ツール・手順が違うので、Wikiなどを参考にしてください
http://ktvwiki.22web.org/index.php?FrontPage
判明しているほぼ全ての事柄が書かれていそうな勢いがある
斧が死にかけなので、逆に1510だとWindowsで使えない事態に…
drv-fsusb2i-WinXP-20160204.zip
現状落とせたWinXPだけでもage
recfsusb2i
recfsusb2nと違いカードリーダーを読み取る機能がないため、別途B-CASカードを読み取らせるかなんちゃらする必要があります
手順
Fusionにdebianをセットアップする
デスクトップ環境は不要なのでチェックを外していいですが、SSHにチェックを入れてください
手元ではroot pass/user name/user pass共にdebianで進めました
作った仮想環境の設定からKTV-FSUSB2/V3を接続します。
一回仮想環境の画面からdebianユーザーで入り、ip aを見る
172.16.114.129みたいなアドレスがあるのでメモる
iTerm2などからssh debian@172.16.114.129 でまんま入れる
以下の作業は基本全てrootで行ってください
root 以外の場合は
code:usb_tuner_rule
echo 'SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0046", MODE="0664", GROUP="video"' | sudo tee /etc/udev/rules.d/91-tuner.rules
code:sh
sudo usermod -aG video username
sudo udevadm control --reload
sudo udevadm trigger
前提となるパッケージを入れていきます
code:card.sh
apt-get install git curl pkg-config cmake zip unzip vim
# apt-get install gcc g++ libboost-thread-dev libboost-system-dev libboost-filesystem-dev
# ↑必要かどうか忘れた…
apt-get install libpcsclite-dev libpcsclite1 pcsc-tools pcscd
pcsc_scan
# -> Japanese Chijou Digital B-CAS Card (pay TV)
libarib25を導入します
libaribb25というのもあってまどろっこしいですが、使うのはlibarib25とします
そうじゃないと動かなかったので…
code:libarib25.sh
cd
git clone https://github.com/stz2012/libarib25.git
cd libarib25
# 読み取らせたい libpcsclite がある場合 cmake/FindPCSC.cmake の include の上に set(PCSC_LIBRARIES /usr/local/lib/libpcschogehoge.so) などで無理やり上書きする
mkdir build
cd build
cmake ..
make
make install
make clean # いらないが一応。前提を書き換えるたびにちゃんとやること
libarib25が/usr/local/lib/pkgconfigに生成するのはlibarib25.pcですが、recfsub2iが要求するのはaribb25.pcなので、ln -s /usr/local/lib/pkgconfig/libarib25.pc /usr/local/lib/pkgconfig/aribb25.pcとでもしておきます
recfsusb2iを導入します
code:recfsub2i.sh
cd
git clone https://github.com/jeeb/recfsusb2i.git
cd recfsusb2i/src
make B25=1
mv recfsusb2i /usr/local/bin
make clean
上記のmake中にutils.cのincludeのFatal error: aribb25/hogehoghogeみたいなエラーが出たときは
vim utils.cして<aribb25/hogehoge>を<arib25/hogehoge>に書き換えしてmake clean && make B25=1
recfsusb2iを使ってみましょう
https://ja.wikipedia.org/wiki/テレビ周波数チャンネル で使っている地域のチャンネル番号を調べる
code:recfsusb2i_use.sh
cd
recfsusb2i 28 30 /tmp/test.m2ts
Init CAS failed, ERR=-3みたいなのが出てる時はデコードに失敗しており、ワンセグ映像のみしか含まれてないtsになってしまいます
# Done!などが最後に出て、うまく出てそうな場合はFileZillaなどでSSHログインし、ファイルを引っこ抜いて再生テストをしてみましょう
視聴する
このままmirakurunを入れてもいいのですが、一番上に「長時間安定利用できる段階まで至っていません」と書いたのは、デバイスの使用状況が一定を上回ると下記の@reapURB L99 reapURB, ERR=-32といったエラーが出てしまい、rebootするまで使用できなくなるからで、mirakurunを導入するとチャンネルスキャンによって一瞬でこれに到達するので、実質的に利用できない状態に近いです
これ直し方知ってる人いたら教えてください
https://gyazo.com/51b324237592ac15199476f98da7f190
しかしせっかく導入したのですから、少しでもリアルタイム視聴してみたいものです
そこで、piping-serverを使います
https://ricapitolare.vercel.app/svg?url=https://github.com/nwtgck/piping-server-pkg#.svg https://github.com/nwtgck/piping-server-pkg
ここでビルド済みのバイナリを配っているので、linux用をdebianに引っ張ってきて動かします
code:piping-server.sh
wget https://github.com/nwtgck/piping-server-pkg/releases/download/v1.1.0/piping-server-linux
chmod +x ./piping-server-linux
./piping-server-linux
8080に立つので、curlでtsを送ってみましょう
code:piping-send.sh
recfsusb2i 18 - - | curl -T - http://localhost:8080/tv
IINAなどを開き、アドレスとしてhttp://<vmのアドレス>:8080/tv(ex: http://172.16.114.129:8080/tv)を入れます
みれます
https://gyazo.com/7252700afbb2ea3273c8503805b16bdf
しばらくすると@tsthread L159 failed to discard URB, ERR=22などが出てきて止まってしまいます
逆にここで止まらなければその環境ではmirakurunが使えるかもしれません
総括
Raspberry Piでやりましょう!!!!!!!!!!だる過ぎ
参考リンク集
https://ricapitolare.vercel.app/svg?url=http://blog.nakayuki.net/linux/linux-recfsusb2i/#.svg http://blog.nakayuki.net/linux/linux-recfsusb2i/