You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。2018/7/7 .. おお七夕 .. には63万0656アクセスになっていました。久しぶりに更新しました。

2015年1月16日金曜日

Linuxを用いたテレビ録画Serverでのロケフリ視聴が快適


かつて、米国にLinuxのホームサーバを構築した。これは、NAS (Network Storage, samba), SSH login, ftp, Web server (apache), Proxy server (squid), video streaming (apache), Firewall (iptables), DDNS (DiCE)などを実装した。詳細は以下にある。


2013年1月5日土曜日:
自宅にLinuxサーバを構築した


ついで、静音型の薄型Desktop Lenovo H520sが安かったので、これとビデオボードを用いて、今度は、日本の自宅においたサーバで、テレビ放送を録画して、海外や出先から試聴できる録画サーバを構築した。大変快適である。以下、それについて記載する。

嬉しさ)
  1. 1万円弱のボードを使うと地上波2番組、BS/CS 2番組同時録画が可能
  2. ソフトはLinuxなど全部Open sourceを利用。windowsすらも不要。
  3. 1週間分の番組表を地デジ波から取ってくる。この番組表は、java scriptで書かれており、マウスオーバすると、解説が画面上部に表示されて大変快適。局が指定した番組種別(ドラマ、バラエティ、等)で色分けされている。
  4. 予約も出先からできて、視聴もGoogle Chromeでストリーミング再生可能(PCのSafari/IE/Firefoxでは不可能) やiOSのchromeでは再生不能だが、Nexus 7で確認したところAndroidなら再生可能。
  5. 再生画質は、ハイビジョンのモニタを使い、Chromeで全画面再生にしたとき、地上波アナログ以上に綺麗。
  6. ファイルをダウンロードして、転送すればスマホでも見られる。
  7. 3TBのハードディスクに30分番組5000本は入る
  8. PHP (+Smarty)  MySQL, Java (+jquery), シェルスクリプト, perl等でスッキリ書かれているので、簡単にカスタマイズできる。
    主力はsmarty: http://www.php-labo.net/tutorial/class/smarty.html#install とPHP。
  9. ffmpegという変換ツールが強力で、これもカスタマイズできる。
と、家電メーカの使いにくいハードディスレコーダよりも断然良い。安く、大容量で、高機能で、遠隔視聴やダウンロードもできて使い安い。その分、自分でいろいろ調整しないとならないところもあるが、むしろそれで使いにくさが改善されていく。

その後の更新)以下にその後の更新を投稿した。

  1. 2016年1月1日金曜日 ビデオサーバプログラムのその後の更新
  2. 2017年12月 タイトル中の半角文字がエラーになる .. 修正済み。bug fixしたか確認中だが。問題なさそうなので、そのうち投稿する。


Google Chromeで遠隔地から操作している画像)
海外や出先から予約・予約変更・再生・消去ができる。

地デジ電波に乗った情報から自動的に作り出す番組表。約1週間先まで出る。標準では8時間分だが、設定ファイルを変えて24時間分を一画面に出すようにしてある。 
予約一覧表。時間の早い純にソートされ表示される。色は番組表から受け継ぐ。
時々、mysqlの予約テーブル (RESERVE_STRUCT)の録画完了フラグ "complete'が1にならないことがあり、すると項番1の様に、録画済みなのに、予約テーブルに残る。が、このテーブルは、録画済みテーブルからも参照されているので、エントリを消すと、録画データがディスクにあっても、録画済み一覧から見えなくなる。

録画済み番組の一覧。


Google Chromeで再生できる(IEやSafariは非対応)。フル画面を押して、フル画面表示にしても、非常に綺麗。スクリーンショットも撮れる。
掲載項目一覧)
後日、スクリーンショット等を追加して完成させるが、まずは覚え書き。
  1. ハードウェア構成
  2. Linux (CentOS6.4  Intel x86 64bit)のインストール
    1. 3TB HDDの認識:はまりやすいポイント1
    2. 自宅外アクセスの設定:ファイアウォールの設定、BBrouterの穴あけ 等
  3. PX-W3PEを用いた構築 ⇒ 結局上手くいかず
    やり方: http://www2.filewo.net/wordpress/2014/02/05/centos6-4とpx-w3peで作る録画サーバ/   PCSCカードリーダは、ここにあるものを用い、インストールもこれに従った。
  4. アースソフト PT3 revAを用いて現環境を構築 ⇒ 基本
    http://namakemono345.com/kichijitsu/centos/default/pt3.html のやりかた。はまったポイント等は以下。
    1. DDNS (miniDNS)経由でのアクセス試験 ⇒ 米国のproxyを用いて実験
    2. selinuxの無効化: これをやらないと、マウントした/homeが見えない
    3. mysqlの構築
      1. mysqlにdatabaseの管理者権限で入って、間違ってuserを格納するtableを消してしまった。顛末を別記。
    4. 録画結果がみられない ⇒ tsからmpeg4 (h.264)への変換。640x360の解像度でHDのディスプレイで十分美しく見られる。ファイルサイズも15分番組で80MB前後、転送レートも40~80KB/s (300kbps~600kbps)程度なので、モバイルルータでのnon LTE (3G)接続でも十分見られる。
      1. TSファイルをffmpegでmp4にエンコード が参考になる。
      2. http://d.hatena.ne.jp/munepi/20091227/1261941397 にpresetファイルの説明
      3. http://tech.ckme.co.jp/ffmpeg.shtml に使い方がある
      4. epgrec/templates/recordedTable.html と対応するrecordedTable.phpを変更して、直接リンクを読むようにした。mp4でgoogle Chromeならこれで視聴できる。
      5. http://dambo.mydns.jp/pwiki/index.php?TS%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92ffmpeg%E3%81%A7mp4%E3%81%AB%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89 にコマンドオプション等の説明
    5. その後、PHP, templates/epgrec/ の下のファイルをカスタマイズして機能追加した
      1. 各画面から別の画面に飛ぶ
      2. Disk容量(録画数、使用容量、利用可能容量、平均録画容量、それから割り出した録画可能本数) --- 3TBのHDDでは2.5TBほど使えているので、平均して30分~1時間番組が多い状況では、5000本以上保存可能である。
      3. 録画済み画面での終了時間の表示、件数の表示
      4. 予約画面での件数の表示
      5. 今後:予約画面での時間変更、時間をマウスだけで変更できるように。等の改造を考えている。
    6. .htaccess / .htpasswd での保護。これをしなかったら、不正なアクセスが... 解析もしたが、隣国のプロバイダからのアクセス。別記する。
    7. ffmpegの設定を最適化
      1. <解説> 付きの音声ストリームがある番組(NHK朝ドラ)では、音ズレがおきる。ため、一個目の主音声ストリームだけを変換する
      2. 高速化するために1パス変換しているが、大体番組時間と同じ変換時間がかかる。録画ツール recptl (普通は/usr/local/binに置かれる)では、ストリームに出力をはき出すこともできるらしいので、ffmpegにて実時間変換ができるか試してみたい。
    8. ダウンロード視聴
      1. 録画済みテーブルで右クリックし、番組データをmp4ファイルとしてダウンロードする。
      2. .mp4サフィックスを.m4vサフィックスに変換して、iTunesに転送
      3. iPhoneでも問題無く見られる。
      4. 1時間半の特番で、ファイルサイズは400MB弱なので、DVDをリッピングしたものとファイルサイズはあまりかわらないが、画質は断然良い
    9. BCASカードを認識しなくなった
      1. PCカードリーダのLEDは緑で点滅していないとならないのが、緑の点灯らしい。
      2. とりあえず、ワンセグをffmpegして、閲覧
      3. rootになって、service pcscd restartしても、

         service pcscd stop
         pcscd -a -d -f
        で、デバッグモードで立ち上げてもカードリーダを認識しない。
        init 6で再起動してもだめ。とりあえず、他の環境はrebootでも立ち上がるのを確認。
        a. 今のもの: NTTコミュニケーションズ 接触型ICカードリーダー・ライタ e-Tax Win&Mac対応 SCR3310-NTTCom 4,900円
        b. 新しいreader: CLOUD2700-NTTCom CLOUD2700 のほうが安い。2,300円、おまけにamazon prime。ドライバがあるかどうか....
        c. Gemalto ジェムアルト ICカードリーダ・ライタ 電子申告(e-Tax)対応住基カード用PC USB-TR HWP119316 -- 1,746円 -- 本章冒頭のPT3を使った設定で使っているリーダ

         readerの設定: http://baalzephon.no-ip.org/tech/index.php?Linux%2F%E3%83%86%E3%83%AC%E3%83%93%E9%96%A2%E9%80%A3%2Flibccid
      4. 遠隔で調べてもらった。本体背面に6つあるUSBポートのうち、2つに刺せばpcsc_scanが正常に動いた。USBポートが壊れたかも。実機を見る機会があったら確認する。予備のカードリーダとして上記b, c を発注してしまったので、それでも動くかを実験する。
      5. ffmpegを1.2から2.5にあげてこれが壊れた。
        http://tech.ckme.co.jp/ffmpeg.shtml にあるwindowsのやり方を使ったのが敗因。fdk-aac がエラーを出す。
        http://blog.code-life.net/blog/2013/04/14/how-to-install-ffmpeg-on-centos6-x86-64/ のやり方で1.2を再インストール。古いtsファイルを変換できることを確認。
      6. しかし録画できず。カードリーダがまた無効になっている。カードリーダが壊れ、USBポートを破壊していく可能性がある。やはり予備のリーダを試す必要がありそう。。
以下詳細)
1. ハードウェア構成)
2. CentOS6.4のインストール)
  1. 3TB HDD Driveにはinstallできず
  2. 32GB SSDでlinuxが起動
1. 本体には500GB HDDにwindows7がインストールされているものを購入。録画領域を増やすため、3TBのHDDに換装することにした。CentOS6.3をインストールしたが、リブートしても起動しない。3TB HDDのMBRへLinuxの GRUBをうまく認識させられていないようである。

2. 薄型であるため本体にもスペースはないが、パーティションツールを購入して500GBのHDDをパーティション分けして、そこにLinuxもインストールしてみたが、これでもうまくいかない。

3. 有休品の2.5in SSD (Silicon Power製)なら本体におさまる。まず、これだけを繋いでLinux (CentOS 6.4 x86 64bit)をインストール。ブートに成功。

4. つぎに3TB HDDを繋いでbootこれも認識したが、最初のインストールでLVMができていて、うまくマウントできないので、これをdirectなext4にすることにした。これは次節を参照。

3. 3TB HDDを認識させる)
関連リンク)
  1. LVMと操作法) http://pantora.net/pages/lvm/3/
  2. 2TBの壁を越えたHDDをformat)
    1.  http://d.hatena.ne.jp/y___u/20120502/1335957595
    2. マウント等も含めた紹介 (CentOS5.5だが) http://bit.ly/1cqEhIO

blog comments powered by Disqus