記事一覧

sqliteで管理してみた(5) - まとめ2

はじめにとりあえず形にはなったので今回公開します。GUIについてはおまけ程度です。フリーのツールキットを使って見ようと思いWinFormで作成しましたがリビングの49インチ…

ottawa123
2年前
3

sqliteで管理してみた(4) - まとめ1

出力内容今更紹介した内容をまとめて実行可能なプログラムにしますが、その前にどのような出力をして、どのように使うかを検討します。 EDCBのマテリアルUIに反映させる事…

ottawa123
2年前
2

sqliteで管理してみた(3) - ファイル検出と補足

はじめにここではsqliteとは直接の関係はありません。録画ファイルが保存されている環境において新規に作成されたTSファイルや削除、移動等、ファイルを検出してデータベー…

ottawa123
2年前
1

sqliteで管理してみた(2) - 実装

C#のsqlite実装前回初期処理とProgEntryの読み出しの一部について紹介しましたが、ここでは使用するSQL文を全て実装していきます。 配列用の変換処理 ProgFolderではSubF…

ottawa123
2年前
1

sqliteで管理してみた(1) - 概要

概要前回までで番組情報を取得しましたのでデータベースに格納することにしました。サービスとして起動しないsqliteがお手軽かな…という安易な考えです。 最近のsqliteは…

ottawa123
2年前
2

TSパケットからはじめる(9) - まとめ

今回でTSパケットからはじめるもこれで終わります。ある程度のになったのでコマンド形式で実行できるようにしていきたいと思います。 引数でファイルかフォルダを指定する…

ottawa123
2年前
2

TSパケットからはじめる(8) - TS保存

TSファイルをエンコードしたりすると番組情報のEITは消えてしまいます。別ファイルに情報として保存しておけば良いのですが、使い勝手が良い生TSファイルのまま最小構成で…

ottawa123
2年前
1

TSパケットからはじめる(7) - EIT

EITでTSファイルの番組情報を取得することができます。descriptor()は前回のSDT同様にタグ記述子となります。 はじめにTsEITクラスを作成してしまいます。ちょっと長いで…

ottawa123
2年前
1

TSパケットからはじめる(6) - SDT

SDT(Service Description Table)前回文字列のデコード処理は解決したのでSDTやEITの情報を取得してみます。SDTのPIDは0x11でtable_idが0x42(自ストリーム)、0x46(他ストリ…

ottawa123
2年前
2

TSパケットからはじめる(5) - 文字コード2

初期処理前回からの続きとなりますが、実際に文字コードをデコードする処理を書いていきます。図形表をGCodeという名称にして列挙型としました。 public enum GCode{ U…

ottawa123
2年前
1

TSパケットからはじめる(4) - 文字コード1

文字コード概要TSパケットは独自フォーマット形式の文字コードが格納されています。独自と言ってもEUCJPを拡張したような構造です。PSIのSDTやEITを取り扱う上で文字コード…

ottawa123
2年前
2

TSパケットからはじめる(3) - PSIパケット収集

PSIヘッダ構造前回PATとPMTをデコードしましたがこれらはPSIパケットとなります。これからの構造を見るとオレンジ色の先頭8バイトは殆ど同じであることが分かります。基本…

ottawa123
2年前
1

TSパケットからはじめる(2) - PAT/PMT

PESとPSIを判断するいくつかのPIDは固定番号のものがあり、これらの固定は全てPSIとなります。固定番号の1つにPAT(PID=0x00)と呼ばれるものがありPAT(Program Association …

ottawa123
2年前
2

TSパケットからはじめる(1) - TS概要

目的地上波/BS/CS放送はMPEG2-TS(MPEG2 Transport Stream)形式で送信されてくるのでそれをチューナで基本的にそのまま受信して保存しています。そのため、録画されたTSファ…

ottawa123
2年前
4

はじめてみます

色々やったことや思った事など何か履歴を残せるサイトということでNoteに記載していくことにしました。現時点で掲載していく内容については録画サーバから派生した内容につ…

ottawa123
2年前
2

sqliteで管理してみた(5) - まとめ2

はじめにとりあえず形にはなったので今回公開します。GUIについてはおまけ程度です。フリーのツールキットを使って見ようと思いWinFormで作成しましたがリビングの49インチテレビで見たらかなり厳しいと感じました。WPFで作り直すのは面倒臭いです。

とりあえず2,500ファイルの録画ファイルでテストして大丈夫そうでした。

機能EDCBのマテリアルUIのライブラリ表示を少しだけ変えます。現在は表示

もっとみる

sqliteで管理してみた(4) - まとめ1

出力内容今更紹介した内容をまとめて実行可能なプログラムにしますが、その前にどのような出力をして、どのように使うかを検討します。

EDCBのマテリアルUIに反映させる事を目的にしているので以下の応答に付け加えます。ライブラリ一覧は以下のAPIで取得してます。

http://127.0.0.1:5501/api/Library実行結果<xml> <entry> <dir> <name>

もっとみる

sqliteで管理してみた(3) - ファイル検出と補足

はじめにここではsqliteとは直接の関係はありません。録画ファイルが保存されている環境において新規に作成されたTSファイルや削除、移動等、ファイルを検出してデータベース上のデータと同期を取るための、どちらかというとファイル検出に関する内容となります。

検出すべき内容録画を常に実施している環境であれば定期的にファイルが生成されます。古い録画データを削除しているかも知れませんし、別フォルダに移動し

もっとみる

sqliteで管理してみた(2) - 実装

C#のsqlite実装前回初期処理とProgEntryの読み出しの一部について紹介しましたが、ここでは使用するSQL文を全て実装していきます。

配列用の変換処理

ProgFolderではSubFoldersやNodesは":"区切りで配列的な役割をさせています。List<int> { 1, 2, 3 } → ":1:2:3:" というフォーマット形式にしています。ということで双方向の処理です。

もっとみる

sqliteで管理してみた(1) - 概要

概要前回までで番組情報を取得しましたのでデータベースに格納することにしました。サービスとして起動しないsqliteがお手軽かな…という安易な考えです。

最近のsqliteはjson形式のデータも入れられるみたいですがここでは別の方法を採用します。録画したTSファイルをフォルダに移動したり、録画ディスクを付け替えしたりすることもあり、TSファイルは個別に管理したいと思いファイルシステムのinode

もっとみる

TSパケットからはじめる(9) - まとめ

今回でTSパケットからはじめるもこれで終わります。ある程度のになったのでコマンド形式で実行できるようにしていきたいと思います。

引数でファイルかフォルダを指定するとtsファイルから番組情報を出力します。また、現在キャッシュフォルダはリソースファイルに組み込んでしまっているが(C:¥Home¥Cache)配下に数KBのTSファイルが生成されます。RealTimeはPCRから計算した値を元に表示させ

もっとみる

TSパケットからはじめる(8) - TS保存

TSファイルをエンコードしたりすると番組情報のEITは消えてしまいます。別ファイルに情報として保存しておけば良いのですが、使い勝手が良い生TSファイルのまま最小構成で残しておきたいと思います。

TSファイル最初のPCRを含むパケット

今まで紹介したPAT/PMT/SDT/EIT

NITは検出できれば入れる

TSファイル最初のTOT/TDTとその直後のPCRを含むパケット

上記合わせて2、

もっとみる

TSパケットからはじめる(7) - EIT

EITでTSファイルの番組情報を取得することができます。descriptor()は前回のSDT同様にタグ記述子となります。

はじめにTsEITクラスを作成してしまいます。ちょっと長いですがタグ記述子をたくさんデコードしているだけです。クラスのメソッドとして分けた方が見やすくなるかも知れません。

public class TsEIT{ public string program_name

もっとみる

TSパケットからはじめる(6) - SDT

SDT(Service Description Table)前回文字列のデコード処理は解決したのでSDTやEITの情報を取得してみます。SDTのPIDは0x11でtable_idが0x42(自ストリーム)、0x46(他ストリーム)となります。今回は自ストリームを取得したいので0x42のテーブルIDのSDTを取得します。

SDTのdescriptor()という項目がありますがこの部分はタグ記述子と

もっとみる

TSパケットからはじめる(5) - 文字コード2

初期処理前回からの続きとなりますが、実際に文字コードをデコードする処理を書いていきます。図形表をGCodeという名称にして列挙型としました。

public enum GCode{ UNKNOWN, KANJI, ALPHANUMERIC, HIRAGANA, KATAKANA, MOSAIC_A, MOSAIC_B, MOSAIC_C, MO

もっとみる

TSパケットからはじめる(4) - 文字コード1

文字コード概要TSパケットは独自フォーマット形式の文字コードが格納されています。独自と言ってもEUCJPを拡張したような構造です。PSIのSDTやEITを取り扱う上で文字コード変換が必要になるため、このタイミングとなります。

G0、G1、G2、G3という領域がそこには図形表(例えば"漢字")を割り当てすることができます。GL/GRからはG0~G3を参照します。GL/GRからG0~G3を経由して図

もっとみる

TSパケットからはじめる(3) - PSIパケット収集

PSIヘッダ構造前回PATとPMTをデコードしましたがこれらはPSIパケットとなります。これからの構造を見るとオレンジ色の先頭8バイトは殆ど同じであることが分かります。基本的にPSIは先頭は同じです。

PSIパケット長は緑色のselection_lengthとして12ビットで格納されています。12ビットということは最大で4096まで表現出来ますが4093までと規定されています。例としてEITとい

もっとみる

TSパケットからはじめる(2) - PAT/PMT

PESとPSIを判断するいくつかのPIDは固定番号のものがあり、これらの固定は全てPSIとなります。固定番号の1つにPAT(PID=0x00)と呼ばれるものがありPAT(Program Association Table)はPSIとなります。

PATからPMT(Program Map Table)をPIDを取得できます。PMTからPES一覧を取得することができます。このPMTに含まれないPIDは

もっとみる

TSパケットからはじめる(1) - TS概要

目的地上波/BS/CS放送はMPEG2-TS(MPEG2 Transport Stream)形式で送信されてくるのでそれをチューナで基本的にそのまま受信して保存しています。そのため、録画されたTSファイルには動画データ、音声データ、字幕データの他にも様々な情報が含まれた形で保存されています。今回目的としているのは番組情報に関するデータを取得することです。

TSパケット構成地デジ放送等では複数の動

もっとみる

はじめてみます

色々やったことや思った事など何か履歴を残せるサイトということでNoteに記載していくことにしました。現時点で掲載していく内容については録画サーバから派生した内容についてです。

きっかけxtne6f版 EDCB + EDCB Material WebUIで録画環境を構築しております。非常に使いやすいソフトウェアですがカスタマイズしたいなーっと思っていました。EDCB本体のソースに手を加えることは新

もっとみる