先週も特に何も無かった。土日はまた寝てたし。
本書くのはあんま進んでない。まだ大丈夫だけど、内容考えるとあらためて調べないといけないだろうことも多そうで、気合い入れないとやべーな。
ちょっと前にMPEG-2 TS配信のPull Requestが来てたので試してみた。 Pull Request来てるやつ試すのちょっとめんどくさいんだけどなんとかなんねーかな。
動かしてみるが上手く配信できない。なんかエラー出てるな。 見てみるといくらかよろしくない部分があるようだ。 たぶんffmpegあたりから出力したやつだと上手くいくが、俺が作ったFLV→MPEG-2 TSサーバで出力したやつが正しく読み込めていない。 まあだめなところはすぐ分かったのでちょいと直したら動いたけど。
しかしPull Request来てるやつを直そうとしたらどうするのがいいのかな。
なんか上手い機能はないかと調べたけど見当らない。3はあまりにもめんどいので1か2だな。 1は簡単なんだが、オープンソースとはいえ修正が俺の中で完結してしまう。 どこがダメか教えて直してもらうのも優しさなのではないだろうか。 かといってコメントでここはこうなんですよって言って直してもらうのもめんどくせぇよなぁ……。
で、とりあえずすぐ直してもらうことを期待してなんとかコメントつけたが、一部あんまり理解してもらえなかったようだ。 手に負えそうにないのでそっちで直してくれと返信が来たのでマージしてこっちで直そう。
ちょっと直せば最低限動きはするけど、あとビットレートの算出はもう少し改善できるのでリリースまでにはしたいところ。 PCR間のバイト数を計ってビットレート算出するのが良さそうなのでそうしたい。
しかしSPSだのPPSだの(H.264のデコードに必要なヘッダデータ)って特別ヘッダ部分に取っておいたりしてないんだけどなんで大丈夫なんだろう?と思ったらIDRピクチャ(キーフレーム)の度にSPSとPPSを送出してるんだった。じゃあ問題ないな。
なんかSPSとPPSが一度しか吐かれないデータがあった気がしたんだけどあれはどうやって作った時のやつなんだっけかな。他にタイムスタンプとか付いてるやつだったし変な作り方しちゃったんだと思うけど。
FLV→MPEG-2 TS変換もC#に移植始めた。Rubyからほぼそのまま移植だし、Ruby版もそんな変なことやってないので困るところはないはず。しかしPeerCastStationに組み込むためにはそのインターフェース考えないとなぁ。今はコンテナ変換入れる口なんて作ってないよ……。