Twitch, Ustream, Youtube に対応した livestreamer の使い方
生放送の配信サイトが増える中で rtmp 形式だったのが、モバイル端末からの視聴環境を考慮した結果 Apple の HLS や Adobe の HDS 形式に移出力ファイルの設定行するサイトが多くなった。それに伴って rtmpdump ではなくて ffmpeg や hdsdump での録画が一般的になっていった。しかし、ffmpeg や hdsdump だけでは録画できなくなったり、配信元のデータを調べる必要があったりと手軽ではない中で livestreamer が HLS や HDS に対応し、そこから海外の多くの生放送の配信サイトに対応したことによりいっそう手軽になった。
関連記事
v1.10.2 時点での主な対応サイト
対応しているすべてのサイト:Plugins — Livestreamer documentation
配布先:Releases · chrippa/livestreamer · GitHub
更新履歴:Changelog — Livestreamer documentation
関連記事
- rtmpdump コマンド一覧と使い方
- RTMPDumpHelper の使い方
- 【rtmpdump】 rtmpexplorer より使いやすい RTMPExploreX
- ニコ生の録画方法 まとめ
- USTroku で録画できない放送を録画・保存する方法
v1.10.2 時点での主な対応サイト
対応しているすべてのサイト:Plugins — Livestreamer documentation
配布先:Releases · chrippa/livestreamer · GitHub
更新履歴:Changelog — Livestreamer documentation
Windows PC を使っている場合は、win32-setup.exe のインストーラー版の使用が推奨されていて、そのほかの Mac や Linux などの OS にもソースコードからのインストールによって使うことができる。GUI と CLI のどちらの場合も先に livestreamer をインストールしておく。
Installing — Livestreamer documentation
Windows はここより、Installer か、Zip archive 、最新ベータを試したい場合は Nightly build をクリックして保存する。
使い方
livestreamer は rtmpdump や ffmpeg と同じようにコマンドプロンプトから実行する CLI である。しかし、rtmpdump などと同じようにコマンドラインの実行はハードルが高いので、GUI を使って livestreamer を使う方法もある。
GUI を使う場合
実行の前に Java をインストールしておく
Releases · 0wing/livestreamerJGUI · GitHub
同じファイル名で出力すると止まるので別ファイルを指定する。
そのほかの GUI:Alternative interfaces · chrippa/livestreamer Wiki · GitHub
USTroku で使う方法:【USTroku】 USTREAMのライブ映像を録画・保存 【チェッカー付き】
CLI を使う場合
基本的なコマンド
livestreamer 配信サイトのアドレス --default-stream best -o output.flv例
livestreamer www.ustream.tv/channel/dommune --default-stream best -o dommune.flvlivestreamer www.twitch.tv/id --default-stream best -o twitch.ts配信を録画するだけではなく、プレイヤーで再生することもできる。この場合は録画ではなくプレイヤーで見るだけのコマンドであり2種類ある。
livestreamer 配信サイトのアドレス --default-stream best -p "プレイヤーのフルパス"livestreamer 配信サイトのアドレス --default-stream best -o - |" プレイヤーのフルパス" -例
livestreamer www.ustream.tv/channel/dommune --default-stream best -p "E:\tools\MPC-HC\mpc-hc.exe"livestreamer www.ustream.tv/channel/dommune --default-stream best -o - | "E:\tools\MPC-HC\mpc-hc.exe" -プレイヤーに配信映像を渡せるプレイヤーは MPC-HC のほかに VLC や ffplay、mplayer などがある。
Players — Livestreamer documentation
- Downloads – MPC-HC
- VideoLAN - VLC: Official site - Free multimedia solutions for all OS!
- Zeranoe FFmpeg - Builds
- MPlayer - The Movie Player
対応しているプロトコル一覧
| 名前 | Prefix |
| Adobe HTTP Dynamic Streaming | hds:// |
| Akamai HD Adaptive Streaming | akamaihd:// |
| Apple HTTP Live Streaming | hls:// hlvsvariant:// |
| Real Time Messaging Protocol | rtmp:// rtmpe:// rtmps:// rtmpt:// rtmpte:// |
| Progressive HTTP, HTTPS, etc | httpstream:// |
RTMP のコマンド例
注意点はオプションの指定で個別に "" で囲うのではなく全体を "" で囲うところである。
livestreamer "rtmp://streaming.server.net/playpath live=1 swfVfy=http://server.net/flashplayer.swf" --default-stream best -o out.flvオプションの指定方法は以下を参照
LIBRTMP(3):
Adobe HDS のコマンド例
livestreamer hds://http://streaming.server.net/playpath/manifest.f4m --default-stream best -o out.flvフラグメント(分割)ファイルのホスト名が正しく表示されていない場合は映像ソースのホスト以下に // が続いていることがあるので一つ / を消す。
基本コマンド以下の翻訳先:Command Line Interface — Livestreamer documentation
目次
基本コマンド
livestreamer [OPTIONS] [URL] [STREAM]位置指定引数
- [URL]
この URL からストリームを解析して取得する。“http://” は省略しても “http://” として認識される。
- [STREAM]
取得する配信内容。
"best"(最高画質) や "worst"(最低画質)、解像度などが指定できる。何も指定しなければ、指定できるオプションをコンマ区切りで出力する。
全般の設定
- -h, --help
ヘルプメッセージの表示。
- -V, --version
バージョンの表示。
- --plugins
現在インストールされているプラグインの表示。
- --config FILENAME
オプションのコンフィグファイルを読み込む。
詳しい設定。http://livestreamer.tanuki.se/en/latest/cli.html#configuration-file
- -l LEVEL, --loglevel LEVEL
ログメッセージの閾値を指定する。
指定できる値:none, error, warning, info, debug
- -Q, --quiet
ヘルプメッセージの表示。
- -j, --json
一般的なテキスト形式ではなく JSON 形式で出力する。他のアプリと連携するのに便利。
プレイヤーの設定
- -p COMMAND, --player COMMAND
その指定したプレイヤーにデータを送る。
例
"vlc --file-caching=5000"
パスを指定する例
"'/path/with spaces/vlc' --file-caching=5000"
- -a ARGUMENTS, --player-args ARGUMENTS
標準入力されたプレイヤーの表示タイトル名の指定。
規定値 "-"(stdin)(標準入力)
- -v, --verbose-player
プレイヤーにコンソール出力を表示するのを許可する。
- -n, --player-fifo, --fifo
標準入力されたデータの代わりに名前の付いたパイプ入力を読み込む。
- --player-http
標準入力されたデータの代わりに HTTP ストリームを読み込む。
- --player-continuous-http
標準入力されたデータの代わりに HTTP ストリームを読み込むが、何度も接続を試みる。
- --player-passthrough TYPES
コンマ区切りの指定より、URL から解釈を試みる。
指定できる値:hls, http, rtmp
再生するプレイヤーがこのプロトコルに対応しているか確認すること。
- --player-no-close
規定値では配信が終了するとプレイヤーは閉じるが、この指定をすることで閉じなくすることができる。
出力ファイルの設定
- -o FILENAME, --output FILENAME
出力されるファイル名の指定。出力場所に同じファイル名がある場合は上書きするかの選択ができる。
- -f, --force
出力場所に同じファイル名がある場合は強制的に上書きされる。
- -O, --stdout
再生せずに標準出力する。使い方に注意。
配信の設定
- --default-stream STREAM
ここで指定したストリームを開く。無指定の場合は "best" 設定になる
- --retry-streams DELAY
指定した秒だけ遅らせて読み込む
- --retry-open ATTEMPTS
指定回数だけ開けるまでストリームを開く。規定値は 1
- --stream-types TYPES, --stream-priority TYPES
カンマで区切られたリストのストリームタイプを許可する。このオプションの目的は同時配信しているストリームに異なるプロトコルで同じストリーム名の場合に用いる
規定値は "rtmp,hls,hds,http,akamaihd"
- --stream-sorting-excludes STREAMS
指定したストリームの品質を比較して取得できるストリーム一覧を取得する
例:[operator]
[operator] には >, >=, <, <= が使える
480p よりも大きい解像度を除く
">480p"
複数指定する場合
">480p,>medium"
Stream transport の設定
- --hds-live-edge SECONDS
HDS のライブストリームで指定した秒の edge(訳未確定) から開始する
規定値は 10.0
- --hds-segment-attempts ATTEMPTS
指定回数だけ HDS セグメントが開けるまでストリームを開く
規定値は 3
- --hds-segment-threads THREADS
HDS セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
規定値は 1
- --hds-segment-timeout TIMEOUT
HDS セグメントが接続とタイムアウトする(秒)
規定値は 10.0
- --hds-timeout TIMEOU
HDS ストリームがタイムアウトする(秒)
規定値は 60.0
- --hls-live-edge SEGMENTS
HLS のライブストリームでいくつのセグメント末端から開始するか
小さい値ほど可能な限り低遅延で取得できるがバッファーは減る
規定値は 3
- --hls-segment-attempts ATTEMPTS
指定回数だけ開けるまで HLS セグメントを開く
規定値は 3
- --hds-segment-threads THREADS
HLS セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
規定値は 1
- --hls-segment-timeout TIMEOUT
HLS セグメントが接続とタイムアウトする(秒)
規定値は 10.0
- --hls-timeout TIMEOUT
HLS ストリームがタイムアウトする(秒)
規定値は 60.0
- --http-timeout TIMEOUT
HTTP ストリームがタイムアウトする(秒)
規定値は 60.0
- --ringbuffer-size SIZE
リングバッファサイズ。M や K を使うことで bytes を認識する
小さい値ほどプレイヤでの再生やダウンロード開始が早くなるが、その分受信速度に応じて映像が止まる可能性がある。メモリ容量の小さい環境の場合(Raspberry Pi など)は小さい値が推奨される
規定値は 16M
- --rtmp-proxy PROXY, --rtmpdump-proxy PROXY
RTMP ストリームを開くときにプロキシーを指定する
例:127.0.0.1:9050
- --rtmp-rtmpdump FILENAME, --rtmpdump FILENAME, -r FILENAME
RTMP ストリームを開くときに RTMPDump を指定する
環境変数でパスが通っていなければ指定できる
例:“/usr/local/bin/rtmpdump”
- --rtmp-timeout TIMEOUT
RTMP ストリームがタイムアウトする(秒)
規定値は 60.0
- --stream-segment-attempts ATTEMPTS
指定回数だけ開けるまでセグメントを開く
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 3
- --stream-segment-threads THREADS
セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 1
- --stream-segment-timeout TIMEOUT
セグメントが接続とタイムアウトする(秒)
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 10.0
- --stream-timeout TIMEOUT
ストリームがタイムアウトする(秒)
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 60.0
- --stream-url
可能であれば、ストリームを URL に変換して表示する
- --subprocess-cmdline, --cmdline, -c
内部でストリームを再生するのにコマンドラインを表示する
この設定は RTMP ストリームに限る
- --subprocess-errorlog, --errorlog, -e
一時ファイルとしてログファイルを可能な限り出力する
ファイルは一時ファイルが置かれる場所に保存される
HTTP の設定
- --http-proxy HTTP_PROXY
HTTP のリクエストに HTTP プロキシーを用いる
例:http://hostname:port/
- --https-proxy HTTPS_PROXY
HTTPS のリクエストに HTTPS プロキシーを用いる
例:https://hostname:port/
- --http-cookies COOKIES
セミコロンで区切られたクッキーのリストを HTTP リクエストに用いる
例:"foo=bar; baz=qux"
- --http-headers HEADERS
セミコロンで区切られたヘッダーのリストを HTTP リクエストに用いる
例:"X-Forwarded-For=0.0.0.0; User-Agent=foo"
- --http-query-params PARAMS
セミコロンで区切られたクエリのパラメーターのリストを HTTP リクエストに用いる
例:"foo=bar; baz=qux"
- --http-ignore-env
(HTTP_PROXY, など)の複数の HTTP の設定を無視する
- --http-no-ssl-verify
SSL 認証を行わない。
- --http-ssl-cert FILENAME
SSL 認証を行う。.pem 形式のファイルを指定する
- --http-ssl-cert-crt-key CRT_FILENAME KEY_FILENAME
SSL 認証を行う。.crt, .key 形式のファイルを指定する
- --http-timeout TIMEOUT
他の設定で指定した HTTP リクエスト以外の全般のタイムアウト(秒)
規定値は 20.0
プラグインの設定
- --plugin-dirs DIRECTORY
プラグインをディレクトリから読み込む
複数のディレトリを指定する場合はセミコロンを使う
- --twitch-oauth-token TOKEN
Twitch authentication の OAuth を使う
--twitch-oauth-authenticate で指定して返ってきた TOKEN を指定する
- --twitch-cookie COOKIES
Twitch のサブスクリプションチャンネルにアクセスするための認証クッキーを指定する
例:"_twitch_session_id=xxxxxx; persistent=xxxxx"
注意:この方法は旧式で難解なので代わりに、--twitch-oauth-authenticate を使う
- --ustream-password PASSWORD
UStream.tv のパスワードのかかったチャンネルにアクセスするためのパスワード
- --crunchyroll-username USERNAM
Crunchyroll で制限されたストリームにアクセスするためのユーザー名
- --crunchyroll-password [PASSWORD]
--crunchyroll-username で指定したアカウントのパスワード
空欄の場合はプロンプト表示される
- --crunchyroll-purge-credentials
Crunchyroll で前回の認証に用いたキャッシュを破棄して新しいセッションで再認証する
- --livestation-email EMAIL
Livestation にログインするメールアドレス
プレミアム品質のストリームにアクセスするのに使う
- --livestation-password PASSWORD
--livestation-email のパスワード
翻訳先:Command Line Interface — Livestreamer documentation
- 関連記事
- Twitch, Ustream, Youtube に対応した livestreamer の使い方 (05/23)
- 無料ユーザーで Ustream 外部貼り付けページの利用は2月中旬頃まで (02/06)
- Ustreamの広告を非表示にする方法 (09/19)
- 【Ustream】 自殺配信があった (11/09)
- 【Ust】 日本語化 (04/28)
- 【Ustream 他】 各種メディアプレイヤーで視聴する方法 (04/16)
この記事へのコメント