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アクセスになっていました。久しぶりに更新しました。
ラベル TV の投稿を表示しています。 すべての投稿を表示
ラベル TV の投稿を表示しています。 すべての投稿を表示

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