くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | ]

2017-03-23

日記

寝るのも起きるのも遅くなっててやばい。

イベントでのデータ配布はつつがなく終えることができた。

docbookからのEPUB3出力もなんとかなったし、リーダーによって見た目が違うのもだいたいなんとかした。てか確認してたリーダーがひどいものばっかりだったのがよろしくなかった。

イベントでの配布はdocbookから書き出したやつに雑な表紙をくっつけただけのものだったが、本にするやつはInDesignでレイアウトしよう。 初めて使うが以前PageMaker使ってた経験があるからなんとかなるだろ……なった。そんなに複雑なことするわけでもないので簡単だな。たまによくわからん用語が出てくるのが気になるが。

InDesignへはMarkdownからpandocでICMLてのに書き出してInDesignで読み込んでみた。ICMLはInCopyとInDesign連携用のファイルぽい。InCopyはInDesignに流し込むテキスト書く用のアプリなのかな。 SVGの画像だけちゃんと読み込めてなかったのでそこはなんとかする必要があるだろう。てか画像とか表とかインラインになってるけど、分離した方がいいんだろうか……。

今週末には編集終えられそうかなぁ。それだと予定通りだ。内容は図の追加とか始めなければ表紙込み60pで収まりそう。そろそろ印刷所決めないとね。印刷部数はどうしたものか……。

EPUBリーダーいろいろ

EPUBを書き出そうとしたらリーダーによっていろいろ困った話。

本をEPUB3にしてみたんだが、確認するのにPCで動くやつを調べてみた。 内容は普通に横書きの日本語技術書なんで、縦書きとか凝ったことはしてない。

MS Edge

Webブラウザ。Windows 10の1607ではEPUB表示できないけど今度の1704?あたりのやつでは表示できるようになってる。タブレットにInsider Preview入ってるのでそれで。

特に問題ない。というか試した中では一番使い易かった。文字のスタイルとか大きさとか色とか簡単にユーザーで変更きるようになってるし。まあWindowsとはいえタブレットでの操作なのでデスクトップや普通のノートでどんだけ使えるかはわからん。

PDF表示ももっと便利になってくれるといいのにね。

表示はWebブラウザなので当然問題あるわけもなく。

iBooks

macOSに入ってるやつ。

これも問題なさげ。しかし操作方法が微妙でMacでは使いづらいことこの上ない。 やたらと字がでかいし。これは設定もできそうか。ついでに言うとうちのMac mini(最新機種……)がやたらと重いのも悪い。

操作が微妙とはいえ表示に問題ないし、書棚管理的なのもできるし悪くはない。が、たぶんこれiPadとかiPhone連携前提じゃねえかなという気がしなくもない。

Kinoppy (Windows Store版)

紀伊国屋の電子書籍アプリのWindows Store版。外のEPUBも読み込める。 前はKinoppy使ってたがストア自体が壊滅的な使い勝手なのでやめた。

全然だめ。使い勝手自体は元のアプリが悪くないので悪くもないんだが、まともに表示がされない。 リストの点が表示されたりされなかったりずるし、SVGはちゃんと表示されないし、なにより表が空っぽになる。

ファイルの作りが悪いのかと思ってなんとかこいつで表示できないか調べてみたんだが、他のアプリでは軒並み問題無いのでこいつが悪いということで諦めた。 SVGはCSSとフォント埋め込みが使えないようなのでその辺変えたら少しましには出来たが、まだちょっとおかしかった。 デスクトップ版は調べてないが、まあそんなに変わらないんじゃないか?

Adobe Digital Edition

Adobeの電子書籍管理ソフト。インストールする時にSymantecのなんか変なの入れようとしてくる悪質なアドウェア。死ね。

表示は特に問題なかった。使い勝手はよく見てないがさっと見た分にはおかしなところはなかった。書棚管理みたいのもあったし。 表示を見た感じWebブラウザベースなんじゃないかなぁと思えるが、たぶんそうなんだろうなぁ。 てかWebブラウザベースにせずにEPUBちゃんと対応とか無理くさいよな……。

SumatraPDF

オープンソースのPDFリーダーなんだがEPUBも表示できたので。

これも全然だめだった。リストの点が表示されないしSVGも表示されない。表の線も出てこない。

まあおまけ程度なんだろうし仕方ないだろう。PDFリーダーとしては優秀だ。

Calibra

オープンソースの電子書籍管理ソフト。 デバイスに転送するのを主眼としてるようで、いきなりデバイスを選べとか言われて面喰う。

表示は問題ない。たぶんWebブラウザベースかな。Qtだし。 いろんな形式からインポート/エクスポートできるのも嬉しい。 使い勝手がこなれてないのはオープンソースって感じ。

Kindle Previewer

EPUBなんかをKindleの形式に変換してプレビューできるAmazonのツール。

純粋なビューアじゃなくて変換/制作ツールだけどまさにこういうの欲しかったので公式で用意されてるのは助かる。 ドラッグ&ドロップするだけで勝手に変換してやばいところあれば警告出してくれるので便利。 KindleのmobiにはCalibraでも変換できるけど公式ツールの方が安心だしね。

Kindleのmobiには新しい形式だとだいたいEPUB3がそのまま入ってるらしい。古い形式も作れるけど日本で売ってるKindleでは古いのじゃないと読めないやつって無さそうだから必要ないかな。

EPUB作ってみて

最初はSumatra PDFとKinoppyとEdgeとiBooksくらいで試してたので半数が全くまともに表示できなくて困ってたが、他のも試したところSumatraPDFとKinoppyが悪そうということで見ないことにした。

しかし実際のデバイスで見るとどんなもんなんかは分からんのが難しい、てか不安なところだ。 タブレットとかスマホで見るならWebブラウザベースの物になるだろうし心配してないんだけど。 専用デバイス向けなら他にKoboも調べるべきかと思ったけど、今回はいいや。

あと本文にSVGは入るんだけど、どのビューアも表紙にはSVGが使えないのがもどかしい。いや規格的に有効そうなんだけど実際誰も認識してくれなかったので最終的にPNGにした。確かに本文表示はWebブラウザベースだけど、サムネール表示部分は違うんで!て言われたら理解はできるが、もうちょっと頑張れよと思わなくもない。だいぶ前からアイコンにSVG使える環境すらあるんだぞ。


2017-03-14

日記

まだまだ本を書いている。

本文は出来た気がする。気になるところはある、ってかコンテナの部分がとても雑なんだがあんまり書けることもないんだよな……。いや書けるには書けるんだがめんどくせえわりに面白くないんで。時間があったら追加しよう。時間は無いけど。

参考文献なんかも追加したら思いのほかちゃんと書いちゃって50ページにもなってしまった。列挙するだけでいいだろうと思ったんだが、URL列挙だけでは何が何やらといった感じだったので。これ図も入ってないし適当な改ページも無いしで50ページだと、編集して52ページには収まらんなぁ。表紙込み60ページコースだ。

印刷まではまだ時間があるんだけど、先行して今週末のイベントにデータで上げるつもりなのでもう時間がない。 なんとか図は入れられるといいけど。

データでの配布は雑にEPUBとPDFあたりで出すべかとpandocでMarkdownからの変換をやってみるが、EPUBはリーダーによってだいぶ表示が違ってて困る。 Insider PreviewのEdgeで見たらいい感じだったけどSumatra PDFはなかなか酷い表示、macOSのiBooksだと悪くはないけど良いってほどでもない感じ。まあCSSを適切に設定してないからなんだけど、CSSいじりたくねぇわ。

EPUBくらいだったらなんでもいいだろと思ったけどそうでもねぇな。むしろこれこそInDesignあたりでスタイル編集しないとだめかもな。

どっちにしろ印刷にInDesignで編集するつもりだったし、EPUBもそれで作ってみよか。 間に合うか謎だけど、とりあえずPDF版だけdocbookから作っておいてあとからEPUB版追加でもいいし。

それより図を描かないと。


2017-03-07

日記

せっせと本を書いている。

ちょっと遅れたものの通して最後まで書くだけ書いた。一度も見直してないので、頭から見直しを始めた。ここからが本番だ……。

今のところ適当にPDF化すると45ページ程。図を入れて編集すると50ページ行くかいかないかってところかなぁ。印刷すると表紙等で4ページ分加算されるから52か56ページで刷ることになりそうかな。詰め詰めの文章で45ページだから、編集して本文48ページは難しいか。じゃあ52+4の56ページで。まあ全体で60ページでも、なんならもっと行ってもいいんだが印刷代がな……。1部500円越えちゃうと値段がめんどい。500円越えるのはなんだし、印刷代くらいは回収できるようにしたいし。

大事な表紙はどうしたものかと不安だったんだが、描いてくれる人を募集してみたところ請けてくれる人が見つかった。 自分で表紙作るはめになったら30部しか刷らんようにしようと思ったが、もうちょっと刷っても大丈夫そうだな。

文章はMarkdownで1ファイルに一気に書いてたんだけど特に問題なさげ。1000行くらいだしな。 PDF化はpandocでWordのdocx形式にして、Word持ってないからワードパッドで開いてPDFに印刷とかやってたんだがめんどくさい。 pandocでdocbookにしてApache FOPでPDFにするようにした。TeXとか難しすぎて何をインストールしていいのかすらわからねーんだよ。

PDFで読み進めながら気になったところを修正したいんだが、一旦PDFを閉じないと書き込めないのめんどいな。と思ったらSumatra PDFだと開いてるファイルにも書き込めるし、開いてるファイルが更新されたら勝手に読み直してくれる優れ物だった。さっすがー。

プログラムも書きたいけどもうしばらくは本書き進めねえとやばいな。まだちょっと時間はあるものの油断できる程ではない。


2017-02-23

日記

作業は進みつつある。

先週木曜は休みにして、以前行ったところとはまた別の近くの図書館に行って本書いてた。こっちの方が近い気がしてたけどどっちもどっちか。 こっちは平日なこともあってか、それともPC使える席が隔離部屋なこともあってか少し静かで良かった。WiFiは無いのでテザリングで使ってたけど度々通信が詰まってしまうのが困ったところ。

内容はたぶん2/3くらいまで進んだような?まだ適当に書いてるだけなのであとで全部見直すとだいぶ修正は入るだろうけど、まあまだ時間はある。はずだ……。 今のところざっと30Pは越えてるのでこのペースだと50P前後くらいか?30ページじゃ収まりそうにはないけど100ページも書けるわけないしせいぜい50ページくらい?と思ってたんで、予想通りくらいのページ数になりそうだな。 今月中に一通り文章書き終えて、来月は編集と図を入れたりしたいなぁ。

[PeerCastStation] FLV→TS変換

FLV→MPEG-2 TSの変換も進みつつある。といってももう半年近くやってる気もするが……。

RubyからC#へ移植してPeerCastStationのソースにぶっこむことはできた。まだファイル→ファイルへの変換をしただけなのでネットワークでリアルタイム変換までは漕ぎ着けてない。

途中で作ったファイルが上手く再生できないことに気付いたんだけど、NALByteStreamの読み込みに余計な脱エスケープ処理が入ってたのが原因だった。[0,0,3]が来たら最後の3はデコード時に無視しろってので消してたんだが、デコード時に無視なのでコンテナいじる程度ではそのままにしとくのが正しそうだ。しかしRuby版では上手く動いてたのなんでだろうな。コードは同じように見えるんだが。まあどっちにしろ余計なので消しといた。

次はコンテナ変換しつつ視聴するための口を作らねばならん。 まずは変換せずにそのままスルーパスするだけのフィルタを作って適用できるようにしましょうね。

データ読み込んでバッファにつっこむ辺りはIContentSinkてなインターフェースを使うようになってるんだが、バッファから視聴用にデータ取ってくる辺りはイベントを使うようになってておかしいので変えたいなぁ。バッファに非同期で追加されるコンテンツを順次取り出すのでIEnumerableのMoveNextがTaskを返せばいい?やってみようとしたがしっくりこない。これはもしかしてRx.NETの出番では?と思って調べてみるがそうでもないな。IContentSinkがだいたいRx.NETみたいなことやってた。

IAsyncEnumerableてのが似たようなのでIx.NETというのに入ってるようだ。これじゃんと思ったがSystem.Interactive.Asyncてのはインターフェースと拡張メソッドの実装だけで中身は自分で実装か。まあそりゃそうよね。 で、よく考えたらあんまり使うところないし、使うところでは同じようなの既に自分で実装してたので当面いらないのであった。無駄にいろいろ悩んだわ。

とにかく上流から受け取ってきたデータをバッファにつっこむところだけでなく、バッファから下流に流すところもIContentSink経由で行えるようにした。フィルタはIContentSinkを実装してデータを受け取って、下流のIContentSinkに流すものとすればいいだろう。した。

あとはHTTP視聴のところでフィルタかませるようにして動かしてみたらあっさりできた。よしよし。まあ仕組みは難しくないもんな。一発で動くとは思わんかったけど。 最後にFLV→MPEG2-TS変換のフィルタを作れば完成だけど、夜遅くなったのでこれはまだ作れてない。たぶんそんなに難しくはないだろう。

ぼちぼちHTTP Live Streamingの仕様も調べてるけど、ファイル細切れになるのはめんどくさそうだなぁ……。


2017-02-13

日記

作業進んでいない。

土曜日は朝から近くの図書館行って本書いてた。10時くらいに行ったのにもう机いっぱいでみんな考えることはいっしょなのね。 図書館は棚はいっぱいあるものの本はそんなに詰まっておらず、コンピュータ関係なんぞは1/5棚しか無かった。まあ何か期待したわけでもないからいいんだけどさ。本があんま詰まってないのは比較的最近出来た(引っ越した)ところだからだろう。

昼過ぎまで作業して午後は秋葉原のヨドバシまで歩いてった。水曜にBluetoothイヤホンの修理終わったって連絡があったんだが平日夜は寒くて行く気にならんかった。 受け取って修理内容見たら本体交換て書いてあって、本体交換ていうか新品の箱を渡された。まあそんなことだろうとは思ったけどさ。保証期間内だから無償だし、8000円だか9000円だかのやつを修理なんかするより交換する方が早いわな。修理するにしても交換してから修理だわ。 とにかく直って良かった。やっぱり無線は便利だ。有線でポケットに入れて歩いてるとどうしてもひっぱられちゃうんだよなぁ。

日曜は昼頃にコミティア行ってきた。歩いていけるんじゃねぇかと思ったので歩いてみたら、ビッグサイトまで1時間弱で着いてしまった。思ったより近かったな。まあ帰りは疲れたのでバス乗ったけど。 しかしお金が無いのであまり買わなかった。3冊1800円で買うのにカタログ1000円で買って入るのはちょっとどうなんですかね。

帰ってきてからは疲れたので寝てたりごろごろしてるだけで終わってしまった。 やりたいこといっぱいあるのによくないなぁ。


2017-02-06

日記

土日は寝て過ごした。かも。

土曜は昼に歯医者だったので行ってきて、買い物して帰ってきただけで寝てた気がする。洗濯もしたか。 日曜は起きたら昼だった。 飯食って何もする気が無かったが何もしないのはなんなので何も考えずにできる本の取り込み作業をして終わった。

技術書典2のサークルカタログ用のカットと説明が6日に締め切りだったはずなのでやらんとなと夜に気付いたんだが、よく見たら5日いっぱいの締め切りで、見た時には既に0時20分だったので諦めた。タイトル仮のままだったので直したかったんだがまだタイトル決まってないし、そんなに外れたタイトルでもないし説明もタイトル以外は問題ないので諦められる程度だ。仕方ない。

本の内容は気分的に1/3くらい書いた。気分的になのでこのあとすぐ終わるかもしれないしいつまでも終わらないかもしれないのがやばい。まあ多くても50ページくらいだろう。すぐ終われば30ページくらいか。

[Ruby] tDiaryが重かった

けっこう前からではあるがこの日記の表示がやたらと重かったのが気になってたので改善してみた。

以前は1ページ表示するのに6秒くらいかかってたのが3秒くらいになったんじゃないでしょうか。これでもまだ重いけどこれ以上はめんどくさいので一旦満足しておく。

この日記は今のところCGIで動かしてるんだけど、何が重いのか計ってみると案の定起動が遅い。ていうかgemの読み込みが重すぎるんよ。

bundlerのstandaloneで読み込むとちょっと軽くなるよっていうのを試そうとしてみたんだが、tDiaryはgemを一括でGemfileやgemspecから動的に読み込んでるのでstandaloneモードは使えないようだった。

じゃあどうしようもないのかとプロファイル結果を見てるとなんか変なのロードしてるな。RSpecとかどう見てもいらないだろ。Gemfile見るとdevelopmentに入ってるけどこれいらないのでは。

ソースを見るとRACK_ENVになんか入ってるとdevelopmentのやつは読み込まないようだ。RackのCGIモードで動かせばいいのかなぁ……。やってみるがやっぱり動かなかった。ですよねー。

とりあえず不要なものはインストールしなかったらどうなんのかとbundle install --without developmentで外したら上手く動いてくれて起動も速くなってくれた。これで良かったのか。全然確認してないけどドキュメントにこれくらい書いてありそうだな。てかソース良く見るとwithoutで弾かれてるやつは読み込まないようになってるわ。

これ以上速くしようとしたらソースに手を入れないとだめそうだし、我慢できる程度の遅さにはなったので満足することにしよう。

今時CGIなんか使ってんのが悪いと言われたらそうかもしれないが、管理したくないからレンタルサーバ使ってるわけだしね。てかtDiaryごときがCGIを許さない程重くなったらもうJekyllあたりの静的生成日記にするわ。


2017-01-30

日記

先週も特に何も無かった。木曜休みにして髪切りにいったけどそのくらいだし。

Bluetoothイヤホンが壊れたので修理出しに行った。

金曜には普通に使ってたんだが、土曜日に使おうとしたら何故だか電源が入らない。そういえば充電してる時のLED点いてなかった気がするなとケーブルを挿してみるがやっぱりLED点かない。満充電でもLED点くはずなんだがな。 ケーブルが悪い可能性も考えて別なところに挿してみるがやっぱりだめだ。 てか毎日充電してるし、2日くらいは余裕で使えるものだから一日充電してなかったくらいで電源入りもしないほど電池減ることもなかろう。 取説見ても特に何も書いてないし諦めて保証書を漁っておいた。

一応ケーブル挿さずに半日ほど放っておいたんだが、そしたらなんと電源が入るじゃないですか!ってなんか変だな。中国語でなんちゃらかんちゃらってメッセージが流れてLEDがチカチカする。今までに起きたことない現象だし中国語じゃあ分からんなぁ。そのままボタン押してると英語でなんちゃらcalling 00000…とか発狂したようなこと言い出す。なんて言ってるのかなぁと思ったがよくわからんうちに英語のメッセージも流せなくなってしまった。まあ聞き取れたとしても00000…とかだし解決はしそうもないが。 LEDチカチカするのはペアリング時と同じような感じなのでペアリングできるのかとも思ったけどそんなこともないし、そもそもボタンから手を離すと消えてしまう。だめだめ。だめだな。諦めて修理出そう。

保証書的なものは無かったけど保証ポリシーみたいなのとヨドバシ通販で買った時の納品書があるからなんとかなるだろう。メーカー保証は1年ぽいこと書いてあるし買ったの8月だからまだまだ大丈夫。秋葉原のヨドバシまで持っていくと保証期間内だからたぶん無料、10日から長ければ3週間くらいかかるかもなーとのことだった。まあ有線のイヤホンはあるし、無線に慣れちゃったからちょっと不便というだけで無いととても困る程の物ではないから仕方ない。原因はよくわからんけど無料で直るといいなぁ。そんなに乱暴に扱ったわけでもないし。

しかし秋葉原のヨドバシの修理コーナーとかさぞかし混んでるのかと思ったけど大したことなかったね。 人はけっこう居たけど液晶保護シール貼りサービスも同じカウンターでやってて、それを待ってる人がいっぱい居ただけなので修理出すのはすぐだった。

本書くのはあんまり進んでいない。構成はなんとなく決めたので内容を書き始めたら、最初の最初なのに2ページ分くらいになっちゃったし、このペースで進めていったらいつまでも終わらなくてまずくないかなぁ。

一日2ページも書けば一ヶ月で60ページ書けるわーとか言ってみたけど、平日に2ページ書く程時間取れるとも限らんし土日は結局全く手をつけてないしで先がおもいやられる……。


2017-01-23

日記

先週も特に何も無かった。土日はまた寝てたし。

本書くのはあんま進んでない。まだ大丈夫だけど、内容考えるとあらためて調べないといけないだろうことも多そうで、気合い入れないとやべーな。

[PeerCastStation] MPEG-2 TSなど

ちょっと前にMPEG-2 TS配信のPull Requestが来てたので試してみた。 Pull Request来てるやつ試すのちょっとめんどくさいんだけどなんとかなんねーかな。

動かしてみるが上手く配信できない。なんかエラー出てるな。 見てみるといくらかよろしくない部分があるようだ。 たぶんffmpegあたりから出力したやつだと上手くいくが、俺が作ったFLV→MPEG-2 TSサーバで出力したやつが正しく読み込めていない。 まあだめなところはすぐ分かったのでちょいと直したら動いたけど。

しかしPull Request来てるやつを直そうとしたらどうするのがいいのかな。

  1. マージしちゃってこっちで直す
  2. コメントで文句つけて直してもらう
  3. Pull Request来てるブランチにさらにPull Request送る

なんか上手い機能はないかと調べたけど見当らない。3はあまりにもめんどいので1か2だな。 1は簡単なんだが、オープンソースとはいえ修正が俺の中で完結してしまう。 どこがダメか教えて直してもらうのも優しさなのではないだろうか。 かといってコメントでここはこうなんですよって言って直してもらうのもめんどくせぇよなぁ……。

で、とりあえずすぐ直してもらうことを期待してなんとかコメントつけたが、一部あんまり理解してもらえなかったようだ。 手に負えそうにないのでそっちで直してくれと返信が来たのでマージしてこっちで直そう。

ちょっと直せば最低限動きはするけど、あとビットレートの算出はもう少し改善できるのでリリースまでにはしたいところ。 PCR間のバイト数を計ってビットレート算出するのが良さそうなのでそうしたい。

しかしSPSだのPPSだの(H.264のデコードに必要なヘッダデータ)って特別ヘッダ部分に取っておいたりしてないんだけどなんで大丈夫なんだろう?と思ったらIDRピクチャ(キーフレーム)の度にSPSとPPSを送出してるんだった。じゃあ問題ないな。

なんかSPSとPPSが一度しか吐かれないデータがあった気がしたんだけどあれはどうやって作った時のやつなんだっけかな。他にタイムスタンプとか付いてるやつだったし変な作り方しちゃったんだと思うけど。

FLV→MPEG-2 TS変換もC#に移植始めた。Rubyからほぼそのまま移植だし、Ruby版もそんな変なことやってないので困るところはないはず。しかしPeerCastStationに組み込むためにはそのインターフェース考えないとなぁ。今はコンテナ変換入れる口なんて作ってないよ……。


2017-01-18

日記

ここしばらくはなんかあったかな。特別なにかはなかった。 土日はなぜだかずっとふとんの中に居た。

エアコンつけてると部屋の上下でだいぶ温度が違うことがあったのでサーキュレータを買った。2000円くらいからあってどれがいいのかよくわからんかったけど、そんな機能はいらんし一番安いので十分そうだったので2000円のを。 一番弱い静音モードは静かだが、弱になるだけでだいぶ音がでかい。とりあえず静音で動かしといてみたが十分効果があったので問題無さそうだ。

技術書典2は受かったようだ。といっても全員受かったような雰囲気だし、まあ溢れる程ではないだろうと思ったので予想通りではあったが。 いよいよもって真面目に書かないといけないようだ。 内容はストリーミングのフォーマットだのプロトコル云々について書きます。


2017-01-10

日記

またしばらく書いてなかった。日記書くにも意外と時間かかるんでな。

年末はコミケ行ったり飲み会あったりで忙しかった。 年始は4日朝まで帰省してだらだらしてた程度。ずっと膝にネコが居た。

コミケとか行くと俺もなんか本作りたいなーと思うんだが、どうせすぐ飽きるだろうしコミケに出す程の物も作れないだろうしやめといたんだが、毎度やってるPeerCastのオンラインイベントに出すんだったら良いかと思ったので作ることにした。PDFだけど。

イベントが3月18~20日なんだが、4月9日に技術書典2があってサークル募集してるってのに気付いた。どうせ書くんだし期日近いし、受かったらついでに印刷するって感じで申し込んでみるかー。 7日中に申し込み完了だったので急いで内容決めて申し込んでみたけど受かるかな?まあ受かんなくても書かなきゃいけないんだが。

[PeerCastStation] FLV → MPEG-2 TSへの詰め替えの目処が立つ

作業は地味に進めていて、FLVからMPEG-2 TSへの変換はできた気がする。H.264とAACだけだけど、それ以外のFLVを使うことはほぼ無いので問題はない。

AACの詰め替えにちょっと苦労してたんだけど、FLVには生データで入ってくるAACのパケットに、MPEG-2 TSではADTSヘッダてのを前にくっつけて入れてやるだけで行けるようだ。まあそのADTSヘッダのフォーマットが分からなくてMPEG-2の仕様書見にまた図書館行ってコピってきたりしてたんだが。

FLVを受け取ってMPEG-2 TSに詰め直して吐き出すだけのプロキシサーバ的なのを作ってPeerCastStationから出力したFLVを食わせてみたんだけど、VLCでもWindows 10のWMPでも問題無く視聴できた。よしよし。

今は試しにRubyで作ってたんで、あとはこれをC#に移植してPeerCastStationに取り込めば一応は完成となる。コンテナ変換の仕組みは今無いのでその口を作るところから検討しないといけないんだがな。

MPEG-2 TSで出力できただけでは実際そんなに嬉しくもないので1、最終的にはセグメント毎に区切ってHTTP Live StreamingやMPEG-DASHで吐き出せるようにもしたい。そのあたりの仕様も調べないといけないが、これらは無料で仕様書が見れたはずなんで、少なくとも資料収集で困らないのは助かる。

  1. Windows 10なら(8.1もいけるかも?)Windows Media Playerで視聴できるって利点はあるものの、インターネットキャッシュフォルダに延々とファイル溜め込むのであんまり便利ではない。 


ページのトップへ | トップ | 追記 | kumaryu.net by kumaryu