MythTV Japanese patch

MythTV Top

MythTVを使ってみたら結構良かったので日本語化してみました。

ぱ研さんのおかげでxmltvにtv_grab_jpが正式に取り込まれました。 xmltv を使用して番組ガイドを見ながら予約が出来ます。

またプラグインのMythWebを使うとwebから予約が出来ます。

OSDで日本語が化ける場合

標準では日本語がOSDで表示されません。下記の設定をすれば表示されます。

日本語TrueTypeフォント(not ttc)をMythTVのフォントパス(例えば/usr/local/share/mythtv/)にインストールする。もちろんリンクもでもOK

MythTVメニューより、設定(Setup) - 再生(Playback) - オンスクリーンディスプレイ(Onscreen Display)で OSD フォント(OSD font) と クローズドキャプションフォント(Closed Caption font) で日本語フォントを選択する。

Updates

2004.5.31

MythTV 0.15がリリースされた。大体日本語は問題ないんじゃないかなーと思ってます。 日本語が問題ある場所は私が使ってない部分だと思う。 MythMusicも日本語がおかしそうだけど日本人アーティストのCDもってないんで分からない。

i-mode対応はなんかめんどくさくなって中断中。

英語はExciteやspace alc見ながらなんで翻訳がつらい。誰か日本語訳がおかしいと思った人は翻訳をやってみませんか?

2004.2.18

現在cvsバージョンに追従中次のバージョンではもっと日本語が充実するようになると思う。

MythWebの翻訳パッチを取り込でもらえたので次のバージョンでは日本語が表示できると思う。

今i-mode対応に挑戦中。だけど制限が結構あってめんどくさい。

2004.2.6

0.14がリリースされたのでパッチも0.14を追従、早速Search Listingを日本語化,setupも日本語が出ます。

2004.2.2

MythTV 0.14リリースされました。でJapaneseパッチの内容がほとんど採用されました。 何もしてないけどこのページを見たみたいで取り込んでいただけました。
ということで0.14ではまだ試してないけどパッチをあって無くてもいいみたい。

Thanks Richards.

2004.1.30
MythMailリリース。OnTVJapan で提供しているメール予約"ネットリモコン"に対応できます。これで携帯orブラウザで予約が出来ます。
2004.1.22
ぱ研さんの日本語パッチとマージ
ひらがな検索追加
xmltvにkakasiでsubtitleに検索用のひらがなを追加するように変更
2004.1.19
パッチ更新
2004.1.13
日本語フォントインストールの説明が抜けていたので追加

Summary

mythfrontend
  • 日本語リソースの追加。
  • ユニコードハンドリング修正。
  • OSD表示時のグリフ取得修正。
  • 手動予約修正。
  • ボタンテキスト縦表示位置修正。
  • 番組検索をアルファベットからひらがなに変更。
mythdvd
  • 日本語リソースの追加。
  • ユニコードハンドリング修正。
mythvideo
  • 日本語リソースの追加。
mythmusic
  • 日本語リソースの追加。
mythweb
  • Settings - Channels - name で文字化け修正。

Requirement

  • MythTVよりソースを持ってきてパッチを当てる。コンパイルしてインストールする。
  • xmltvの日本語版の最新をインストールする。EUCな環境の人はEUC版を使用する。
  • xmltvの日本語版xmltv_ja-timefix.patchを当てインストールする。
  • 日本語TrueTypeフォント(not ttc)をMythTVのフォントパス(例えば/usr/local/share/mythtv/)にインストールする。もちろんリンクもでもOK

Guide

日本語特有の設定を中心に説明します。詳しくはInstalling and Using MythTVか 他のページを参照してください。_(._.)_

mythtv-setup

1.Generalでバックエンドの設定をする。
バックエンドが同じマシンならデフォルト。
2.Capture cardsでキャプチャーカードの設定をする。
2枚キャプチャーカードがあればピクチャー・イン・ピクチャーもできるみたい。
SAA7130-TVPCI/BではVBIデバイスを設定するとキャプチャー出来なかったので"None"にするかデータベースを直接変更して空白にする。

直接DBを更新する場合。

# mysql -u mythtv -p
パスワードを入力する。/etc/mythtv/mysql.txtにある。

# use mythconverg;

これでカードの一覧を表示する。
# select * from capturecard;

一覧で見たcardidを指定する。
# update capturecard set vbidevice='' where cardid=1;
# quit
3.Video Sourcesで番組ソースを設定する。
XMLTV listings grabberで"Japanese"を選ぶ。 "Finish"を押すとmythtv-setupを起動したコンソールでtv_grab_ja --configureが実行される。

mythbackend

mythbackendを開始する。

artsdなどサウンドを使っているとmythbackendがtv再生のときに落ちます。またmythfrontendも音声が再生できないのでartsdを停止しておく。

mythfrontend

Setup - Playback - "OSD font"と"Closed Caption font"を日本語が含まれているフォントを選択する。

Setup - Appearance - の"Language"を"日本語"を選択し、"完了"すると日本語になる。

"TV" - "Watch TV"でTVが見れればキャプチャーカードはOK。

Patches

MythTV

MythTV 0.15がリリースされました。日本語対応を取り込んでもらえたのでこのサイトのパッチは必要ありません。 0.15を使いましょう。

tar

www.mythtv.com

deb

deb http://dijkstra.csh.rit.edu/~mdz/debian/ unstable mythtv
deb-src http://dijkstra.csh.rit.edu/~mdz/debian/ unstable mythtv
deb http://cedar-solutions.com/ftp/debian/ stable main

パッチを当ててi18nディレクトリ内でlrelease translate.proとするとqmファイルが出来ます。 それを実行してからインストールしてください。

ToDo

できるか出来ないかは別にしてToDo

  • i-mode対応
  • MythWeatherの取得先を日本向けにする

Log

2004.1.23

iEPGOnTVからメール録画予約機能(ネットリモコン) に対応する裏づけが取れた。シンプルなフォーマットでメールを送ってくるので後は メールをパースして録画予定に入れるだけ。だけどperlでスクリプト組んでるけど perlに慣れてないのでスピードが遅い。

2004.1.22

ぱ研さんから日本語パッチをマージしてもらう。またぱ研さんのアイデアでひらがな検索追加。

2004.1.21

kernel 2.6.1を試す。alsaはカーネル、v4l2はbytesex。ビデオキャプチャーで2秒置きくらいに止まるので見送り。 ログを見た限りでQUERYBUFで止まるみたい。コンフィグの間違い?

alsaのミキサー設定がなぜか戻ってしまう。なんとKDEの起動時にミキサー設定を復元していた。

2004.1.17

qtの翻訳でlinguistというツールがあるのをはじめて知った。今までmule-ucsでやっていた。

lupdateするとソース中のtrを探してくれてtsファイルを作り、linguistで翻訳してlreleaseでqmファイルを作るみたい。

2004.1.8

sprintfのフォーマットはlatin1でないとだめなので trで指定されていても%02dなどのようにフォーマットも指定してある物は latin1以外は???で表示される。QString::sprintfだけでなく::sprintfも同じみたい。どうしようもない。

2004.1.7

再生画面のキャプチャー方法がわからない。overlayはキャプチャーできない?

2004.1.6

tv_grab_jaの出力がutf-8でないからうまくいかないと思ったがeucでも大丈夫そう。

2004.1.4

OSD表示がうまくいかない。何処でOSDに表示してるか分からなくて結構手間取った。 OSD表示はttfont.cppで直接レンダリングしてるみたい。さっと見たところグリフ(よく分からない)を事前に用意してるみたいだけど 0-255間でのキャラクターコードしかやってないみたい。そこで表示する文字をキャッシュに無ければ 読み込むように変更。FT_Get_Char_Indexのコードにはユニコード(今回はucs2)を渡すみたい。

これでOSDでも日本語が表示できた。しかしまだ所々で???が表示される。

2004.1.2

xmltvの日本語版を発見

tv_grab_jaで番組情報を取り込むときtvtimeでは正常に表示するがmythtvでは番組ガイドでは表示されるがチャンネル名が????になる。 データベースを直接見たら???になっているので取り込み部分で既に???になってるみたい。 とりあえずtv_grab_jaの出力をutf-8に変えてみたが、それでも表示が???になる。

qtの関数でQString::asciiを使うとascii文字以外は?に変換されるみたい。 あとQString::sprintfもutf-8以外は?になるようだ。 そこでfilldata.cppの関係ありそうな部分をasciiをlocal8Bitとutf8に変更する。

しかし特定の文字で?になってしまう。そこでQString::sprintfでなくQString::argを 使ったらデータベースまではutf-8で取り込めた。

2003.12.20

キャプチャーカードが無いと話にならないので玄人志向のSAA7130-TVPCI/Bを買って来た。

V4L2のパッチを当ててsaa7134もモジュールにcard=10のオプションで認識した。

ところがmythtvが動かない。tvtimeを使ってみるとコッチも最初segfaultしたが 入力をチューナーに設定したら問題なくテレビが見れた。ということはmythtvのやり方がまずいということか?

で仕方なくコードを追ってみたが悪そうなところが見つからない。 VIDIOCSYNCのところでエラーが出ている。DQBUFしてバッファーから取ってくるみたいだがその時にステータスがSTATUS_ERRORになっている。 STATE_ERRORになるのはSTREAMOFFしたときかdma終了時なのは何とか分かった。 saa7134のオプションでcore_debug=1,video_debug=2のオプションを付けて組み込んで ドライバの出力を見てみるとbuffer_finishしたアドレスがQBUFしたアドレスと違う。 dmabitsのtask=0x23でビデオキャプチャーとvbiが起動されている。 vbiで失敗したのがSTATE_ERRORと設定しているようだ。

そこでmythtv-setupでvbiデバイスを無しにしたら正常に動作した。

一歩前進

2003.12.18

とりあえず動かそうと思って動かすと番組ガイドのところで必ずmythbackendがsegfault! デバッグでコンパイルしてgdbで動かすとScheduler::getAllPendingの最初で落ちてる。 thisを見たら0だった。その上のMainServer::m_schedが0なのでコンストラクタを読んでるmainでschedを設定しているよう。 でためしにmythbackend --printschedとやってみると

$ mythbackend --printsched
ERROR: no capture cards are defined in the database.

どうやらキャプチャーカードを設定しないとだめたい。

しかし、持っているAll-in-WonderはGATOSのドライバを使えばTVはみれるがV4Lのドライバが無いのでキャプチャーできない。 キャプチャーカード買うか

2003.12.17

画面は結構良さそうなのでとりあえずメッセージを翻訳。
Qtのアプリケーションの翻訳はxxx.tsファイルとxxx.xmlファイルでするみたい。とりあえずmythfrontendのみ翻訳。 でもどうやってフォントを変えるんだろう?