ワンセグ関連メモ

DiTUNE DUS-01 を Linux 上で動かす

  • カーネルドライバを使う方法とlibusb経由で使う方法が存在
  • 現在,自分はユーザスペース版で運用中

カーネルドライバ版

RTP でストリーミング

  • SourceForge.net: DVB tools の dvbstream を使う
    • % dvbstream -f 503143 8192
      • 長時間放置するとフリーズしていることがある。ドライバのせいなのか dvbstream のせいなのか俺の糞パッチのせいなのか要調査 (2008-08-05)
      • 15448 ?        D     24:09 /usr/local/bin/dvbstream -f 479143 8192
    • freq = 395143 + ch * 6000
    • DUS-01 の TS は PAT を含まないので mplayer とかで再生できない
    • dus01stream -v 18 - | dvbstream -stdin 8192 とかしようとすると No bytes left to read - aborting となる
      • 間に dd 咬ますとよさげ (2008-12-11)
      • dus01stream -v 18 - | dd obs=188 | dvbstream -stdin 8192
    • なので mplayer にパッチ当てるか PAT を生成するようなフィルタを咬ましてやる
      • dumprtp | dus01filter - | mplayer -cache 2048 -tsprobe 65536 -delay 0.5 -
  • dvbstream (0.7_pre20080302) に dus01stream の ts.c を使って定期的に PAT を送信させてみるテスト
  • VLC とかでもできるらしい?

ユーザスペース版

  • DUS-01 with libusb-1.0
  • 2008/12/11 時点での libusb-1.0 開発版 (git://projects.reactivated.net/~dsd/libusb.git) だと微妙に API が違うので要修正
  • libusb-1.0 の ebuild → Ycarus Gentoo ebuild - wschlich-testing - dev-libs
    • 普通に portage 入りした模様 (2009-06-06)
  • いちいち sudo するのもアレなので udev にパーミッション変更させる
    • udevルールの書き方
    • /etc/udev/rules.d/95-my-permissions.rules
      BUS="usb", SYSFS{manufacturer}="MDS", SYSFS{product}="ISDBT", MODE="0666"
      • 書き方変わった?
        SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bc8", ATTRS{idProduct}=="0001", MODE="0666"
  • % dus01 -r -c 18 -x | dd obs=188 | dvbstream -stdin 8192

TS を MP4 に変換する

Linux で TSConverter を動かす

  • 【UOT-100】24時間ワンセグ野郎 Part02【LOG-J100】の >>76 さん を参考に
    • Gentoo の wine-0.9.61 だと
      % wine TSConverter.exe '"hoge.ts"'
      したときに何故か hoge.ts\ を読み込み hoge.ts.264, hoge.ts.aac を書き込もうとする (wine の _splitpath の問題?)
    • バッチファイル経由で動かすとうまくいくよう。
    • tsconv_wrap.bat
      set INFILE=%~f1
      C:
      cd "C:\Program Files\Local\TSConverter"
      TSConverter.exe -r "%INFILE%"
    • ↑をシェルスクリプトから起動
      #!/bin/sh
      wine cmd /c "C:\Program Files\Local\TSConverter\tsconv_wrap.bat" "$1" 2>&1 | nkf -Sw
    • TS Converter は MP4 作成時に C ドライブ直下 (~/.wine/drive_c) にテンポラリファイルを作るようなので空き容量注意
      • TS Converter というよりは MP4Box か?
      • 環境変数 TEMP or TMP をセットしてやればいい?

問題点

  • on TCPMP
    • 約 35 分以上へシークしようとすると動画の最後に飛んでしまう
    • 約 35 分以降音と映像がずれ出す
      • TS Converter で音ずれ補正すると生じるみたい
      • 最近のバージョンでは修正されている
    • 一部局の番組が緑色
  • on mencoder
    • TS Converter で変換した MP4 (H.264+AAC) を AVI (MPEG4+MP3) へ変換しようとするとある時間から Internal buffer inconsistency. flushbits <> ResvSize エラーを吐き出す
      • これは LAME の吐くエラーみたい
    • 上記の音ずれ現象と関連か?
  • on PSP
    • 再生できない
      • 非対応データ表示はされないものの,再生させようとすると「再生できません」
    • 原因がよくわからないのでとりあえず再エンコードしたい
      • ffmpeg で再エンコードする場合,ドロップがあるとそこから先が無音になったりする
      • FAAD 改造版 0.4 を参考にパッチ当てた faad で音声をデコードしておくとか

To Do

  • TsSplitter を使うといいかも?(2008-11-18)
    • とりあえず wine で動いた

CUIで動かす

録画予約

実況

視聴

  • Remedieで
  • TCPMPで
  • PSPで

参考

Last edited by n13i, 2012-01-12 01:15:53