タグ
未設定

よく使われているワード(クリックで追加)

javaandroidc++objective-ccocoa誰得c#gamebathyscaphelinuxphpqt翻訳rubypythoncwindowsomegattwitterguiframeworkbtronvb.netdirectxtestdomarduino計画中(planning stage)previewerpukiwiki

最近の作業部屋活動履歴

2017-03-30
2017-03-14
2017-03-06
2017-02-22

最近のWikiの更新 (Recent Changes)

変更はまだありません。

Wikiガイド(Guide)

サイドバー (Side Bar)

web_live_steramer

Release Files

ダウンロードファイルがありません。

Recent Commits

Rev.日時作者メッセージ RSS
7d98aa7e2017-03-30 21:02:02dyknon再生速度で同期する気がする
7bc6626b2017-03-14 21:59:20dyknon主に、再生同期をマシにした。他にも小変更 解像度デフォをw...
3ac7ff8d2017-03-06 22:05:14dyknon本体の修正に合わせてREADME変更
61dd98352017-03-06 21:57:02dyknonJavascript:配信待追加, server:引数で動画指定, socket:home...
d68a70b92017-02-22 17:04:34dyknonREADMEを書いてみる
10cb1bb72017-02-22 16:32:27dyknonライセンスのいらない空白を削除
23e0b7d92017-02-22 16:31:07dyknonInitial commit
自宅サーバーからライブストリーミング配信を(少数の人に向けて)したいなー
と思って作ったもの。
完成度的にはalpha版未満くらい
性能に満足できていないので書き直すかも

unixsock_mediaserver.plにストリーミングしたい動画を引数として与えて起動し、
live.plをCGIとして動く場所に置けば外からストリーミングできる気がする。
?req=streamとつけると、javascriptによる同期ズレの修正がない代わり
より多くの環境でストリーミングできる気がする。

unixsock_mediaserver.plの、$in_handle->reader行の変更で
動画ファイル以外にも現在の画面などを配信できる。

(サンプルで$in_handle->readerに指定してあるコマンドの出力は)
WebmDASH(?)規格(?)にあんまり準拠してない気がする。
ので、ちょっと音が飛んだりChromiumだと音がずれたりするけど、
Firefoxを使えばいいんじゃないかな。

$in_handle->readerにffmpegを指定するときのちょっとしたこと:
    クラスタ(Matroskaコンテナの構造)の先頭は、常にキーフレームじゃないと
    いけないらしい。ので、-gオプションで無理やりキーフレームを増やし、
    -cluster_size_limitと-cluster_time_limitに法外に大きい値を設定する。
    そうすると、ffmpegのmatroskaのmuxerが、キーフレームのところ以外で
    クラスタを作るのを抑制できる。

    -dashオプションは、ろくなことにならないので使わないほうがいい。
        音声と動画を分ける前提な模様。そもそもDASHの規格がそうかも。

    動画ファイルなんかをストリームするときは、
    -vf realtime みたいにしとかないと、
    一瞬ですべてのデータを食い尽くして、何も再生できないで終わってしまう。

    キーフレームでしかクラスタを切れないので、
    遅延を小さくするためにキーフレームを増やしたら、
    データサイズが大きくなる。
    だれだよこの規格作ったヤツは。
        最初は、これを無視して書いてたらMediaSourceAPIで再生できなかった。
        諦めて従うことにした

 Copyright (c) 2017 dyknon
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Latest updated Tickets

チケットはありません

About Chamber Wiki

Welcome to OSDN Wiki system. Here is your chamber Wiki space.

Check Wiki Guide (English) to refer syntax and functions.