PeercastStationでFLV配信 2

ffmpegを利用すればflv配信はできますが、やっぱりflashエンコーダを使いたいという人はいると思います。PeercastStationでflashエンコーダを使うにはPeercastStationがrtmpに対応しなければいけない、と前の記事で言いましたが、今のPeercastStationでもrtmpをhttpに変換する処理を間に挟めばなんとかできないこともないです。

その方法は例えば

Flashエンコーダ>rtmpサーバ>rtmpdump>httpサーバ>PeercastStation

これだと利用するソフトも多く面倒なので、rtmpサーバ~httpサーバの部分を1つにまとめてFlazrDumperというソフトにしました。これで

Flashエンコーダ>FlazrDumper>PeercastStation

という流れになります。Flashエンコーダはなんでも利用できたらよかったのですが動作確認できたのはいまのところOpen Broadcaster Softwareのみです。rtmpサーバにFlazrを利用しているので、ここをred5に変えるなどすると対応できるエンコーダを増やせるかもしれません。

 

配信方法 

FlazrDumperをダウンロードして起動しておきます。(要Java)

FlazrDumper画面

 

Open Broadcaster Softwareの設定>放送設定で

サーバー rtmp://localhost/live
プレイパス/ストリームキー livestream

を入力して配信開始

Open Broadcaster Software画面

 

PeercastStation配信設定のストリームURL

http://localhost:8888/

で配信できます

PeercastStation配信画面

Open Broadcaster Softwareのエンコード設定でサウンドコーデックをAACにすると特定のプレーヤーで音がでない問題を修正しました(09/25)

PeercastStationで配信中にエンコードをやり直すとメタデータが欠落する問題を修正しました(2013/10/21)

Linux環境でも利用できるようになりました。(2014/07/14)

ダウンロード:FlazrDumper.zip

 

おまけ:rtmpサーバにred5を使う方法

先にred5を起動してからFlazrDumperを起動するとポートが使用されているというエラーが出ますが、無視して続けるとrtmpdumpはFlazrの代わりにred5に接続しに行くのでそのまま配信できます。

あわせて読みたい

40件のフィードバック

  1. udk より:

    Flashエンコーダでなん実のように外部サイトを介さないで形式での身内のみでのクローズドな配信を行いたいと考えていたところ、こちらの記事を読ませていただきました。
    このソフトをそのまま使えばそれを実現できそうだと考え試してみたところ、残念ながら無理でした。
    あつかましい要望だとは理解しておりますが、もしよろしければその点に関しまして、機能拡張をしてはいただけないでしょうか。

    • petit より:

      コメントありがとうございます。
      クローズドな配信に必要な機能とは例えばどのようなものですか?
      ちなみにこのソフトで利用しているFlazrはFlashMediaServerのように独立したrtmpサーバで、flashエンコーダとflashプレーヤーを利用した配信・視聴ができます。rtmpではなくflv形式に変換したものはプログレッシブダウンロードに対応しているFlowPlayerなどで再生できます。

  2. udk より:

    返信ありがとうございます。
    こちらのミスによるものかも知れませんが、ローカル以外での視聴ができませんでした。
    ローカル外の、複数人に、http://[IPアドレス]:8888のURLでプレイヤーでの視聴ができれば、と思いましたが、すでにそのような仕様でしたのならば申し訳ありません。

    • petit より:

      そういえばflashには同じサーバ上のリソースにしかアクセスできないクロスドメイン制約がありました。rtmpでの接続なら問題ないと思いますので、もしできるならまずそちらを試してください。そのときはポート1935を開けてください。

      rtmpが無理な場合は、flashプレーヤーをFlazrDumperのhttpサーバから表示するようにするか、flashの外部アクセスを認めるcrossdomain.xmlを使うかのどちらかになります。flashプレーヤーを外部のwebサーバに設置するなら後者のほうです。どのように利用することを想定されていますか?

  3. udk より:

    配信内容に制限を付けたくないので外部サイトを使わずに、またpeercastのように視聴側が特に環境を導入することなく配信を完結させるような利用を考えていましたが、ローカル内でしか再生できないのは仕様だったのですね。
    的外れな要望失礼いたしました。
    勉強不足ゆえに提案していただいている方法が理解できませんでしたが、それをキーワードに調べてみようと思います。
    ありがとうございました。

    • petit より:

      説明がわかりにくくてすいません。udkさんの最初の提案のとおり、機能拡張すれば外部からも視聴できます。何のプレーヤーで(どこから)再生してみたのかをお聞きしたかったのです。

      回答を聞く前ではありますが、少しの修正で外部から接続できるようにはなったので修正版をアップしました。
      簡易プレーヤーも内蔵したので、配信中であれば http://[IPアドレス]:8888/flowplayer/ を開くと再生できると思います。
      別の方法がよければ、できるだけ対応していくつもりです。

      http://fukure.sakura.ne.jp/test/FlazrDumper-0.4.0.zip

  4. udk より:

    そういうことでしたか、ありがとうございます。
    お言葉に甘えさせていただきます。

    想定している利用法は、ニコ生のようにブラウザ、もしくはなん実のように(Flashエンコーダー以外を使えばいいと言われればそれまでですが)動画プレイヤー(ローカルだとVLCプレイヤーだと再生できましたので、それを使って)でネット上の知り合いの複数人に配信することを考えております。

    こちらで修正後のものをためしてみたところ、やはりブラウザでの視聴、プレイヤーの視聴ともにローカルの再生のみで、web経由で友人が再生することはできないようでした。

    このときの環境は、
    開放ポートが、TCP8888,TCP1935
    設定変更無しのFlazrDumperを起動した後、
    OBS設定で
    サーバー rtmp://localhost/live
    プレイパス/ストリームキー livestream
    を入力し、配信を行いました。

    ローカルでは再生を確認できました。

    その後に友人に試してもらったのが、
    ブラウザでのhttp://ipアドレス:8888/flowplayer/へのアクセス
    VLCプレイヤーでのhttp://ipアドレス:8888/live/livestream.flvおよびhttp://ipアドレス:8888/へのアクセス
    です。
    その際
    ブラウザだと「リモートサーバーに接続できませんでした」
    プレイヤー上だと「再生できませんでした」
    といったメッセージが出たそうです。

    方法が間違っているようならばご指摘をお願いします。
    何度も申し訳ありません。

    • petit より:

      http://ipアドレス:8888/flowplayer/ をブラウザで開いた時にflowplayerが表示されず接続できないと表示されるならば、flashの問題ではなくそもそも配信しているPCに接続できていないと思います。
      ポートが開放されているかチェックするサイトで ipアドレス:8888 にアクセスできるか調べてみてください。
      ルータのポートを開放している場合はファイアウォールやセキュリティソフトなどで弾いている可能性もあります。

  5. udk より:

    ファイアウォールの設定を変えたところ、外部からの視聴を確認できました。
    本当にありがとうございました、大切に使わせていただきたいと思います。

    • petit より:

      できましたか。よかったー。
      flashは小規模でも配信~視聴までしようとするとちょっと面倒ですね。

    • test より:

      私も『自宅でFLVエンコ→出先のポト0環境から直接接続して視聴』
      という形で活用させてもらってます
      こちらのツールのおかげで設定も超簡単でしたー

    • petit より:

      自分のデスクトップを外から見るということですか?

  6. デモタ より:

    OBS0.571bとFlazrDumper0.4.3とPecaSt1.6.0を使い配信を開始しました。
    チャンネルはそのままでOBSを立ち上げ直したところ、
    Metadataの書き込みをせず、データをPecaStに送っているようです。

    以下のログがFlazrDumperに出ないと、Metadataが抜け落ちているようです。
    何回かOBSを立ち上げ直すと、以下のログが出る時があります。
    そのときは、Metadataが抜け落ちていません。

    21:16:59,814 – writing start meta / config: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=960.0, height=720.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
    21:16:59,814 – writing start meta / config: [0 AUDIO c5 #1 t0 (0) s4] af001210
    21:16:59,815 – writing start meta / config: [0 VIDEO c4 #1 t0 (0) s49]

    • petit より:

      報告ありがとうございます。
      MetaDataのログがないということはobsとrtmpサーバの間の問題であることは確実なのですが
      rtmpサーバ(Flazr)の中身はよくわからないのでこれがバグなのか正常動作なのかはなんとも言えません。
      もしOBSがメタデータ自体を送っていないとしたら、FlazrDumper側でできることは、エラーとして
      強制切断するかそれを利用者に通知することくらいです。

    • デモタ より:

      OBSからメタデータが送られてこなかったら、
      ログで通知し強制切断するテスト版を出していただけないでしょうか。

      強制切断でOBSの自動再接続機能が働くか不明ですが、
      その機能が働き、OBS側で何回か自動接続すれば、
      metadataが載ったデータが来て、
      メタデータが書き込めるかもしれません。

    • petit より:

      メタデータがないと切断するテスト版はこちらです
      http://fukure.sakura.ne.jp/test/FlazrDumper-0.4.4a.zip

      OBSは切断されるとすぐにダイアログが表示されるので自動再接続はしていないと思われます。FMEやXsplitは再接続している気配があるのでOBSだけちょっと違う動作のようです。

    • デモタ より:

      OBS0.571bとFlazrDumper0.4.4aとPecaSt1.6.0を使い確認しました。
      メタデータがないと切断されるはずですが、切断はされませんでした。
      メタデータがないというより、一部欠落してる状態だと思われます。

      私がこちらのブログに書き込んたときに、一部という字が抜け落ちていました。
      申し訳御座いません。

      FlazrDumper0.4.4aとpcfp v1.6.0.19のログは以下の通りです。

      ・pcfpのログでMetadataがあると判断したもの
      currentFPS : 12.00960768614892
      bytesLoaded : 595773
      bytesTotal : 4294967295
      bufferLength : 2.341
      bufferTime : 0.1
      time : 86.15
      useHardwareDecoder : true
      videodatarate : 400
      encoder : Open Broadcaster Software v0.571b
      videocodecid : avc1
      stereo : true
      duration : 0
      audiochannels : 2
      framerate : 12
      audiosamplesize : 16
      fileSize : 0
      height : 480
      audiosamplerate : 44100
      audiodatarate : 96
      width : 640
      audiocodecid : mp4a

      ・そのときの抜粋ログ
      writing start meta / config: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, au
      diodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
      writing start meta / config: [0 AUDIO c5 #1 t0 (0) s4] af001210
      writing start meta / config: [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0

      ・pcfpのログでMetadataが欠落していると判断したもの
      11.914217633042098
      bytesLoaded : 2392775
      bytesTotal : 4294967295
      bufferLength : 0.842
      bufferTime : 0.1
      time : 52.325
      useHardwareDecoder : truep

      ・そのときの抜粋ログ
      adding onMetaData message: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
      adding config message: [0 AUDIO c5 #1 t0 (0) s4] af001210
      adding config message: [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0

      ・全体ログ
      16:34:36,360 – opened channel: [id: 0x00a7b7ff, /127.0.0.1:54318 => /127.0.0.1:1935] OPEN
      16:34:36,370 – handshake done, rtmpe: false
      16:34:36,371 – old client version, disabled ‘aggregate’ mode
      16:34:36,372 – connect, client id: 10991615, application: [name: ‘live’ streams: {livestream=[name: ‘livestream’ type: LIVE publisher: null subscribers: DefaultChannelGroup(name: livestream, size: 0) config: []]}]
      16:34:36,375 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s39] name: releaseStream, transactionId: 2, object: null, args: [livestream]
      16:34:36,376 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s35] name: FCPublish, transactionId: 3, object: null, args: [livestream]
      16:34:36,377 – ignoring command: [0 COMMAND_AMF0 c3 #0 t0 (0) s21] name: _checkbw, transactionId: 5, object: null, args: []
      16:34:36,378 – publish, stream name: livestream, type: live
      16:34:36,378 – Created ServerStream [name: ‘livestream’ type: LIVE publisher: null subscribers: DefaultChannelGroup(name: livestream, size: 0) config: []]
      16:34:36,380 – created publish stream: [name: ‘livestream’ type: LIVE publisher: [id: 0x00a7b7ff, /127.0.0.1:54318 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 0) config: []]
      16:34:41,270 – adding onMetaData message: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
      16:34:41,270 – adding config message: [0 AUDIO c5 #1 t0 (0) s4] af001210
      16:34:41,271 – adding config message: [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0
      16:34:41,652 – opened channel: [id: 0x01712492, /127.0.0.1:54321 => /127.0.0.1:1935] OPEN
      16:34:41,657 – handshake done, rtmpe: false
      16:34:41,657 – old client version, disabled ‘aggregate’ mode
      16:34:41,658 – connect, client id: 24192146, application: [name: ‘live’ streams: {livestream=[name: ‘livestream’ type: LIVE publisher: [id: 0x00a7b7ff, /127.0.0.1:54318 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 0) config: [[0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}], [0 AUDIO c5 #1 t0 (0) s4] af001210, [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0]]}]
      16:34:41,662 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s37] name: FCSubscribe, transactionId: 3, object: null, args: [livestream]
      16:34:41,662 – ignoring command: [0 COMMAND_AMF0 c3 #0 t0 (0) s21] name: _checkbw, transactionId: 4, object: null, args: []
      16:34:41,669 – writing start meta / config: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
      16:34:41,670 – writing start meta / config: [0 AUDIO c5 #1 t0 (0) s4] af001210
      16:34:41,670 – writing start meta / config: [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0
      16:34:41,671 – client requested live stream: livestream, added to stream: [name: ‘livestream’ type: LIVE publisher: [id: 0x00a7b7ff, /127.0.0.1:54318 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 1) config: [[0 METADATA_AMF0 c5 #1 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}], [0 AUDIO c5 #1 t0 (0) s4] , [0 VIDEO c4 #1 t0 (0) s49] ]]

    • petit より:

      pcfpのuseHardwareDecoderなどはプレーヤーの情報なのでメタデータはたぶん受信できていないと思います。
      FlazrログにMetaDataの記述があるならRTMPサーバまでは来ているのでデータがなくなるのはそれ以降ということになりますね。
      今回HTTPサーバの前でもメタデータチェックを入れPecaSt側を切断するようにしました。PecaStの再接続でrtmpdumpがやり直されて問題が解決されることを期待します。
      http://fukure.sakura.ne.jp/test/FlazrDumper-0.4.4b.zip

      前コメOBSの自動再接続の件はよく見たら放送設定にチェックボックスがありました。失礼しました。

  7. デモタ より:

    OBS0.571bとFlazrDumper0.4.4bとPecaSt1.6.0を使い配信を開始しました。

    OBSの設定変更後に再開したところ、HTTPサーバの前でのメタデータチェックにより、
    PecaSt側の切断機能が働き、PecaStの再接続で、
    rtmpdumpがやり直されて、Metadataが正常にPecaSt側に渡されて問題が解決されたようです。

    という認識で問題ないですかね。
    ご対応ありがとうございました。

    以下ログです。

    15:34:40,694 – handshake done, rtmpe: false
    15:34:40,695 – old client version, disabled ‘aggregate’ mode
    15:34:40,697 – connect, client id: 18179336, application: [name: ‘live’ streams: {livestream=[name: ‘livestream’ type: LIVE publisher: [id: 0x00fa3ce5, /127.0.0.1:63681 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 0) config: []]}]
    15:34:40,702 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s37] name: FCSubscribe, transactionId: 3, object: null, args: [livestream]
    15:34:40,703 – ignoring command: [0 COMMAND_AMF0 c3 #0 t0 (0) s21] name: _checkbw, transactionId: 4, object: null, args: []
    15:34:40,711 – client requested live stream: livestream, added to stream: [name: ‘livestream’ type: LIVE publisher: [id: 0x00fa3ce5, /127.0.0.1:63681 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 1) config: []]
    15:34:42,635 – adding onMetaData message: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
    15:34:42,637 – adding config message: [0 AUDIO c5 #1 t0 (0) s4] af001210
    15:34:42,638 – adding config message: [0 VIDEO c4 #1 t0 (0) s49] 170000000001640016ffe1001b67640016acd940a03da6a021a0c8000003000800003e8078b16cb001000668ebe2cb22c0
    15:34:46,154 – exception: 既存の接続はリモート ホストに強制的に切断されました。
    15:34:46,155 – channel closed: [id: 0x01156508, /127.0.0.1:63684 => /127.0.0.1:1935] CLOSED
    15:34:48,811 – opened channel: [id: 0x009f662e, /127.0.0.1:63696 => /127.0.0.1:1935] OPEN
    15:34:48,815 – handshake done, rtmpe: false
    15:34:48,815 – old client version, disabled ‘aggregate’ mode
    15:34:48,817 – connect, client id: 10446382, application: [name: ‘live’ streams: {livestream=[name: ‘livestream’ type: LIVE publisher: [id: 0x00fa3ce5, /127.0.0.1:63681 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 0) config: [[0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}], [0 AUDIO c5 #1 t0 (0) s4] , [0 VIDEO c4 #1 t0 (0) s49] ]]}]
    15:34:48,821 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s37] name: FCSubscribe, transactionId: 3, object: null, args: [livestream]
    15:34:48,821 – ignoring command: [0 COMMAND_AMF0 c3 #0 t0 (0) s21] name: _checkbw, transactionId: 4, object: null, args: []
    15:34:48,825 – writing start meta / config: [0 METADATA_AMF0 c5 #0 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}]
    15:34:48,827 – writing start meta / config: [0 AUDIO c5 #1 t0 (0) s4]
    15:34:48,829 – writing start meta / config: [0 VIDEO c4 #1 t0 (0) s49]
    15:34:48,829 – client requested live stream: livestream, added to stream: [name: ‘livestream’ type: LIVE publisher: [id: 0x00fa3ce5, /127.0.0.1:63681 => /127.0.0.1:1935] subscribers: DefaultChannelGroup(name: livestream, size: 1) config: [[0 METADATA_AMF0 c5 #1 t0 (0) s333] name: onMetaData data: [{duration=0.0, fileSize=0.0, width=640.0, height=480.0, videocodecid=avc1, videodatarate=400.0, framerate=12.0, audiocodecid=mp4a, audiodatarate=96.0, audiosamplerate=44100.0, audiosamplesize=16.0, audiochannels=2.0, stereo=true, encoder=Open Broadcaster Software v0.571b}], [0 AUDIO c5 #1 t0 (0) s4] , [0 VIDEO c4 #1 t0 (0) s49] ]]

    • petit より:

      たぶんおそらく。
      原因がはっきりしないので若干気持ち悪いところもありますが
      先に再生している状態で配信が始まるとだめ?とか思ったりしてます。
      すこし様子を見て問題無さそうなら新しいバージョンとして公開します。
      何度もありがとうございました。

  8. Mmm より:

    metadateを追加できるエンコーダー、例えばffmpegなんかで追加したメタに全角文字を含んでいた場合
    ffmpeg -f dshow -i video=”SCFF DirectShow Filter” -pix_fmt yuv420p -vcodec libx264 -metadata artist=”あいうえお” -f flv “rtmp://localhost/live/livestream”
    UTF-8とSfhit_JISの関係でGUI上で文字化けするのは仕方ないのですが
    FlazrDumperから送り出されるメタデータがこの文字コード違いで表示されているデータを格納しているため一部文字が変化し
    プレイヤー側でデータを見ると文字化けを起こします
    ちなみにFFFlvServerでは問題ありませんでした
    このような事例に出くわすことはそうそうないと思いますがご報告までに

    • petit より:

      報告ありがとうございます。
      rtmpサーバのメッセージを扱う部分で文字化けしていました。
      ここをUTF-8で決め打ちしていいものなのかわかりませんが、flashの標準文字コードがUTF-8のようなので多分大丈夫でしょう。
      ということで修正したものをアップしました。
      http://fukure.sakura.ne.jp/test/FlazrDumper-0.4.4c.zip

  9. 名無し より:

    すみません、ポート番号を指定して起動させたいのですが、どうすればいいかイマイチわかりません。
    ポート番号を9000にしたい場合の例として
    方法1:「ファイル名を指定して実行」に「FlazrDumperのパス 9000」と入力してEnter
    方法2:FlazrDumperのショートカットを作成し、リンク先の最後に9000を追加して
    「FlazrDumperのパス 9000」にする
    とあったのですが結果できませんでした・・・

  10. 名無し より:

    すみません、解決しました。xml内のポート指定する項目があったんですね

    • petit より:

      設定画面などを作っていなかったのでちょっとわかりにくいですね。申し訳ない。
      先の2つの方法は想定していませんでしたが、試したところ変更できました。
      環境が違うとできないのか指定方法が間違っていただけなのか原因は不明です・・・。

  11. 名無し より:

    PeercastaStationにて配信開始すると以下のログが出て配信できません、何が問題でしょうか?
    回答抱けたら助かります。

    14:40:56,058 – flazr-init.properties not found on classpath, will try system property ‘flazr.home’
    14:40:56,061 – ‘flazr.home’ system property not set, will use current directory: I:\FlazrDumper\flazr-0.7-RC2
    14:40:56,061 – loading config from: I:\FlazrDumper\flazr-0.7-RC2\conf\flazr.properties
    14:40:56,063 – home dir: ‘I:\FlazrDumper\flazr-0.7-RC2\home’
    14:40:56,063 – server port: 1935 (stop 1934)
    14:40:56,163 – server started, listening on: 0.0.0.0/0.0.0.0:1935
    14:40:56,163 – stop monitor thread listening on: ServerSocket[addr=/127.0.0.1,localport=1934]
    14:44:14,202 – opened channel: [id: 0x2ce6a73d, /127.0.0.1:50180 => /127.0.0.1:1935] OPEN
    14:44:14,215 – handshake done, rtmpe: false
    14:44:14,215 – old client version, disabled ‘aggregate’ mode
    14:44:14,225 – connect, client id: 753313597, application: [name: ‘live’ streams: {}]
    14:44:14,233 – ignoring command: [1 COMMAND_AMF0 c3 #0 t0 (0) s37] name: FCSubscribe, transactionId: 3, object: null, args: [livestream]
    14:44:14,234 – ignoring command: [0 COMMAND_AMF0 c3 #0 t0 (0) s21] name: _checkbw, transactionId: 4, object: null, args: []
    14:44:14,235 – Created ServerStream [name: ‘livestream’ type: null publisher: null subscribers: null config: null]
    14:44:14,239 – reader creation failed: java.io.FileNotFoundException: home\apps\live\livestream.flv (指定されたパスが見つかりません。)
    14:44:14,241 – channel closed: [id: 0x2ce6a73d, /127.0.0.1:50180 => /127.0.0.1:1935] CLOSED
    14:44:17,305 – opened channel: [id: 0x26f4a3a1, /127.0.0.1:50184 => /127.0.0.1:1935] OPEN
    14:44:17,307 – handshake done, rtmpe: false

    • petit より:

      再生用(PeercastStation)の接続しかなく、エンコードしていないのに配信しようとしているように見えます。
      もしエンコードしているならFlazrDumperにデータが届いていないのでOpen Broadcaster Softwareの放送設定でサーバアドレスやパスが間違っていないか確認してみて下さい。

    • 名無し より:

      お陰様でストリームキーを手動で入力したらうまくいきました、初歩的なミスでお恥ずかしありがとうございました。

    • petit より:

      ストリームキー=パスワード?? 文字伏せる必要あるんだろうか

  12. tori より:

    自分もudkさんのように知り合い用のみでFLV配信出来ない物かと探してたらここにたどり着きました。
    中々flvプレイヤーが浸透しないのでflowplayerで見れるのもありがたいです。大切に使わせてもらいます!

    • petit より:

      こういうの意外と需要あるんですかね。たしかにflvは小規模であってもサーバを用意する必要があったりと(wmvと比較してみても)気軽にできない感じはあります。

  13. デモタ より:

    例のタイムシフト再生版を使って配信していたところ、
    気付いたら落ちてましたのでlog貼っておきます。

    2015/06/01 21:02:37: PeerCastStation/1.9.2 (OS:Microsoft Windows NT 6.1.7601 Service Pack 1, CLR:4.0.30319.34209)
    System.InvalidOperationException: 列挙子がインスタンス化されてから、コレクションが変更されました。
    場所 System.Collections.Generic.SortedList`2.SortedListValueEnumerator.MoveNext()
    場所 System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
    場所 PeerCastStation.PCP.PCPYellowPageClient.PostHostInfo(AtomCollection parent, Channel channel, Boolean playing)
    場所 PeerCastStation.PCP.PCPYellowPageClient.CreateChannelBcst(Channel channel, Boolean playing)
    場所 PeerCastStation.PCP.PCPYellowPageClient.AnnounceThreadProc()
    場所 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preser

  14. 名無し より:

    はじめまして。
    配信の事で調べていたら、このサイトにたどり着き、ツールを使わせてもらっています。

    ……flowplayer/ で視聴できるバージョンですが、FlazrDumper-0.4.5バーションでも動作するのでしょうか?

    簡易プレーヤーも内蔵したファイル(FlazrDumper-0.4.0.zip)
    上記コメントにあるFlazrDumper-0.4.0.zipへのリンクが切れており、
    FlazrDumper-0.4.5.zipでは、……flowplayer/を使った視聴ができないので、コメントさせていただきました。

    FlazrDumper-0.4.5.zipでも、flowplayer/を使った視聴ができるのであれば、
    もう少し試行錯誤したいと思っております。
    リンク切れのバージョンのみの場合、できる事なら再アップロードをしてもらいたいです。

    失礼なことを言っていた場合、すみません。
    ご返事いただけると嬉しく思います。

    • petit より:

      名無しさんはじめまして
      FlazrDumper-0.4.5でもflowplayerをDLしてきて設置すれば動作します。
      改変したものを再配布できるか怪しかったので同梱していませんでした。(たぶん大丈夫だと思いますが)
      一応同梱版も置いておきますのでお早めにどうぞ。
      http://fukure.sakura.ne.jp/test/FlazrDumper-0.4.5b-flow.zip

    • 名無し より:

      お忙しい中、ありがとうございました。

    • 名無し より:

      度々すみません。
      質問があり、コメントさせて頂きました。

      exception: 既存の接続はリモート ホストに強制的に切断されました。
      exception: [id: 0x00769139, /127.0.0.1:52916 => /127.0.0.1:1935] EXCEPTION: java.nio.channels.ClosedChannelException
      channel closed: [id: 0x00769139, /127.0.0.1:52916 => /127.0.0.1:1935] CLOSED

      配信を見ている時、この文が表示され、配信が止まってしまいます。
      何がいけないのか教えてもらえると嬉しく思います。

    • petit より:

      この情報だけでは何が原因か特定するのは難しいのですが
      配信が止まるということはエンコーダとの接続が切れたんだと思います。
      エンコーダは何を使用していますか?

  15. なな より:

    ちょっと曖昧な説明になってしまうんだけど
    旧obs+video source pluginだと問題ないのですが、
    OBS STUDIOのメディアソースだと、flowplayerがすぐ止まってしまいます。
    ※オーディオをミュートにして出力しないとたぶん止まりません

    なにか知ってることありますでしょうか

    • petit より:

      たしかにすぐ止まってしまいますね。それ以前にまともに再生できていないようです。obs studioのほうが細かく送信してる?ような感じなので処理が間に合っていないのかもしれません。
      そこで対策版を作成しました→http://fukure.sakura.ne.jp/test/FlazrDumper-0.5-flow.zip

      元々FlazrDumperは旧PeercastStation向けに作成したもので現在のPeercastStationはFlazrDumperと全く同じことができます。PeercastStationのflv配信をflowplayerで再生したところ正常に再生できましたのでもし興味があれば試してみてください。またobs+flowplayerならhttpよりrtmpのほうが遅延も少なく、より配信に向いています。
      FlazrDumperはrtmpサーバを内蔵しているので本来ならrtmpで再生できるはずなのですが、改造したせいか再生できませんでした。rtmpを利用したい場合はred5などが必要です。他にnginxを利用して同様の機能を持つものもあるようです。(参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です