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

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

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

C:\xxxxx> ProgramManager.exe D:\Share\sample.ts
Filename: sample.ts
Title: えくすぽ「タイの秘境で何をゴチバトル」🈑
Channel: NNK総合1・東京
RecTime: 2022/01/18 12:20:00 - 12:45:00(25分)
RealTime: 2022/01/18 12:39:55 - 12:45:02(5分)
Audio: 2/0モード(ステレオ)- 48kHz
Video: 映像1080i(1125i)、アスペクト比16:9 パンベクトルなし
Description: タイのチャーハンが驚きの価格で見逃すな。ドイツ人もびっくり仰天。
Genre:
        情報/ワイドショー [グルメ・料理]
Extended:
        [番組内容]: なぜかタイでチャーハンバトルが繰り広げられる。ドイツ人もびっくりしたそのわけとは。
        [出演者]: 【出演】料理研究家…鉄人23号,小川まち,川中えき,マイケルペイ, マイくら

密かに字幕を取り出すのをゴールにしていたのですが、まだまだ考慮しなければならない事や時間がかかりそうなので一旦保留して先に進みたいと思います。

Program.csのScanFile中のコメントアウトをはずせばバギーでほとんどテストしていないですが字幕を取り出せるかもです。

---------- Subtitle ----------
00:00:01.1325320: いよいよチャーハンが登場です。
00:00:05.1256880: ネット通販通で やっとと届きました
00:00:07.3309610: チャーハンの美味しさを発信したと思います。
00:00:11.6222240: (2人)We love!
00:00:14.5431420: まずい。
00:00:16.8671450: 通販のチャーハンはまずいっすね。でしょ?
00:00:21.6352870: 3か月も待ちだったので
00:00:25.5093120 - 00:00:27.5093120: 本当は…
00:00:31.1714210 - 00:00:33.3714210: びっくりしちゃいました。
00:00:42.5552810 - 00:00:44.5552810: 何が?
00:00:48.9328850 - 00:00:51.4328850: ほら これ 見て見て。
00:00:55.0715220 - 00:00:57.1715220: 具が 入っていないんだ。
00:00:59.9588470: うわ これでいくなの?!
00:01:04.4885240: 海外ではこのようなの当たり前だよ
00:01:09.0182520 - 00:01:12.8182520: 小皿とかありますか?あっ あります。
00:01:17.6605190 - 00:01:23.8605190: こちらはですね これは日本のどこかで作られています
00:01:27.0774200: 侍を意識しているものが多くて。
00:01:29.1038190: 関係なくても 人気なんですよ。
00:01:32.5612580 - 00:01:35.7612580: ねえ なんでこんなチャーハンが人気なの~。
00:01:40.0706420: そうですよ。 なんですか…
00:01:44.0044580: でっ 結局!いくらなの。
00:01:48.4146520: 5000円です!
00:01:50.8583900 - 00:01:53.2583900: ありえないですけど。
00:02:00.3944730 - 00:02:03.1944730: え~!そうかな。
00:02:13.8048320: 地元では大人気なんですよ。 って全てフィクションですけどね。

1行に1つだけ時間が表示されているのは次の字幕まで表示で、2つ時間が表示されているのは2つ目の時間まで表示という意味です。また、ちゃんと処理を入れていないのでおかしい所はたくさんあります。

番組表や字幕の内容はフィクションです。
言わなくても分かると思いますが…

文字コード表は下記サイトのものを使用させて頂きました。

下記はソースのみでバイナリは含まれていません。
使用時にはProgramManagerプロジェクトのリソースファイルからCacheFolder値を変更して下さい。

履歴
2022/02/13 - 不具合修正(02/07は全然ダメでした)
2022/02/07 - 不具合修正とコマンドオプション追加
2022/02/03 - 開発途中バージョンとして公開

PCRが一周する処理はまだ入れていません。録画マシンイガで作っているためまともなテストが出来ていないためです。

文字コードをユニコード表示に切り替え
C:...\> chcp 65001

- 標準動作(キャッシュモード、スキップなし、英数字アルファベット強制)
C:...\> ProgramManager.exe F:\TVRec\sample.ts 又は
C:...\> ProgramManager.exe F:\TVRec

- キャッシュを使用しない(スキップなし、英数字アルファベット強制)
C:...\> ProgramManager.exe F:\TVRec\sample.ts -nocache

- スキップモード(キャッシュモード、英数字アルファベット強制)
C:...\> ProgramManager.exe F:\TVRec -skip

- 英数字アルファベット強制無効、キャッシュを使用しない、スキップする
C:...\> ProgramManager.exe F:\TVRec -nocache -nohalf -skip

一度読み込んだファイルはキャッシュフォルダ配下に格納されます。そのキャッシュを使用しない場合(-nocache)、キャッシュデータが作成されている場合はスキップ(-skip)、全角英数字が標準的な出力になるのですが個人的に全角英数字はあまり使わないのでデフォルトは半角英数字で出力していますがこれは標準出力にするのは-nohalfオプションです。

一旦これでTSパケット編は終了となります。エンコードの処理辺りで再びTSパケットについて触れることになると思います。


この記事が気に入ったらサポートをしてみませんか?