Giter Club home page Giter Club logo

obs-rtmp-nicolive's Introduction

RTMP NicoLive Plugin for OBS Studio

ニコニコ生放送用 OBS Sudio プラグイン

OBS Studio 対応バージョン: 0.16.x 以上

新配信(β)についての注意事項

v2.1.0から新配信(β)での配信に対応しています。しかし、OBS Studio 0.16.2 では、放送終了後の強制切断により、OBS Studio が再配信できない、正常に終了できないという現象が確認されています(このプラグインの有無に関わらず)。新配信(β)で連続して配信を行う場合は、OBS Studio を一旦強制終了後に再度起動して配信を行うようにしてください。

Windows で配信が正常に開始できないときがある #18

Windows で特定条件時に配信開始がフリーズしたかのように動作するときがあります。原因調査中です。枠を取ってから起動するなど、条件に合致しないよう回避をお願いします。詳細は issues#18 を確認してください。

概要

ニコニコ生放送の配信用URLとストリームキーを自動取得して、OBS Stuido (obs-studio) で簡単に配信できるようにするプラグインです。

インストール方法

インストール方法 をお読み下さい。

使い方

配信先を「ニコニコ生放送」にして、ユーザ名とパスワード、または、ユーザーセッション (ブラウザのクッキーに保存されている「user_session_数字_16進数」という文字列) をいれて下さい。ブラウザで生放送枠を取得して、「配信開始」を押すとそのまま配信できます。RTMP の URL やストリームキーを手動で設定する必要はありません。

なお、ユーザ名とパスワード形式でもセッションは消費されません。

このプラグイン自体には枠を自動で取得したり、延長したりすることはできません。他のツールとあわせて使用して下さい。

便利かもしれない機能その1 Viqo連携

ログインタイプを「Viqoの設定を読み込む」にすると、Viqo の設定からユーザーセッションを取得できます。

便利かもしれない機能その2 ビットレート調整

「映像ビットレートを自動調整」を有効にすると、現在の放送枠で配信可能なビットレート値を確認し、映像ビットレートを自動的に調整してくれます。ただし、音声ビットレートは調整してくれませんので、事前に設定しておいて下さい。

便利かもしれない機能その3 監視

「自動で配信開始と枠移動を行う」を有効にすると、監視間隔のタイミングでニコ生の情報を確認します。配信可能な放送枠があれば自動的に配信を開始し、また、配信中の放送枠が終了している場合は自動的に配信を終了します。枠が切り替わるタイミングの場合、放送終了予定時間から約10秒後に確認し、新しい放送枠があればそちらに配信を切り替えてくれます。

Viqoの自動枠取り機能とあわせて使うとほぼ自動化されて、とても楽です。

含まれるライブラリ

  • pugixml 1.8.1
  • json.hpp JSON for Modern C++ 2.1.1
  • SQLite 3.18.0

obs-rtmp-nicolive's People

Contributors

diginatu avatar raccy avatar shousa avatar tomoki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obs-rtmp-nicolive's Issues

v1.0ではWindows環境でのCmakeでエラー発生

CMake Error at plugins/rtmp-nicolive/CMakeLists.txt:24 (add_library):
add_library cannot create imported target "libobs" because another target
with the same name already exists.

v1.0のwindows環境でのビルドを実施してみたところ、
上記のメッセージのエラーが発生してcmakeで失敗しました。
v0.4.1の頃のcmakeでは特に問題なくビルド出来ていました。
CMakeLists.txtを見たところ、その下の部分もMac環境依存っぽい記述がありそうです。

v2.2.0-pre2 パスワード入力欄に直接文字入力ができない

パスワード入力欄に、直接パスワードを書き込むことができません。
メモ帳などに書いてあるパスワードの文字列をコピーして、
それをパスワード入力欄にペーストすることは可能です。

また、1文字単位での削除もできません。
1文字単位でのBackSpaceやDeleteが効かないので、
右クリック>SelectAllで全文を選択した状態で、
右クリック>Deleteで全文を削除する必要があります。

v2.2.0-pre2で、この不具合の発生を確認。
v2.2.0-pre1のMac版でも発生するようです。
v2.1.0では発生していませんでした。

v2.1.0 以降の自動調整に関して

音質重視したい人には、嬉しい仕様ですが気になるので報告します。
以前(v2.0)までは、一定音質(192kbps?)以上は設定出来ませんでしたが設定が出来るようです。
映像へのビットレート調整は大丈夫なので、このままの仕様でも大丈夫かもですが。

発生環境
Windows 8.1 Pro 64bit / OS X El Capitan 10.11
OBS Studio 0.16.5 (公式バイナリ) / OBS Studio 0.16.2 (公式バイナリ)
obs-rtmp-nicolive v2.1.0

回避する方法
1、このプラグインを使用しない

映像ビットレートの最低値に関して (フォームで変更出来る値)
基本モード : 200kbps
詳細モード : 50kbps

発生設定 (基本モードの場合)
1、「映像ビットレートを自動調整」はON
2、映像ビットレートは200kbps設定・音声ビットレートは320kbps設定
(この際に、出力に警告が出る。)
警告: 配信の映像ビットレートは 160 に設定され、これは現在の配信サービスの上限です。 160 より大きい値に設定する場合、高度なエンコーダオプションを有効にして「配信サービスのビットレートを制限する」のチェックをオフにしてください。

ログ (基本モード 音声320kbps設定 映像が160kbpsに下げられる)
15:19:39.358: [x264 encoder: 'simple_h264_stream'] preset: veryfast
15:19:39.359: [x264 encoder: 'simple_h264_stream'] settings:
15:19:39.359: rate_control: CBR
15:19:39.359: bitrate: 160
15:19:39.359: buffer size: 160
15:19:39.359: crf: 0
15:19:39.359: fps_num: 30
15:19:39.359: fps_den: 1
15:19:39.359: width: 1280
15:19:39.359: height: 720
15:19:39.359: keyint: 250
15:19:39.359: vfr: off
15:19:39.359:
15:19:39.368: [CoreAudio AAC: 'simple_aac']: settings:
15:19:39.368: mode: AAC
15:19:39.368: bitrate: 320
15:19:39.368: sample rate: 44100
15:19:39.368: cbr: on
15:19:39.368: output buffer: 1536

バグ発生設定 (詳細モードの場合)
1、「映像ビットレートを自動調整」はON
2、映像ビットレートは50kbps設定・音声ビットレートは320kbps設定

ログ (基本モード 320kbps設定 映像が160kbpsに上げられる)
15:23:30.368: [x264 encoder: 'streaming_h264'] preset: veryfast
15:23:30.368: [x264 encoder: 'streaming_h264'] settings:
15:23:30.368: rate_control: CBR
15:23:30.368: bitrate: 160
15:23:30.368: buffer size: 160
15:23:30.368: crf: 0
15:23:30.368: fps_num: 30
15:23:30.368: fps_den: 1
15:23:30.368: width: 1280
15:23:30.368: height: 720
15:23:30.368: keyint: 250
15:23:30.368: vfr: off
15:23:30.368:
15:23:30.375: [CoreAudio AAC: 'Track1']: settings:
15:23:30.375: mode: AAC
15:23:30.375: bitrate: 320
15:23:30.375: sample rate: 44100
15:23:30.375: cbr: on
15:23:30.375: output buffer: 1536

遅延配信を設定した際の動作に関して

詳細設定の遅延配信を試した所、動作がおかしいようなので報告させて頂きます。

発生環境
OBS Studio 0.12.0以降 (動作テストにて判明)
※バグの発見は0.14.2使用時

バグ発生手順
1、OBS Studio にプラグイン導入 (手動 or ビルド)
2、ログインを済ませる
3、詳細設定 > 遅延配信 を有効にする
4、自動で配信開始と枠移動を行うにチェックを入れる (監視時間 10秒)
5、放送枠を取得する
6、配信枠が検出され自動開始された際に▼が押された状態になる
(バグの様子 : https://gyazo.com/2d124bc77b8f7dab6aba5bdd2403fe8d )
7、OBS Studioのウィンドウをクリックすると遅延停止までの時間が動作する
※手動で開始及び、自動で配信開始と枠移動をしない場合は発生しません。
※遅延配信設定は0.12.0より追加された為 0.11.4 では発生しない
※0.16.0以降はAPIが追加?
https://github.com/jp9000/obs-studio/tree/master/UI/obs-frontend-api

修正が可能でしたら、よろしくお願い致します。

携帯向けアプリ「【配信専用】ニコニコ生放送」を使用して放送している間はニコ生プラグインがログイン出来なくなる

環境
OBS Studio 18.0.1
ニコ生プラグイン v2.1.0
【配信専用】ニコニコ生放送 iOS版で検証 https://itunes.apple.com/app/apple-store/id1151316513

携帯向けアプリ「【配信専用】ニコニコ生放送」を使用して放送している間はニコ生プラグインがログインエラーを起こします。

ログインタイプ : メールとパスワードでログイン
11:44:58.314: [nicolive] login api site: nicolive_encoder
11:44:58.498: [nicolive] unknow error code: permission_denied
11:44:58.498: [nicolive] login api site: nicolive_encoder
11:44:58.585: [nicolive] login api site: nicolive_encoder
11:44:58.759: [nicolive] unknow error code: permission_denied
11:44:58.759: [nicolive] failed login
11:44:58.759: [nicolive] not found Qt Active Window
ログインタイプ : クッキーのユーザーセッションを使用
11:47:30.695: [nicolive] unknow error code: permission_denied
11:47:30.696: [nicolive] no mail or password
11:47:30.696: [nicolive] failed login
11:47:30.696: [nicolive] not found Qt Active Window

もし可能であれば、ログイン及び配信が出来るようにはなりますか?(アクセス拒否なので無理な気がしますが)
NLEではログインが出来て携帯枠に配信が出来るようです。
不可能な場合は、下記のような文をどこかに記載して欲しいです。
「携帯アプリで配信中またはニコニコ生放送がメンテナンス中の場合はログインが出来ません。」
ご検討をよろしくお願い致します。

v2.2.0-pre2の32bit版が動かない。

21:41:44.736: LoadLibrary failed for '../../obs-plugins/32bit/rtmp-nicolive.dll': %1 is not a valid Win32 application.
21:41:44.736:  (193)
21:41:44.736: Module '../../obs-plugins/32bit/rtmp-nicolive.dll' not found

fileコマンドでは PE32 executable (DLL) (console) Intel 80386, for MS Windowsと認識しているので、正常なWin32だとは思うんですが、mingw-w64の問題なのかなー、ちょっとわからない状態です。

Windows 版 Visual Studio 2015 で、v2.2.0-pre1 でC4716のビルドエラー

nicolive.cpp(188) error C4716: 'NicoLive::enabledStopBeforeEndTime': 値を返さなければいけません
193行目も同様のエラーと表示される(実際は194行目だと思うが)
return true;で値は返していると思うのだが、true固定で返しているのが駄目なのかも?
Visual Studio 2015 で開いてビルドしてエラーの出る関数の部分に対して、
#pragma warning(push)
#pragma warning(disable:4716)
警告出してた部分
#pragma warning(pop)
で警告を抑制してあげれば一応ビルドは通るようにはなりますが、
// TODO: 実装!
とあるので、
return true;
でtrue固定で返すのではなく、
本来あるべき実装をして頂いた方が良いかと思います。

MacでOBS 18.0.1とobs-rtmp-nicolive 2.1.0の枠監視を組み合わせると配信が止まる

お世話になっております。

Mac上でビルドしたOBS 18.0.1にてobs-rtmp-nicolive 2.1.0の枠監視を使うと、枠自動取得が行われないばかりか配信も勝手に止まってしまいます。
ご参考までにOBSのログを以下に提示します。

16:03:16.410: [nicolive] login api site: nicolive_encoder
16:03:16.577: [nicolive] no live waku
16:04:16.413: [nicolive] login api site: nicolive_encoder
16:04:16.544: [nicolive] live waku: lv293251797
16:05:16.416: [nicolive] login api site: nicolive_encoder
16:05:17.072: [nicolive] live waku: lv293251797
16:05:20.495: [nicolive] login api site: nicolive_encoder
16:05:21.140: [nicolive] live waku: lv293251797
16:05:21.140: [nicolive] found live url and key with ticket
16:05:21.140: [nicolive] audo bitrate is zero or negative
16:05:21.140: [nicolive] login api site: nicolive_encoder
16:05:21.264: [nicolive] live waku: lv293251797
16:05:21.264: [nicolive] found live url and key with ticket
16:05:21.265: [nicolive] login api site: nicolive_encoder
16:05:21.399: [nicolive] live waku: lv293251797
16:05:21.399: [nicolive] found live url and key with ticket
16:05:21.399: ---------------------------------
16:05:21.400: [x264 encoder: 'streaming_h264'] preset: medium
16:05:21.400: [x264 encoder: 'streaming_h264'] profile: high
16:05:21.400: [x264 encoder: 'streaming_h264'] settings:
16:05:21.400: 	rate_control: CBR
16:05:21.400: 	bitrate:      432
16:05:21.400: 	buffer size:  432
16:05:21.400: 	crf:          20
16:05:21.400: 	fps_num:      30
16:05:21.400: 	fps_den:      1
16:05:21.400: 	width:        640
16:05:21.400: 	height:       360
16:05:21.400: 	keyint:       300
16:05:21.400: 	vfr:          off
16:05:21.400:
16:05:21.400: [x264 encoder: 'streaming_h264'] custom settings: profile=high level=4.0 threads=0 keyint=300 min-keyint=30 bframes=3 ref=6 me=umh subme=7 merange=16 psy-rd=0.5:0.0 trellis=1 mbtree=1 aq-mode=2 aq-strength=1.00 qpmin=20 qcomp=0.50 chroma-qp-offset=-1 crf-max=0 crf=20 cqm=flat deblock=-1,-1 direct=auto ipratio=1.30 b-adapt=2 b-bias=0 b-pyramid=2 no-dct-decimate=1 no-fast-pskip=1 scenecut=50 vbv-init=0.9 weightb=1 weightp=2 colormatrix=smpte170m
16:05:21.413: [CoreAudio AAC: 'Track1']: settings:
16:05:21.413: 	mode:          HE-AAC v2
16:05:21.413: 	bitrate:       48
16:05:21.413: 	sample rate:   44100
16:05:21.413: 	cbr:           on
16:05:21.413: 	output buffer: 1536
16:05:21.413: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca150.live.nicovideo.jp:1935/publicorigin/170316_16_0?1218088:lv293251797:68:1489647921:0:1489648132:a02bd03fc3c2d124...
16:05:21.413: [rtmp stream: 'adv_stream'] Binding to IPv4
16:05:21.530: [rtmp stream: 'adv_stream'] Connection to rtmp://nlpoca150.live.nicovideo.jp:1935/publicorigin/170316_16_0?1218088:lv293251797:68:1489647921:0:1489648132:a02bd03fc3c2d124 successful
16:05:21.536: ==== Streaming Start ===============================================
16:06:17.419: [nicolive] login api site: nicolive_encoder
16:06:18.052: [nicolive] live waku: lv293251797
16:06:18.053: [nicolive] click stop streaming hotkey
16:06:18.053: [rtmp stream: 'adv_stream'] User stopped the stream
16:06:18.053: Output 'adv_stream': stopping
16:06:18.053: Output 'adv_stream': Total encoded frames: 1699
16:06:18.053: Output 'adv_stream': Total drawn frames: 1699
16:06:18.053: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 2 (0.1%)
16:06:18.069: ==== Streaming Stop ================================================
16:06:25.590: [nicolive] login api site: nicolive_encoder
16:06:25.731: [nicolive] live waku: lv293251797
16:06:25.731: [nicolive] found live url and key with ticket
16:06:25.732: [nicolive] login api site: nicolive_encoder
16:06:25.865: [nicolive] live waku: lv293251797
16:06:25.865: [nicolive] found live url and key with ticket
16:06:25.935: [nicolive] login api site: nicolive_encoder
16:06:26.085: [nicolive] live waku: lv293251797
16:06:26.085: [nicolive] found live url and key with ticket
16:06:28.419: [nicolive] login api site: nicolive_encoder
16:06:28.557: [nicolive] live waku: lv293251797
16:06:36.030: Settings changed (general)
16:06:36.030: ------------------------------------------------
16:06:38.175: [nicolive] login api site: nicolive_encoder
16:06:38.313: [nicolive] live waku: lv293251797
16:06:38.313: [nicolive] found live url and key with ticket
16:06:38.313: [nicolive] audo bitrate is zero or negative
16:06:38.313: [nicolive] login api site: nicolive_encoder
16:06:38.449: [nicolive] live waku: lv293251797
16:06:38.449: [nicolive] found live url and key with ticket
16:06:38.449: [nicolive] login api site: nicolive_encoder
16:06:38.607: [nicolive] live waku: lv293251797
16:06:38.607: [nicolive] found live url and key with ticket
16:06:38.607: ---------------------------------
16:06:38.607: [x264 encoder: 'streaming_h264'] preset: medium
16:06:38.607: [x264 encoder: 'streaming_h264'] profile: high
16:06:38.607: [x264 encoder: 'streaming_h264'] settings:
16:06:38.607: 	rate_control: CBR
16:06:38.607: 	bitrate:      432
16:06:38.607: 	buffer size:  432
16:06:38.607: 	crf:          20
16:06:38.607: 	fps_num:      30
16:06:38.607: 	fps_den:      1
16:06:38.607: 	width:        640
16:06:38.607: 	height:       360
16:06:38.607: 	keyint:       300
16:06:38.607: 	vfr:          off
16:06:38.607:
16:06:38.607: [x264 encoder: 'streaming_h264'] custom settings: profile=high level=4.0 threads=0 keyint=300 min-keyint=30 bframes=3 ref=6 me=umh subme=7 merange=16 psy-rd=0.5:0.0 trellis=1 mbtree=1 aq-mode=2 aq-strength=1.00 qpmin=20 qcomp=0.50 chroma-qp-offset=-1 crf-max=0 crf=20 cqm=flat deblock=-1,-1 direct=auto ipratio=1.30 b-adapt=2 b-bias=0 b-pyramid=2 no-dct-decimate=1 no-fast-pskip=1 scenecut=50 vbv-init=0.9 weightb=1 weightp=2 colormatrix=smpte170m
16:06:38.616: [CoreAudio AAC: 'Track1']: settings:
16:06:38.616: 	mode:          HE-AAC v2
16:06:38.616: 	bitrate:       48
16:06:38.616: 	sample rate:   44100
16:06:38.616: 	cbr:           on
16:06:38.616: 	output buffer: 1536
16:06:38.616: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca150.live.nicovideo.jp:1935/publicorigin/170316_16_0?1218088:lv293251797:68:1489647998:0:1489648132:39d8d7833a3f056d...
16:06:38.616: [rtmp stream: 'adv_stream'] Binding to IPv4
16:06:38.754: [rtmp stream: 'adv_stream'] Connection to rtmp://nlpoca150.live.nicovideo.jp:1935/publicorigin/170316_16_0?1218088:lv293251797:68:1489647998:0:1489648132:39d8d7833a3f056d successful
16:06:38.759: ==== Streaming Start ===============================================
16:07:28.424: [nicolive] login api site: nicolive_encoder
16:07:29.061: [nicolive] live waku: lv293251797
16:07:29.062: [nicolive] click stop streaming hotkey
16:07:29.062: [rtmp stream: 'adv_stream'] User stopped the stream
16:07:29.062: Output 'adv_stream': stopping
16:07:29.062: Output 'adv_stream': Total encoded frames: 1513
16:07:29.062: Output 'adv_stream': Total drawn frames: 1514
16:07:29.082: ==== Streaming Stop ================================================
16:07:38.439: [nicolive] login api site: nicolive_encoder
16:07:38.569: [nicolive] live waku: lv293251797

何か適切な設定を施す、とかあるんでしょうか?
よろしくお願いします。

放送枠がない状態時の動作に関して

稀に何度も発生するので、報告させていただきます。

バグ発生環境設定
1、OBS Studio にプラグイン導入 (手動 or ビルド)
2、ログインを済ませる (この場合は、クッキーのユーザーセッションを使用)
3、自動で配信開始と枠移動を行うにチェックを入れる (監視時間 10秒~)
2016/11/02 もしかしたらWindowsだけ発生かも…?(らっしーさんの配信にて)

バグ発生手順
1、OBS Studioを起動する
2、枠も何も取得せず放置
3、「配信可能な放送枠がありません」と何度も表示される

バグ発生時のOBS Studioログ一部
[nicolive] no live waku
[nicolive] no live waku
[nicolive] cannot start streaming: no live
[nicolive] no live waku
[nicolive] no live waku
[nicolive] not found Qt Active Window
(この時点で警告枠をOK押して閉じるを繰り返すと下記のログが続く)
[nicolive] no live waku
[nicolive] no live waku
[nicolive] not found Qt Active Window

バグを回避する方法
1、自動で配信開始と枠移動を行うを使わない (一番有効的)
2、プロファイルを切り替えて戻す (一度nicoliveに接続がリセット?されている)
3、OBS Studio再起動 (再度出る場合もある)

このバグで設定次第で発生する現象 (0.15.0以降)
設定 > 一般 にある「配信時に自動的に録画」を使用している場合
勝手に録画が開始される。 (配信開始が発生しているという風になっている為)

修正が可能でしたら、よろしくお願い致します。

OBS Studio 0.14.1に更新後ログイン不可能

OBS Studio 0.14.1に更新後、メールアドレスとパスワードでのログインができなくなっています。
メールアドレス、パスワードは正しく入力しています。
エラー内容は「ログインに失敗しました。アカウント設定を確認してください」です。
ユーザーセッションでもダメでした。

OBS Studio 18.x以降のニコ生プラグイン動作に関して

環境
OBS Studio 18.x以降
ニコ生プラグイン v2.1.0

OBS Studio 18.x以降に放送枠がない状態時に、OBS Studioの配信開始ボタンを押すとニコ生プラグインのエラー(*1)の後にOBS Studio側のエラー(*2)が発生するようになりました。

今まで通りのニコ生プラグインのエラー (*1)
default

新たに発生するようになったエラー (*2)
c43c86185e9345b7702be4ba27d3730683cd1052

発生時の様子 (動画)
https://youtu.be/w8WGBVuNUGg

このエラーは下記コミットの実装で出るようになりました。
obsproject/obs-studio@6bc1ecc
エラーを条件で出る、出ないという感じには出来ないでしょうか。
よろしくお願い致します。

放送枠がない時に配信開始を押す(設定が正常) → (*2)エラーを出さずに、(*1)エラーのみ。(※18.0未満での動作)

現状の動作で大丈夫な部分
放送枠がない時に放送開始を押す(設定が不適切) → (*2)エラーを出す。(動画と同じ感じに)
配信枠がある時に放送開始を押す(設定が不適切) → (*2)エラーを出す。(これは正常動作)

v2.1.0以降の自動配信開始動作がOBS側の不具合発生時に動作しなくなる

OBS Studioの目玉機能である「スタジオモード」をON(2画面)/OFF(通常画面)するとホットキーの「配信開始」が消失します。
ホットキーが消失する影響で「配信開始」のホットキーが動作しなくなり、自動で配信開始が出来なくなります。
v2.1.0以降、ニコ生プラグインの開始・停止動作がホットキーに変更された影響でこの問題が発生するようになりました。
ニコ生プラグインの開始動作をホットキーではなくfrontend API(obs_frontend_streaming_start)にする事は出来ないのでしょうか?(詳しくないのであってるかは分かりませんが…)
※配信停止は「配信停止 (遅延破棄) 」のホットキーが消失しないのでこの影響を受けません。
OBS Studio側の問題ですが、開始動作の変更が可能でしたら対応して頂けると幸いです。

問題リンク及び不具合発生条件
https://obsproject.com/mantis/view.php?id=508
シーンに対して1つ以上のソースが含まれている。
スタジオモードで「複製シーン」が有効 (デフォルト)

不具合発生風景 (動画)
https://youtu.be/eLZds9uZSmg
※動画では、配信開始に「Insertキー」を設定して、ホットキーが動作してないのを故意に分かりやすくしています。

不具合発生手順
1、スタジオモードをON(2画面)/OFF(通常画面)にする ※2画面の場合は発生しない
2、設定 > ホットキーの「配信開始」「配信停止」が消失する。
3、消失した影響で、ニコ生プラグインの自動配信開始が動作しなくなる。(ホットキーが動作しなくなるので)

不具合回避方法 (2つ)
スタジオモードを使わない。(目玉機能を潰す事となります…)

プロファイルを作成して起動後に切り替える。(毎回起動後にする必要あり)
例 : ABC(起動時) → test(切り替え) → ABC(戻す) → スタジオモードを自由に使える

v2.1.0-preの不具合

取り急ぎ、0.16.2(Mac)に「v2.1.0-pre」を組み込んでビルドしてみました。
試してみて、不具合を何件か発見したのでご報告します。
お時間がある際に、対応して頂けると助かります。
この変更によって開始系は、変更のおかげか遅延配信を使っても多分大丈夫でした。
(報告した動作はしていなかった。ただもう少し様子見はしてクローズするか決めます。)

1、ビットレート自動調整がおかしい (解決済み)
例 : 新配信の場合 (音声は初期値の160設定)
映像に対してきっちり1000kbps割り当てられる。※旧仕様は480kbps (サービスタイム時に検証)
音声ビットレートから引いた値が適用されていない模様。

2、「自動で配信開始と枠移動を行う」がおかしい (解決済み)
開始はされるけど、停止がされない。 (旧配信・新配信両方)
回避策 : 手動で停止をするしかない。

3、新配信枠を取得後に旧仕様枠をすると開始がされない。(自動移動使用して 手動は試してない)
OBS Studio側のコミットで対応 obsproject/obs-studio@0ea0b99 ※但し、OBS Studio側の設定に注意
新配信枠を取得 →枠の配信 開始 → 枠の配信終了させる。
終了と同時にOBSが強制的に鯖からの切断される。 (配信停止状態?)
次に、旧配信枠を取得 → 枠の配信開始 → OBSが開始されない。(配信停止も押せない状態)
この場合、配信停止ボタンも押せないのでOBSを強制終了しないといけない

以下OBSのログを貼り付けます。
11:44:43.754: [nicolive] live waku: lv280742344
11:44:44.824: [nicolive] live waku: lv280742344
11:44:44.824: [nicolive] found live url and key with ticket
11:44:44.824: ---------------------------------
11:44:44.824: [x264 encoder: 'streaming_h264'] settings:
11:44:44.824: rate_control: CBR
11:44:44.824: bitrate: 480
11:44:44.824: buffer size: 480
11:44:44.824: crf: 0
11:44:44.824: fps_num: 30
11:44:44.824: fps_den: 1
11:44:44.824: width: 1280
11:44:44.824: height: 720
11:44:44.824: keyint: 250
11:44:44.824: vfr: off
11:44:44.824:
11:44:44.895: [nicolive] live waku: lv280742344
11:44:44.895: [nicolive] found live url and key with ticket
11:44:44.977: [nicolive] live waku: lv280742344
11:44:44.977: [nicolive] found live url and key with ticket
11:44:44.978: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca118.live.nicovideo.jp:1935/publicorigin/161102_11_0?(ユーザーID):lv280742344:68:1478054684:0:1478054668:c853a6a2c1843f51...
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: DECODING ERROR, IGNORING BYTES UNTIL NEXT KNOWN PATTERN!
11:44:45.119: Last log entry repeated for 67 more lines
11:44:45.119: HandleInvoke, error decoding invoke packet

予約枠を取得するとニコ生プラグインがログインエラーになる。

環境
OBS Studio 21.1.0 (Windows)
ニコ生プラグイン (v2.1.0)

2017年09月頃に行われたニコ生側の仕様変更により、予約枠を取得するとニコ生プラグインがログインエラーを起こすようになりました。
(予約枠取得時にNLEが配信する番組を選択が出来ない不具合があり、それを修正する為にこの仕様変更をしたのだと思います。)

予約枠取得時のgetpublishstatus
予約番組取得時は url 及び stream は error を返す。
予約番組放送開始30分前になると、url 及び stream は配信に必要なアドレスを返す。

<getpublishstatus status="ok" time="1521550967">
<stream>
<id>lv番号</id>
<token>(削除)</token>
<exclude>0</exclude>
<provider_type>community</provider_type>
<base_time>1521558000</base_time>
<open_time>1521558000</open_time>
<start_time>1521558000</start_time>
<end_time>1521579599</end_time>
<allow_vote>0</allow_vote>
<disable_adaptive_bitrate>1</disable_adaptive_bitrate>
<is_reserved>1</is_reserved>
<is_chtest>0</is_chtest>
<for_mobile>1</for_mobile>
<editstream_language>1</editstream_language>
<test_extend_enabled>1</test_extend_enabled>
<category>ゲーム</category>
</stream>
<user>
<nickname>(削除)</nickname>
<is_premium>1</is_premium>
<user_id>(削除)</user_id>
<NLE>1</NLE>
</user>
<rtmp is_fms="1">
<url>error</url>
<stream>error</stream>
<ticket/>
</rtmp>
</getpublishstatus>

ニコ生プラグイン側 (OBS Studioのログ)

[nicolive] login api site: nicolive_encoder
[nicolive] parse faild?
[nicolive] failed login

Windows 版 動作確認結果

Windows 7 環境で、obs-studio 本体、およびニコ生プラグインをビルドしました。(32bit版)
[設定] > [配信] > [配信種別] で、NiconicoLive を選択してメールアドレスとパスワードを入力すると、
AppData\Roaming\obs-studio\basic\service.json には、メールアドレスとパスワードが設定されていました。
配信開始ボタンを押しても配信が開始されないので、プロセスにアタッチしてデバッグ出力を見たところ、
以下のメッセージが表示されていました。SSL通信で何か問題がありそうです。

[nicolive] login start
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
[nicolive] login finished
[nicolive] [nicolive] login failed

自動で配信開始と枠移動を行う の動作に関して

もしかしたらこの問題 #22 と同じかもしれませんが、別でIssuesします。

放送枠を取得した後のテスト時間(本番開始前)に、手動でOBS Studioの配信開始をした際に発生。
設定した監視時間(この場合は初期値 60秒)後にプラグインによって自動的に配信停止されるようです。
この問題は #12 の変更が影響かもしれません。(v2.0では発生しない)
テスト時間に手動で配信開始をする際は停止しないなどの事は出来ませんか?
もしくは「自動で配信開始と枠移動を行う」を使わない方が良いと記載した方がいいかもしれません。
例 : 自動で配信開始と枠移動を行う (テスト時間中は、配信開始しても自動配信停止します)

環境
OBS Studio 18.0.1
ニコ生プラグイン v2.1.0

設定
自動で配信開始と枠移動を行う : チェック
監視時間 (秒) : 60秒(初期値)

04:23:40.074: [nicolive] live waku: lv294889856
04:23:46.305: [nicolive] live waku: lv294889856
04:23:46.305: [nicolive] found live url and key with ticket
04:23:46.305: [nicolive] audo bitrate is zero or negative
04:23:46.491: [nicolive] live waku: lv294889856
04:23:46.491: [nicolive] found live url and key with ticket
04:23:46.565: [nicolive] live waku: lv294889856
04:23:46.565: [nicolive] found live url and key with ticket
04:23:46.565: ---------------------------------
04:23:46.565: [x264 encoder: 'streaming_h264'] Invalid profile: High
04:23:46.565: [x264 encoder: 'streaming_h264'] preset: veryfast
04:23:46.565: [x264 encoder: 'streaming_h264'] profile: high
04:23:46.565: [x264 encoder: 'streaming_h264'] settings:
04:23:46.565: 	rate_control: VBR
04:23:46.565: 	bitrate:      416
04:23:46.565: 	buffer size:  416
04:23:46.565: 	crf:          23
04:23:46.565: 	fps_num:      24000
04:23:46.565: 	fps_den:      1001
04:23:46.565: 	width:        640
04:23:46.565: 	height:       360
04:23:46.565: 	keyint:       240
04:23:46.565: 	vfr:          off
04:23:46.571: [CoreAudio AAC: 'Track1']: settings:
04:23:46.571: 	mode:          HE-AAC
04:23:46.571: 	bitrate:       64
04:23:46.571: 	sample rate:   44100
04:23:46.571: 	cbr:           on
04:23:46.571: 	output buffer: 1536
04:23:46.571: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca153.live.nicovideo.jp:1935/publicorigin/170404_04_0?(niconicoID):lv294889856:68:1491247425:0:1491248814:5ccb983b68721c4a...
04:23:46.572: [rtmp stream: 'adv_stream'] Interface: Intel(R) Gigabit CT Desktop Adapter (ethernet, 1000 mbps)
04:23:46.697: [rtmp stream: 'adv_stream'] Connection to rtmp://nlpoca153.live.nicovideo.jp:1935/publicorigin/170404_04_0?(niconicoID):lv294889856:68:1491247425:0:1491248814:5ccb983b68721c4a successful
04:23:46.699: ==== Streaming Start ===============================================
04:24:40.152: [nicolive] live waku: lv294889856
04:24:40.152: [nicolive] click stop streaming hotkey
04:24:40.153: [rtmp stream: 'adv_stream'] User stopped the stream
04:24:40.153: Output 'adv_stream': stopping
04:24:40.153: Output 'adv_stream': Total encoded frames: 1285
04:24:40.153: Output 'adv_stream': Total drawn frames: 1285
04:24:40.167: ==== Streaming Stop ================================================
04:24:50.251: [nicolive] live waku: lv294889856
04:24:56.295: [nicolive] live waku: lv294889856
04:24:56.295: [nicolive] found live url and key with ticket
04:24:56.295: [nicolive] audo bitrate is zero or negative
04:24:56.367: [nicolive] live waku: lv294889856
04:24:56.367: [nicolive] found live url and key with ticket
04:24:56.435: [nicolive] live waku: lv294889856
04:24:56.435: [nicolive] found live url and key with ticket
04:24:56.435: ---------------------------------
04:24:56.435: [x264 encoder: 'streaming_h264'] Invalid profile: High
04:24:56.435: [x264 encoder: 'streaming_h264'] preset: veryfast
04:24:56.435: [x264 encoder: 'streaming_h264'] profile: high
04:24:56.435: [x264 encoder: 'streaming_h264'] settings:
04:24:56.435: 	rate_control: VBR
04:24:56.435: 	bitrate:      416
04:24:56.435: 	buffer size:  416
04:24:56.435: 	crf:          23
04:24:56.435: 	fps_num:      24000
04:24:56.435: 	fps_den:      1001
04:24:56.435: 	width:        640
04:24:56.435: 	height:       360
04:24:56.435: 	keyint:       240
04:24:56.435: 	vfr:          off
04:24:56.441: [CoreAudio AAC: 'Track1']: settings:
04:24:56.441: 	mode:          HE-AAC
04:24:56.441: 	bitrate:       64
04:24:56.441: 	sample rate:   44100
04:24:56.441: 	cbr:           on
04:24:56.441: 	output buffer: 1536
04:24:56.441: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca153.live.nicovideo.jp:1935/publicorigin/170404_04_0?(niconicoID):lv294889856:68:1491247494:0:1491248814:8c9371f48f778093...
04:24:56.441: [rtmp stream: 'adv_stream'] Interface: Intel(R) Gigabit CT Desktop Adapter (ethernet, 1000 mbps)
04:24:56.566: [rtmp stream: 'adv_stream'] Connection to rtmp://nlpoca153.live.nicovideo.jp:1935/publicorigin/170404_04_0?(niconicoID):lv294889856:68:1491247494:0:1491248814:8c9371f48f778093 successful
04:24:56.569: ==== Streaming Start ===============================================
04:25:50.479: [nicolive] live waku: lv294889856
04:25:50.479: [nicolive] click stop streaming hotkey
04:25:50.479: [rtmp stream: 'adv_stream'] User stopped the stream
04:25:50.479: Output 'adv_stream': stopping
04:25:50.479: Output 'adv_stream': Total encoded frames: 1296
04:25:50.479: Output 'adv_stream': Total drawn frames: 1296
04:25:50.492: ==== Streaming Stop ================================================

v2.2.0-pre2 Windows向けプレリリースバイナリに関して

#30 で報告されているように依存関係問題で表示されません。
Releaseページには64bit 環境のみ使えるような事が書かれていますが、使えないので配布バイナリを削除して頂く事は可能でしょうか?
(もしくは「これは"プレリリース版"です。通常は v2.1.0 をご利用ください」と注意書きを…)
issues ( #30 )を知らず使えると思ってダウンロード ( #31 )したり、プレリリースと気付かずダウンロードを行う人が居ます…。(主に初OBS導入の人に多い)
私からこのような提案をするのはおかしいと思いますが、削除をご検討して頂ければ幸いです。
よろしくお願い致します。

追記
少佐様が、バグ等のフィードバックを行えるように問題を取り除いたバージョンを配布しているようです。
http://com.nicovideo.jp/community/co1048576

1202 : 少佐 :2017/08/17(木) 21:11:26 ID: 0h4uIQyyny
https://github.com/raccy/obs-rtmp-nicolive/releases/tag/v2.2.0-pre2
で配布されているraccyさんビルドのニコ生プラグインが使用できないため、
OBS Studio ニコ生プラグインの Windows用バイナリを用意しました。
raccy版バイナリと異なり、VC++2015でビルドしてありますので、
Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3
のインストールが必要です。
詳細は、ReadMe.txtを必ずお読みください。
http://ux.getuploader.com/OBStools/
ファイル名は、「obs-rtmp-nicolive_2.2.0-pre2-WinV.zip」で、
DLパスワードは「」です。

詳しくは掲示板を参照してください。
(予測変換のミスに気づかず最初タイトルが変でした…)

obs-rtmp-nicoliveを使った場合にNumber of memory leaksが増える

このプラグインを導入して配信をした場合、OBS Studio終了後ログファイル最終行を見るとメモリリーク?が発生しているようです。
本当に発生しているか分からないですが、気になるので調査よろしくお願いします。

ログ (最後一部抜粋)
16:28:01.355: Number of memory leaks: 72
15:30:00.465: Number of memory leaks: 36

発生環境
Windows 8.1 Pro 64bit / OS X El Capitan 10.11
OBS Studio 0.16.5 / OBS Studio 0.16.2 ※どちらも公式バイナリ+BrowserSourceがある
obs-rtmp-nicolive v2.1.0

発生設定
1、OBS Studio にプラグイン導入

発生手順
1、OBS Studioを起動する。
2、配信枠を取得して、OBS Studioを配信開始させる。
3、配信停止をさせて、OBS Studioを終了。
4、最後のログを開いて、一番下を見る。

回避する方法
1、このプラグインを利用しない

ちなみにWindows版は「BrowserSource」が同梱されていると、配信開始せずに終了させた場合「Number of memory leaks: 1」が必ず発生する。
「BrowserSource」が同梱されていない場合は、配信開始せずに終了させた場合「Number of memory leaks: 0」になる。
また「BrowserSource」を使うと数字(ここでは1)が増える所までは分かっています。(使わなければOK)

Mac版は「BrowserSource」があっても終了時に発生はしてない。(謎)

メアドログイン時のニコニコのログイン履歴に関して

ログイン履歴を見た際に判明
https://account.nicovideo.jp/my/history/login
接続元 : ブラウザ が1分間の間に複数ある。
「自動で配信開始と枠移動を行う」を利用すると流れるのですが、これは仕様ですか?
気にしなければ問題はないですが、ログイン履歴が大量にあるので…。

ニコニコ設定
2段階認証を利用 (利用しない場合も発生する)

発生手順
OBS Studioを起動
メールアドレスログインをする
自動で配信開始と枠移動を行う を利用する (監視時間 10秒)

発生頻度
OBS Studioを終了するまでの間

発生しない手段
クッキーのユーザーセッションを利用

ほぼ発生しない手段
自動で配信開始と枠移動を行うを利用しない (履歴は起動時と配信開始時のみ発生)

予約枠がある際の動作に関して

予約枠を試しに取った際に気づいたので、報告させて頂きます。

バグ発生手順
1、OBS Studio にプラグイン導入 (手動 or ビルド)
2、ログインを済ませる (セッション接続・Viqo含む)
3、自動で配信開始と枠移動を行うにチェックを入れる (監視時間 10秒)
4、予約枠を取得 or 取得済み
5、予約枠開始前なのに、予約枠に接続されて配信中になる。

バグ発生時のAPI
予約枠を取得すると、下記APIに枠情報が反映されている。
http://live.nicovideo.jp/api/getpublishstatus?v=
枠情報が反映された状態で、枠を取得するとそちらが反映される。(予約枠前に)
start_timeがbase_time/open_timeより遅かったので、そちらを読み込めば良いかもしれません。(憶測)

フォークして修正及び改変をしている所 (参考になるか分からないですが)
http://variedtastefinder.jp:3000/root/rtmp-nicolive

よろしくお願い致します。

linux版obs-studioでニコ生アカウントを打ち込み適用すると強制終了してしまう

sudo apt-get install build-essential pkg-config cmake git checkinstall libx11-dev libgl1-mesa-dev libpulse-dev libxcomposite-dev libxinerama-dev libv4l-dev libudev-dev libfreetype6-dev libfontconfig-dev qtbase5-dev libqt5x11extras5-dev libx264-dev libxcb-xinerama0-dev libxcb-shm0-dev libjack-jackd2-dev libcurl4-openssl-dev libavcodec-dev libavfilter-dev libavdevice-dev libfdk-aac-dev zlib1g-dev yasm qtbase5-dev
で環境を整えた後obsマニュアル通りにgitからffmpegをインストールしました
そしてlinux版のobs-studio0.11.1のソースファイルをダウンロードしマニュアル通りobs-rtmp-nicoliveのディレクトリ名をobs-rtmp-nicoliveに変更
obsの/plugins/CMakeLists.txtの最後列へadd_subdirectory(rtmp-nicolive)
そしてobsソースのトップから
mkdir build
cd build
cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo checkinstall --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
でインストールは正常終了し起動もするようになりましたがobsの設定→配信→配信種別 ニコニコ生放送→メールアドレスタブへニコニコ動画の登録メールアドレス パスワードタブへニコニコ動画の登録パスワード
を打ち込み適用及びOKした所強制クラッシュが発生しました

またブラウザのセッションクッキー、Viqoの設定から読み込むも試しましたが結果は同じものでした

obsの最新版である0.12.4でも一括ビルド出来タブに表示されましたが同操作で強制クラッシュでした

単独ビルドが出来ません

ubuntu 14.04LTS xfce 32bit版及びubuntu 14.04LTS mate 32bit版で確認済みなのですがlibcurl3-devがlibcurl4-openssl-devへと変化しているらしく
a@a-desktop:~/obs-rtmp-nicolive-2.0/build$cmake -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- RTMP NicoLive build only it
CMake Error at CMakeLists.txt:48 (find_package):
By not providing "FindLibcurl.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Libcurl", but
CMake did not find one.

Could not find a package configuration file provided by "Libcurl" with any
of the following names:

LibcurlConfig.cmake
libcurl-config.cmake

Add the installation prefix of "Libcurl" to CMAKE_PREFIX_PATH or set
"Libcurl_DIR" to a directory containing one of the above files. If
"Libcurl" provides a separate development package or SDK, be sure it has
been installed.

-- Configuring incomplete, errors occurred!
とエラーが出てビルドできませんでした

v2.2.0-pre1がVisual Studio 2013でコンパイルできない。

VS2013が対応していないC++11の機能でコンパイル時に引っかかりまくりのようです。C++11が中途半端なVS2013については、サポートしない方針にしたいかと思っています。

暫定的な方針

  • OBS Studioと一緒にコンパイル -> VS2015とVS2017のみサポートする。
  • OBS Studioと別にコンパイル -> MSYS2環境でmingw-w64のGCCを使うようにする。

配布物のOBS Studioは現在VS2013でコンパイルされており、プラグインをVS2015でコンパイルするとランタイム必須になります。対応をteratailで質問したけど、静的リンクぐらいしか方法がない模様で、なんともしがたい。いっそ、MSYS2環境で作った方がツールも統一できるのではと考えています。

v2.1.0 の必須ランタイムに関して

v2.1.0よりVS2015に変更された影響で「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ」がないと起動時にエラーが出ます。
エラーが出る為、プラグインを導入出来ていても表示されません。
インストール方法、リリースページ、README.mdにインストールする事を明記して下さい。
よろしくお願いします。

記載例
Windows環境の方へ
v2.1.0からは「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ」が必須となります。
32bit環境 「vc_redist.x86.exe」を入手してインストールして下さい。
64bit環境 「vc_redist.x86.exe」「vc_redist.x64.exe」を入手してインストールして下さい。

v2.1.0 (4e692f9) 特定の条件で配信開始時にフリーズする不具合

現時点の最新コミットまでをダウンロードしてWindowsで単独コンパイルしてみました。環境準備面倒くさかった…
下記記載ログが発生した際に自動で配信開始されるとOBS Studioがフリーズする不具合を発見しました。
この不具合は「自動で配信開始と枠移動を行う」を利用した場合に影響が大きいです。
また以前報告した(Issues#13)のようなポップアップが出る不具合は現時点では発生しなくなりこの不具合に変わっています。

バグ発生環境
Windows 8.1 Pro 64bit
OBS Studio 0.16.2 (公式バイナリ)
obs-rtmp-nicolive 4e692f9 (単独コンパイル)

バグ発生設定
1、OBS Studio にプラグイン導入 (単独コンパイルした 4e692f9)
2、ログインを済ませる (この場合は、クッキーのユーザーセッションを使用)
3、自動で配信開始と枠移動を行うにチェックを入れる (監視時間 10秒~)

バグ発生時の様子 (動画)
https://youtu.be/KcdUPLn1Ego

バグ発生手順
1、OBS Studioを起動する。
2、枠も何も取得せず放置してログを確認する。
3、このログが出てる時に枠を取得する。(click stop streaming hotkey)
4、自動配信開始時にOBS Studioがフリーズする。
5、フリーズが終わるのを待つ (1分程度?)
6、フリーズが解消されたら、配信が開始される。

バグを回避する方法
1、自動で配信開始と枠移動を行うを使わない (一番有効的)
2、プロファイルを切り替えて戻す (一度nicoliveに接続がリセット?されている)
3、OBS Studio再起動 (再度発生する場合もある)

バグ発生時のログ
この時は、何故かstreaming_h264が2回も設定されていた。
03:35:56.134: [nicolive] no live waku
03:35:56.134: [nicolive] click stop streaming hotkey
03:36:06.184: [nicolive] no live waku
03:36:06.184: [nicolive] click stop streaming hotkey
03:36:16.305: [nicolive] no live waku
03:36:16.305: [nicolive] click stop streaming hotkey
03:36:26.436: [nicolive] no live waku
03:36:26.436: [nicolive] click stop streaming hotkey
03:36:36.537: [nicolive] no live waku
03:36:36.537: [nicolive] click stop streaming hotkey
03:36:46.598: [nicolive] no live waku
03:36:46.598: [nicolive] click stop streaming hotkey
03:36:56.750: [nicolive] no live waku
03:36:56.750: [nicolive] click stop streaming hotkey
03:37:06.817: [nicolive] no live waku
03:37:06.817: [nicolive] click stop streaming hotkey
※この表示(click stop streaming hotkey)の時点でバグっている
03:37:16.878: [nicolive] no live waku
03:37:16.878: [nicolive] click stop streaming hotkey
この辺りで枠を取得して配信開始をする。
03:37:26.942: [nicolive] live waku: lv280934832
03:37:26.942: [nicolive] click stop streaming hotkey
ここでフリーズしている。開始まで時間がかかる。
03:38:26.957: [nicolive] click start streaming hotkey
03:38:27.080: [nicolive] live waku: lv280934832
03:38:27.080: [nicolive] found live url and key with ticket
03:38:27.080: [nicolive] audo bitrate is zero or negative
03:38:27.151: [nicolive] live waku: lv280934832
03:38:27.151: [nicolive] found live url and key with ticket
03:38:27.218: [nicolive] live waku: lv280934832
03:38:27.218: [nicolive] found live url and key with ticket
03:38:27.218: ---------------------------------
03:38:27.218: [x264 encoder: 'streaming_h264'] Invalid profile: High
03:38:27.218: [x264 encoder: 'streaming_h264'] preset: veryfast
03:38:27.218: [x264 encoder: 'streaming_h264'] profile: high
03:38:27.218: [x264 encoder: 'streaming_h264'] settings:
03:38:27.218: rate_control: VBR
03:38:27.218: bitrate: 416
03:38:27.218: buffer size: 416
03:38:27.218: crf: 23
03:38:27.218: fps_num: 24
03:38:27.218: fps_den: 1
03:38:27.218: width: 640
03:38:27.218: height: 360
03:38:27.218: keyint: 240
03:38:27.218: vfr: off
03:38:27.218:
03:38:27.224: [CoreAudio AAC: 'Track1']: settings:
03:38:27.224: mode: HE-AAC
03:38:27.224: bitrate: 64
03:38:27.224: sample rate: 44100
03:38:27.224: cbr: on
03:38:27.224: output buffer: 1536
03:38:27.224: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://nlpoca115.live.nicovideo.jp:1935/publicorigin/161104_03_0?3382236:lv280934832:68:1478198304:0:1478198238:34bac8e29f73a72b...
03:38:27.245: [rtmp stream: 'adv_stream'] Interface: Intel(R) Gigabit CT Desktop Adapter (ethernet, 1000 mbps)
03:38:27.291: [nicolive] live waku: lv280934832
03:38:27.291: [nicolive] found live url and key with ticket
03:38:27.291: [nicolive] audo bitrate is zero or negative
03:38:27.291: ---------------------------------
03:38:27.291: [x264 encoder: 'streaming_h264'] settings:
03:38:27.291: rate_control: VBR
03:38:27.291: bitrate: 416
03:38:27.291: buffer size: 416
03:38:27.291: crf: 23
03:38:27.291: fps_num: 24
03:38:27.291: fps_den: 1
03:38:27.291: width: 640
03:38:27.291: height: 360
03:38:27.291: keyint: 240
03:38:27.291: vfr: off
03:38:27.291:
03:38:27.365: [nicolive] live waku: lv280934832
03:38:27.365: [nicolive] found live url and key with ticket
03:38:27.377: [rtmp stream: 'adv_stream'] Connection to rtmp://nlpoca115.live.nicovideo.jp:1935/publicorigin/161104_03_0?3382236:lv280934832:68:1478198304:0:1478198238:34bac8e29f73a72b successful

正常な時のログ
下記 ( [nicolive] no live waku )が延々と続く。
03:26:38.605: [nicolive] no live waku
03:26:48.683: [nicolive] no live waku
03:26:58.749: [nicolive] no live waku
03:27:08.826: [nicolive] no live waku
03:27:18.889: [nicolive] no live waku
03:27:28.950: [nicolive] no live waku
03:27:39.014: [nicolive] no live waku
03:27:49.078: [nicolive] no live waku
03:27:59.133: [nicolive] no live waku
03:28:09.182: [nicolive] no live waku
03:28:19.228: [nicolive] no live waku
03:28:29.278: [nicolive] no live waku
03:28:39.344: [nicolive] no live waku
03:28:49.408: [nicolive] no live waku
03:28:59.478: [nicolive] no live waku
03:29:09.558: [nicolive] no live waku
03:29:19.627: [nicolive] no live waku
03:29:29.724: [nicolive] no live waku
03:29:39.780: [nicolive] no live waku
03:29:49.846: [nicolive] no live waku

OBS Studio 23.0でニコ生プラグイン(obs-rtmp-nicolive)が動作しない

追記 (2020年02月21日加筆)
【ユーザー生放送】配信用のストリーム情報を放送者ごとに固定しました
https://blog.nicovideo.jp/niconews/128534.html
ニコ生プラグインを使用しなくても大丈夫になりました。

追記 (2019年03月11日 23時35分頃加筆)
ニコニコ運営生放送 2時間34分42秒~にて
今後の予定に「配信URL・ストリームキー固定」がありました。
この予定が実行されるとニコ生プラグインが必要無くなると思います。
取り急ぎ情報として。
streamkey

バグの概要
OBS Studio 23.0 で「配信種別」が廃止されて「ニコ生プラグイン」が表示されなくなった

再現手順
OBS Studio 23.0.x以降を入手して、ニコ生プラグインを導入する
https://github.com/obsproject/obs-studio/releases

スクリーンショット
default

バグが発生した環境
・OBS Studio 23.0.x以降
・ニコ生プラグイン v2.1.0 + v2.2.0-pre2

補足
「配信種別」廃止の経緯?
obsproject/obs-studio#1579
* Improves the user experience for both the auto-configuration dialog and the stream page, removing the redundant "service type" option, and consolidates all services (including "custom") in to a single service-selection drop down. In addition, instead of selecting "Show all" as a checkbox, it is now present in the drop-down at the bottom.

回避策

  1. バージョン 22.0.xに戻す
    ニコ生プラグインは v2.1.0 を使用する

Windowsの場合(22.0.2) https://github.com/obsproject/obs-studio/releases/tag/22.0.2
64bit環境(インストーラー) OBS-Studio-22.0.2-Full-Installer-x64.exe
32bit環境(インストーラー) OBS-Studio-22.0.2-Full-Installer-x86.exe

macOSの場合(22.0.3) https://github.com/obsproject/obs-studio/releases/tag/22.0.3
obs-mac-22.0.3-installer.pkg

  1. プラグインの使用を辞める
    手動でrtmp/ストリームキーをOBS側に入力する。
    ※今後配信URL/ストリームキー固定化の予定あるようです。(下記参照)

  2. 別の補助ツールを使う

追記
・22.0.2(またはそれ以下)から23.0にアップデートした場合
「設定 > 配信」を変更しなければ「配信開始」は可能

・23.0で初めて導入した場合
「配信種別」が廃止されたので使えない
ただし23.0でも設定ファイル(service.json)を直接変更すれば、ニコ生プラグインの設定は変更出来て配信開始する事は可能
C:\Users\ユーザー名\AppData\obs-studio\basic\profiles(プロファイル名)\service.json

service.json に関して (true = 有効 / false = 無効)
adjust_bitrate : 映像ビットレートを自動調節
auto_start : 自動で配信開始と枠移動を行う
mail : メールアドレス
password : パスワード
watch_interval : 監視間隔 (秒)

{
    "settings": {
        "adjust_bitrate": true,
        "auto_start": false,
        "mail": "hoge(@)hoge",
        "password": "hogehoge",
        "watch_interval": 60
    },
    "type": "rtmp_nicolive"
}

obs-rtmp-nicoliveのインストール方法について

obs-rtmp-nicoliveのインストール時の操作について質問させて下さい
OSX10.8.5を使用しています。

アプリケーションにある「OBS」を右クリックして「パッケージの内容を表示」で中身を開いて下さい。
「Contents」ディレクトリをそのままドラッグ&ドロップして下さい。認証画面でパスワードを入力し、ディレクトリの「結合」を選んで下さい。

インストール手順の中で、ディレクトリの「結合」を選ぶという項目が有りますが
ドラッグ&ドロップ後に表示されるメッセージが「"OBS.app"を変更できないため、項目"contents"を移動出来ません」と表示され [認証] or [キャンセル] の選択ボタンがまず出ます。
[認証]ボタンを押した後 「“Contents”という名前の新しい項目がすでにこの場所にあります。現在移動中の古い項目で置き換えますか?」と表示され [中止] or [置き換える] の2項目のボタンだけ出るんですが
置き換えると結合という操作は全く違うんですよね?
試しに置き換えるにした所ファイル欠損でOBS自体が起動しませんでした。
憶測ですがOSのバージョンにのせいで、ドラッグ&ドロップ後の選択で結合という項目が出ないのでしょうか? 他に結合という操作を実行する方法は有るのでしょうか?

v2.2.0-pre2認識せず(win7-64bit,OBS20.0.1)

一般ユーザーで申し訳ないです。
確認対象外だと思いますが、ご報告だけ失礼します。

環境:win7home(64bit)、OBS20.0.1(64bit)
・v2.2.0-pre2がOBSで認識されませんでした(配信種別にでない)。
・v2.1.0は認識されました。v2.2.0-pre2導入後のファイル上書きでも可。
どちらもOBS再インストールから試しました。

いつも利用させて頂きありがとうございます。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.