atomのマザーD510MOで、pt2でTV録画などを行っていたが、とうとうお亡くなりになりました。

マザー見るとコンデンサが1つ液漏れしていたので、交換すれば治るかも?

ということで、だいぶ古いし、遅いので、この機会にCPU N100のASRock N100DC-ITXで刷新したので、更新履歴を残します。

 

いろいろな設定を書いているので長くなります。

 

内容以下

・pt2でTV録画環境作成(動作が軽いraspirecを使用)

・hls配信時にffmpegでqsvでエンコード

・ラジコの録音

・webラジオの録音

・samba共有

 

○N100DC-ITXとメモリ相性

その辺に落ちているメモリとSDD、acアダプタはハードオフでNECのパソコンのもの60Wを購入し組み立てて起動した。

使用していると突然ブラックアウトして再起動、フリーズなど発生。原因がわからず色々やりました。

別のメモリに変えたら発生頻度が減少。(ブラウザに文字入力する瞬間に落ちる時がある、つけっぱなしにすると数日でフリーズしている、そのあいだ何回か再起動しているよう)。メモリが悪いと結論付け(メモリテストはOK)、マザーのホームページで動作確認が取れているメモリを購入した。8GBで該当するメモリが売ってなく、あったのがKLEVV KD48GU880-32A160T。ゲーム用で性能がいいよう。これでだめなら、ASRockに文句を言ってやろうと思ったが、いままでの苦労が嘘のように問題なし。かなり時間を無駄にした。

最初のメモリは昔中国からネットで買ったADATAのDDR4-2666、2つ目は中国製のPCについてたkingstonのDDR4-2666(現在別のPCで使っているが問題なし)、OKだったのはゲーム用のDDR4-3200(2666Mhzで使用)。中国で売っているメモリの品質が悪いのか、いいメモリを使いましょうということ?OKだったメモリはブラウザの体感速度も上がったので、メモリの速度がおそい?

 

○N100DC-ITXとPT2

マザーはもちろんpcieなのでPT2は使えない。

pcieからpciに変換する「SD-PECPCiRi3」を購入

取付時に分かったが、pt2の電圧は3.3V、SD-PECPCiRi3で3.3Vを使うには3.3Vの電源入力が必要だが、マザーからのSATA電源ケーブルは12Vと5Vしかない。終了・・・。

どうしようもないので、ハードオフからATX電源を購入し、ATX電源からSD-PECPCiRi3に3.3V付きのSATA電源ケーブルを接続。ATX電源を単独で起動するには、COM(15か17)とPS_ON(16)を短絡(とりあえず端子に線を突っ込んだ)。起動するとファンが回る。

常時起動なので消費電力を下げたかったが、ATX電源を余計に稼働することになった。

ケースの外にPT2とATX電源があるので見た目はいまいちだが、pcieのTVカードを買うのももったいないのでまあよしとする。

 

※5/1更新 SATA電源ケーブルの5Vから3.3Vを作成しました。内容は下記参照

 

 

○lubuntuインストール

ubuntuは重いので、軽いとネットにあったlubuntuをインストール。

lubuntuのマニュアルに沿って、インストール

 

■最初日本語入力できないので以下

$sudo apt install fcitx-mozc

適用するためにログオフしてログオン

 

■homeのフォルダ名の英語化

$ LANG=C xdg-user-dirs-update --force

日本語フォルダを消す

$rm -rf デスクトップ ダウンロード テンプレート 公開 ドキュメント ミュージック ピクチャ ビデオ

 

■リモート接続するのでssh

$sudo apt install ssh

 

■データ用のHDDを起動時マウント

・HDDのUUID確認

$blkid

・起動時マウントのため/etc/fstabに下記記載

UUID=上記確認したUUID マウントするフォルダ   ext4    nofail 0 0

・マウントの反映

$sudo mount -a

 

■ファイルサーバにするためsamba設定

$sudo apt install samba

・/etc/samba/smb.confの最後に追加

[任意の表示名]
   path=フォルダフルパス
   writable = yes
   guest ok = yes
   guest only = yes

 

・設定反映

$sudo service smbd restart

・共有フォルダの権限を適宜変更する。ゲストに、全許可は以下

$chmod 777 フォルダ

$chown chown nobody:nogroup フォルダ

共有フォルダまでのパス全てにアクセス権限がないと接続できないので、適宜許可を与える

 

○ラジコの録音

radishを使用させていただいた。

マニュアルに従えばいいが、libxml2-utilsもインストールしないと動かなかった

 

・curl、libxml2、jq、ffmpegをインストール

 libxml2-utilsもインストールしないと動かなかった

$sudo apt install curl libxml2 jq ffmpeg libxml2-utils

・プログラムをコピー

$git clone https://github.com/uru2/radish.git

・/etc/cron.d/にファイルを作成し下記を記入

(FM802、毎週金の23:59から182分録音の場合、伊藤正則のやつです)

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

59 23 * * 5  ユーザー名 radi.shのフルパス -t radiko -s 802 -d 182 -o 出力ファイルのフォルダフルパス/出力ファイル名_`date "+\%Y-\%m-\%d"`.m4a

・`date "+\%Y-\%m-\%d"`.m4aはファイル名に日時を入れた

 

○webラジオの録音

・/etc/cron.d/ にファイルを作成し下記を記入

(月から土、22:59から7260秒録音の例、hiphopのやつです)

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

59 22 * * 1-6  ユーザ名 ffmpeg -i "http://c13.radioboss.fm:8200/stream" -acodec copy -bsf:a aac_adtstoasc -t 7260 出力ファイルフルパス_`date "+\%Y-\%m-\%d"`.m4a

 

 

◎pt2でTV録画の設定

以前chardev版ドライバで、rececpt1、epgrecUNAを使用していたが、うまくいかなかったので、

dvb版ドライバ、raspirec(動作が軽いので)を使用。

 

カードリーダー用ドライバのインストール

$sudo apt -y install pcscd pcsc-tools libpcsclite-dev

$pcsc_scan

最後にJapanese Chijou Digital B-CAS Card (pay TV)と出ればOK

 

○B25ライブラリインストール

$sudo apt install git

$git clone https://github.com/stz2012/libarib25.git

$cd libarib25/

$sudo apt install build-essential cmake pkg-config

$cmake .

$make

$sudo make install

 

○recdvbのインストール

$sudo apt install autoconf automake

$git clone https://github.com/kaikoma-soft/recdvb.git
$cd recdvb
$./autogen.sh
$./configure --enable-b25
$make
$sudo make install
 
録画テスト(BSプレミア 10秒)
$recdvb --b25 --strip 103 10 testBSPre.ts
 
○raspirecインストール
上記マニュアルに沿ってインストールする
 
・epgdumpインストール(マニュアルにもあるが下バージョンを使用)
$git clone https://github.com/Piro77/epgdump.git
$cd epgdump
$cmake .
$make
$sudo make install
 
・依存パッケージをインストール
$sudo apt install dkms linux-headers-`uname -r`
$sudo apt install sqlite3 ruby ruby-sqlite3 ruby-sys-filesystem ruby-net-ssh ruby-sinatra ruby-slim ruby-sass
・本体コピー
$git clone https://github.com/kaikoma-soft/raspirec.git
config.rb.sample を $HOME/.config/raspirec/config.rb にコピー(フォルダは作成する)
・マニュアルに沿っていろいろ設定する
※注意点
録画ファイル名の時間に':'が入っているが、sambaで文字化けしたのでファイル名から削除
 
 
◎hls配信でqsvでエンコードできるようにする。
mpvの視聴は設定した1つのリモートPCでXwindowで表示するので、hls配信を使う。
ffmpegのソフトウェアエンコードでも行けるが、CPU負荷を減らしたいのでqsvを使う。
 

下記ffmpegのマニュアルに沿って設定した。

 

マニュアルによるとAlder LakeのN100はoneVPLを使うそうだ。

 

○oneVPLのインストール

■Install dispatcher

 

3.1.2. Client Intel Package Repository Configuration

wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
  sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
  sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt update

 

3.1.3. Install Compute, Media, and Display runtimes

sudo apt install -y \
  intel-opencl-icd intel-level-zero-gpu level-zero \
  intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
  libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
  libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
  mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo

・再起動
 
3.1.4. Install Development Packages
sudo apt install -y \
  libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
 
3.1.5. Optional Out-of-Tree Kernel-Mode Driver Install
カーネル5.19は必要だが、6.2は不要
6.5だったのでインストールしない
 
・libvaが必要なのでインストール
sudo apt-get install git cmake pkg-config meson libdrm-dev automake libtool
git clone https://github.com/intel/libva.git
cd libva
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
make
sudo make install
 
・oneVPL GPU Runtimeインストール
git clone https://github.com/oneapi-src/oneVPL-intel-gpu onevpl-gpu
cd onevpl-gpu
mkdir build && cd build
cmake ..
make
sudo make install(マニュアルはmake installだが、権限がないエラーになったのでsudoをつけた)
 
○Build FFmpeg with oneVPL
ffmpegのインストール時に下記を記載する
./configure --enable-libvpl && make -j8 && make install
インストール詳細は以下
・サイトにある依存パッケージをインストール
・ubuntu20.04で必要なものに記載あるが、22.04でもlibunistring-devが必要だったのでインストール
sudo apt install libunistring-dev
・ffmpegのソースフォルダと、コマンドフォルダを作成
mkdir -p ~/ffmpeg_sources ~/bin
・各ライブラリをインストール
・libvmafインストール時のエラー
--bindirは$HOME/ffmpeg_build/以下に作れとエラーがでたので、~/ffmpeg_build/bin/を作成して
--bindir="$HOME/bin"を --bindir="$HOME/ffmpeg_build/bin"にして実行し、$HOME/ffmpeg_build/binにできた実行ファイルを$HOME/binへコピー
・ffmpegインストール時にlibvpl-dev がないとエラー発生。
 上記説明には出てこなかったが、とりあえずインストール(わからないがもしかして今までの設定なしでこれだけで行ける?)
 sudo apt install libvpl-dev
・ffmpegのインストールコマンドに上記「./configure --enable-libvpl && make -j8 && make install」の内容を追加
・~/binにインストールされるので、使用するときは~/bin/ffmpegを使用
 参考までに、~/binにインストールする理由が下の”Why install to ~/bin?”に書いてある 
・コマンド例でデコードはエラーになったがエンコードはできた。エンコードしか使わないのでとりあえずOK
 
○raspirecのts2hls.shの設定
・ffmpegのマニュアルに従ってインストールすると~/binにffmpegがあるのでそこにパスを指定する
 PATH=/home/ユーザ名/bin
・「-c:v h264」 を 「-c:v h264_qsv」にする
いろいろ変えて最終的に以下にした
    ffmpeg  \
        -re \
        -i pipe:0 \
        -movflags faststart \
        -analyzeduration 2M \
        -map 0:v:0 -map 0:a -ignore_unknown \
        -c:v h264_qsv -c:a copy -crf 20 \
        -flags +cgop+global_header \
        -f hls \
        -hls_time 2 -hls_list_size 3 \
        -hls_flags delete_segments \
        -hls_segment_filename stream_%05d.ts \
        "$PLAYLIST" \
$topで見ると、CPU使用率は50%くらい
 
・hls配信は停止してもしばらくffmpegが動いており、最初どうやったら止まるのかわからなかったが、しばらくすると勝手に止まるので安心してください。
 
○温度確認
エンコードでcpuの温度が上がってないか一応確認した
sudo apt -y install xsensors
GUIなら$xsensors
CUIなら$sensors
で実行
hls配信するとCPU温度は52℃から54℃に上がったがあまり上昇変化していないのでOK
 
以上