devel

ニコ生アラートログ解析結果

ここ数日予約枠の配信開始が通知されていなかったそうだ http://blog.nicovideo.jp/niconews/2011/05/013371.html 昔同じ症状が出たときに書いた記事 http://d.hatena.ne.jp/kesikaran/20101017/1287300920以前から予約枠関係なく配信が通知されないことがあ…

ニコ生アラートログ

サーバを起動したので2日間ほどニコ生のアラートログを収集してみた http://cid-56613d7bcc31715d.office.live.com/self.aspx/.Public/etc/alertlog20110514-0516.zip 期間 2011/05/14の23時半頃から5/16の23時半頃までのおよそ二日間 接続サーバ情報 addr: …

長時間配信の再生時間表示がおかしくなる件について

長時間配信の再生時間表示がおかしくなる件についてスレで有用な情報を頂いた 934さんどうもありがとうございました! 934 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/04/25(月) 20:52:38.03 ID:6KHGsd410 recoで長時間録画したファイルが再生ソ…

ニコ生に対応したrtmpdumpがついに公開

ニコ生に対応したrtmpdumpがついに公開されたそうだ Part6スレの373さんが作成 373 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/04/10(日) 18:24:26.43 ID:C6NFWQxn0 ttp://nht.r.ribbon.to/rtmpdump.zip ニコ生の仕様に対応したrtmpdumpを作って…

ニコ生アラート途中経過

ソース http://github.com/nikuq/namareco/tree/work http://github.com/nikuq/libnama/tree/work 必要なもの id:hush_puppyさんのunicodedata.rbと関数width_kana()とcount_zen()をunicodewidth.rbとしてlibnama以下に保存 http://d.hatena.ne.jp/hush_pupp…

ニコ生アラート作成に向けたGrowl for Windowsとruby_gntpの使い方調査

目標 自分用のニコ生アラートの作成 以前からニコ生アラート(βα)がCPUを1つ占有しアラートを再起動せざるを得なくなったり最近ではニコ生アラート(本家)が気づくと落ちていたりしたことがあったのがその理由 ニコ生アラートの基本機能 アラートサーバか…

Multiline regular expression in Ruby 1.9

Here is a sample code for multiline regular expression in Ruby 1.9. #!/usr/bin/ruby1.9 s = [0x01, 0x02, 0x03, 0x04, 0x0a, 0x0b, 0x0c].pack("C*") if s =~ %r!.{6}! puts 'match1' end if s =~ %r!.{6}!m puts 'match2' end Result: % ./multiline.r…

ニコ生iPhoneアプリを使った配信のAPIを眺めてみた

以前のFME導入時と同様サーバによって異なるAPIが返ってくるらしい getplayerstatus/stream/contents_list/contents rtmp:rtmp://nlpoca02.live.nicovideo.jp:1935/publicorigin/100630_22_1/,lv20*****0 rtmp:rtmp://nlpoca41.live.nicovideo.jp:1935/publi…

namarecoの負荷改善

背景 元々namareco-0.1.x時代のCPU負荷は20-30%@266MHzマシン 現在は80-100% 以前取ったprofileに引き続き今回は目視でソース上の無駄を確認してみた 注目したソース 改変した記憶のあるrtmp.rb:read() def read(len) tmpbuf = '' while len > 0 if @offset …

namarecoのprofile結果

namarecoの負荷が従来の2〜3倍になっているのでprofileを取ろうとしてみた RTMP部に注目したかったので実際にはnamarecoの代わりにimarecoを使用 ファイルが生成されるところまで動かしたがRubyのprofileはとても重く定常状態までは動かせなかった そのた…

detectFace();を使ってみた

detectFace();とは? インクリメント株式会社の提供する無料の顔認識Webサービス 使い方はいたってシンプル http://detectface.com/api/detectに認識させたい画像をPOSTすると結果がXMLで返ってくるというもの 今回は画像上に顔が認識されたかのみを利用 本…

Rubyにおける例外処理(つづき)

昨日の記事について考えてみた loggerのwriteで例外を受け取った場合にそれが外部からのものだろうか内部からのものだろうかLogger::ShiftingErrorが発生するということだからまっとうな動作と理解 ライブラリを使ったら内部で発生しうる例外は呼び出し元で…

Rubyにおける例外処理

Rubyにおける例外処理がまたよく分からなくなったのでそのメモ 下記のプログラムにおいてShiftingErrorのrescueは必要なのかが分からない require 'logger' require 'thread' class TestException < StandardError; end log = Logger.new('looplog.log', 'da…

今日のメンテまとめ

今日のメンテで以下のエラーが新たに出力されるようになったようだ 座席の取得ができませんでした しばらく時間をおいて、再度お試しください これがuserliveslotfullリターン時の挙動か? ただこのエラーが出た配信のgetplayerstatus APIを同じブラウザで見…

Exerbで変換した実行ファイルのThread切り替えオーバヘッド(?)問題解決

昨日のエントリの件が無事解決 2chで質問したあとにRubyとExerbのバージョンを上げたところあっさり問題解決 ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32] Exerb 5.1.0 やっちまった

Exerbで変換した実行ファイルのThread切り替えオーバヘッド(?)問題

背景と目的 namareco.rbに比べてnamarecowin.exeがやたらと重いようなので原因調査してみた namarecowin.exeは録画中CPUをほぼ一つ食い尽くすようだ namarecowin.exeのRTMPパケット処理ループを空にして実験してみたところ通常時と同様の負荷が観測された そ…

ニコ生新サーバ変更点まとめとnamareco対応

getplayerstatus API getplayerstatus/stream/contents_list/contentsが変わった 旧 rtmp:liverepeater:rtmp://nlpoca14.live.nicovideo.jp:1935/publicorigin/lv15****** 新 rtmp:rtmp://nlpoca34.live.nicovideo.jp:1935/publicorigin/inst01/,lv15****** …

wxRubyでThread使うときの注意事項

http://pc12.2ch.net/test/read.cgi/tech/1269233796/41-66 55 :デフォルトの名無しさん:2010/03/24(水) 18:06:29 >>54 >>50 と同じようなことだと思うけど、ワーカースレッド作って buttonPush で ワーカースレッドにキューを投げるようにすればいいんじ…

長時間録画時のエラー

namarecoとrtmpdumpで同じ予約枠の録画を試してみた namareco結果 FLVのヘッダを修正しても4:35以降経過時間が増えないFLVファイルが生成された その後も再生はできる(最後までは取れなかった模様だが確認はしていない) 以前と同じようにTimestampのリセッ…

manareco-1.0.0リリース GUI対応

manareco-1.0.0リリース http://cid-56613d7bcc31715d.skydrive.live.com/self.aspx/.Public/Downloaod/manarecogui.zip GUI対応 タスクトレイ対応 スクリーンショット (画面は4/1現在の開発中のもの)

rtmpdumpを使ったニコニコ生放送録画

[追記] 2010/05のFME導入以来下記の方法は動作しません 従来の記事 rtmpdump http://rtmpdump.mplayerhq.hu/ rtmp[tes]*://に対応したダウンロードツール Windows版も上記サイトからダウンロード可能 Linux版はopenssl-develパッケージがインストールされて…

Git過去のcommitの取り出し方

過去のcommit(7281251ddd)を取り出す方法 参照する新しいブランチ(recovered-branch)を作成 $ git branch recovered-branch 7281251ddd 参考URL http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#dangling-object-recovery Git機能…

受信したTimestampのリセットが発生

12Bytesヘッダでは受信したTimestamp値をそのままFLVファイルに設定すればよいと考えていた 突然秒数がリセットされる動画があったのでヘッダ表示ツールで該当部分を表示させた結果が以下 プレーヤの表示で19:47(=1187sec=1187000ms=0x121cb8)ごろリセット…

FLVファイルのヘッダ表示ツール

以前の記事のコードがあまりにもひどかったので改訂 改訂バージョンのスクリプトは以下 #!/usr/bin/ruby def add_char_be(r, c) r *= 0x100 r += c return r end class FlvHeader BUFSIZE = 4096 def initialize @f = open(ARGV[0], 'r') @offset = 0 @outbu…

RubyにおけるHTTPS通信

HTTPS (SSL)のお勉強 http://www005.upp.so-net.ne.jp/nakagami/Memo/SSL/ まとめると安全に通信を行うにはルートCAの証明書が必要と理解 Ruby (OpenSSL)におけるルートCA証明書 ruby-listのアーカイブによると以下のコマンドでデフォルトの証明書の置き場所…

ニコ生のFLVファイルのヘッダ

FLVファイルに設定すべきtimestamp値 受信したタグのヘッダが12Bのときは受信したtimestampの値をそのまま設定 それ以外の場合はobject_id毎にtimestmapを加算してFLVファイルに出力すればよさそうだ その際body_lengthがchunk_sizeに達した場合はtimestamp…

ニコ動のFLVファイルのヘッダ

ニコ動のFLVファイルのヘッダを見てみた 00000000: 464c 5601 0500 0000 0900 0000 0012 0000 FLV............. 00000010: f400 0000 0000 0000 0200 0a6f 6e4d 6574 ...........onMet 00000020: 6144 6174 6108 0000 000b 0008 6475 7261 aData.......dura …

FLVファイルのヘッダ

FLV形式 FLVファイルについてここを参考にまとめてみる 以下はFLVファイルの先頭48Byte 46 4c 56 01 01 00 00 00 09 00 00 00 00 09 00 00 02 00 00 00 00 00 00 01 52 00 00 00 00 0d 09 00 65 6a 00 00 00 00 00 00 01 12 00 00 84 2e 81 9f 意味を順番に…

関連リンク

RTMP関連 RTMPプロトコル[ドラフト] 日本語訳(私訳) : OKの日記 RTMP Protocol [DRAFT] Open Source Flash Flash Video (FLV) Open Source Flash RTMP - Gnash Project Wiki AMF - Gnash Project Wiki ustreamを見ながらflvにダンプする : tech.kayac.com - …