2014年01月26日

VideoLANドキュメント私訳 第六回 ストリーミング・ハウツー(4)コマンドラインを使用する上級ストリーミング

VideoLANドキュメント ストリーミング関連抜粋私訳
https://wiki.videolan.org/Main_Page/

VLC Media Playerを持ちでないかたは(オープンソース・フリー、各種OS版あり)
VLC Media Player ダウンロード・ページ

VideoLanのwikiドキュメントの内、ストリーミングに関連するドキュメントを翻訳試みました。
数回に分けて掲載します。全部を一度に見る場合は、次のPDFファイルをご覧ください。
VideoLAN-Document-Streaming-How-To-etc.pdf
##########################################
第六回 ストリーミング・ハウツー(4)コマンドラインを使用する上級ストリーミング

コマンドラインを使用する上級ストリーミング
https://wiki.videolan.org/Documentation:Streaming_HowTo/Advanced_Streaming_Using_the_Command_Line/

目次
1.ストリーム出力の構造
2.モジュールの記述
2.1.標準(alias std)
2.1.1.accsess
2.1.2.mux
2.1.3.dst
2.1.4.sap
2.1.5.group
2.1.6.sap-ipv6
2.1.7.slp
2.1.8.name
2.2.ディスプレイ
2.2.1.display
2.2.2.noaudio
2.2.3.delay
2.3.rtp
2.3.1.dst
2.3.2.pot
2.3.3.pot-video
2.3.4.pot-audio
2.3.5.sdp
2.3.6.ttl
2.3.7.mux
2.3.8.rtcp-mux
2.3.9.proto=
2.3.10.name
2.3.11.description
2.3.12.url
2.3.13.email
2.4.es
2.4.1.access-video
2.4.2.access-audio
2.4.3.access
2.4.4.mux-video
2.4.5.mux-audio
2.4.6.mux
2.4.7.dst-video
2.4.8.dst-audio
2.4.9dst
2.5.変換
2.5.1.vcodec
2.5.2.vb
2.5.3.venc
2.5.4.fps
2.5.5.deinterlace
2.5.6.croptop
2.5.7.cropbottom
2.5.8.cropleft
2.5.9.cropright
2.5.10.scale
2.5.11.width
2.5.12height
2.5.13.acodec
2.5.14.ab
2.5.15.aenc
2.5.16.samplerate
2.5.17.channels
2.5.18.scodec
2.5.19.senc
2.5.20.soverlay
2.5.21.sfilter
2.5.22.threads
2.5.23.audio-sync
2.5.24.vfilter
2.6.duplicate
2.6.1.dst
2.6.2.select
2.7.その他
2.8.単純なシンタックス
3.サンプル

1.ストリーム出力の構造

ストリーム出力はVLCが読み込んだどんなストリームもそれを表示する代わりに、ファイルやネットワークストリームに出力できるVLCの機能の名前です。様々な処理がこのプロセスの間、ストリームに適用することができます(変換、リサイズ、フィルター、再マルチプレクサなど)。ストリーム出力は様々なモジュールがあり、それぞれが様々な能力をもっています。可能性を高めるため、モジュールのチェーンを作ることができます。

・標準 出力モジュールへのアクセスを通じてストリームを送ることができます:例えば、UDP、ファイル、HTTPなど。チェーンの最後にこのモジュールを使うでしょう。

・変換 インプットストリームのオーディオとビデオを変換(異なるコーデックやビットレートを使ってストリームをデコードしたり、再エンコード)するのに使います。インプットやアウトプットのアクセス方法はペース・コントロール(ネットワーク、キャプチャー・デバイス)を認めていないなら、リアルタイムで「急いで」行われる。これはパラメーターのセットに依存して、多くのCPUのパワーを必要とする。ファイルやディスクのような他のストリームはシステムが許す限り早く変換されます。

・デュプリケート ストリームが独立の方法で扱われる第二のチェーンを作ることができるようにします。

・ディスプレイ VLCが通常行うようにインプット・ストリームを表示させます。デュープリケート・モジュールと共に使うことで処理中のストリームをモニターすることができます。

・rtp RTP(それぞれの要素ストリームにひとつずつポートを割り振る)でストリームします。このモジュールはRTSPをサポートします。

・es インプット・ストリームから要素ストリーム(ES:Elementary Streams)を分離できるようにします。これは例えば、オーディオとビデオのストリームを別のファイルに保存するのに用いることができます。

・bridge-out 執筆予定
・bridge-in 執筆予定
・mosaic-bridge 執筆予定

それぞれのモジュールにはオプションがあります。次のようなシンタックスに従わなくてはなりません:

% vlc input_stream --sout "#module1{option1=parameter1{parameter-option1},option2=parameter2}:module2{option1=...,option2=...}:..."

注:いくつかのモジュール・オプション(例の中のoption1)は設定しなくてはなりませんが、他は任意です。
オプションのパラメーター(例の中のparameta-option1)は常に任意です。これらのオプション・パラメーターもまたしばしば上級の設定です。それらの記述を理解できない場合は、おそらくそれは必要ではないことを意味します。

次のようなシンタックスを使うこともできます:

% vlc input_stream --sout-module1-option1=... --sout-module1-option2=... --sout-module2-option1=... --sout-module2-option2=... ...

例えば、ストリームを変換し、それを送信する場合は次のとおりです:

% vlc input_stream --sout '#transcode{options}:standard{options}'


2.モジュールの記述

現在利用可能なモジュールのリストです:

2.1.スタンダード(alias std)

このモジュールは、マルチプレクサ(信号の複数の要素をカプセル化)したあと、ストリームをファイルに保存するか、ネットワークに送ります。

利用可能なオプション:

2.1.1.標準(alias std) - accsess

このオプションはストリームを保存するか送信するのに用いられるメディアを設定します。これは必須のオプションです。利用可能なオプションは:

・file:ストリームをファイルに保存する

apendオプションは、ファイルを置き換える代わりに、既存のファイルにストリームを付加するのに用います:

 standard{ ... ,access=file{append}, ... }

・udp: UDPユニキャストまたはマルチキャスト・アドレスにストリームする

アイテムのオプションは:

・・caching=< time in ms> :送信する前にVLCがデータをバッファーする時間をセットします;
 ・ ttl=< ttl> :送信するudpパケットのttlを設定します;
 ・ group=< amount of packets> :ひとつひとつではなく一気にパケットを送信します;
 ・ late=< time in ms> このチェーンの段階で到着が遅すぎるパケットを落とします;
 ・ raw :パケットを送信する前にMTUが満杯になるまで待てない場合;

・http: streams over HTTP.

アイテムのオプション:

・・ user=< user name> HTTPベーシック認証を可能にし、ユーザーを設定します;
 ・ pwd=< password> ベーシック認証のパスワードを設定します;
 ・ mime=< mime type> サーバー返すMIMEタイプを設定します;

・・ https: セキュアなSSLコネクションを使ってHTTPでストリームします。

アイテムのオプションはHTTPと同じでそれと:
・・ cert=< path to certificate>  使用するための認証を設定します;
 ・ key=< path to key> サーバーがSSL接続のため使うプライベートのキー・ファイルを設定します;
 ・ ca=< path to certificate> SSLのため使用するルートのCA認証へのパスを設定します;
 ・ crl=< path to certificate> SSL接続のため使用する取り消し認証を設定します。

・・mmsh: マイクロソフトMMSプロトコルを使用するストリーム。このプロトコルは多くのマイクロソフトのソフトウェアによる転送方法として用いられます。

MMSプロトコルの僅かな部分しかサポートされないことに注意(HTTPでカプセル化されるMMS)。アイテムのオプションはHTTPモジュールと同じです。

・・rtp: RTPによるストリーム。これはプレーンのRTPを通じてMPEG-TSをストリームする場合にだけ使うことができます。

このオプションのサポートはVLC0.9.0以降削除されました。その代わりrtpストリームモジュールを使用しなくてはなりません。オプションはudo設定と同じです。

2.1.2.標準(alias std) - mux(マルチプレクサ)

このオプションで、ストリームするため使用されるカプセル化の方法を設定します。これは設定しなければなりません。

利用可能なオプションは次のとおりです:

・ts: MPEG2/TSマルチプレクサ。これはMPEG-2をストリームする時用いられる標準的なマルチプレクサです。このマルチプレクサはどのアクセス方法でも利用できます。サポートされるコーデックは、MPEG1/2/4。MJPEG、H264、WMV 1/2 & theora for video、MPEG audio、AAC & a52 for audio stream。

アイテムのオプションは:
・・ pid-video=< pid> ビデオ・トラックのPIDを設定する;
 ・ pid-audio=< pid> オーディオトラックのPIDを設定する;
 ・ pid-spu=< pid> 字幕トラックのPIDを設定する;
 ・ pid-pmt=< pid> PMT(プログラム・マップ・テーブル)のPIDを設定する;
 ・ tsid=< id> 出力したTSストリームのIDを設定する;
 ・ shaping=< shaping delay in ms> 様々なビットレートのためストリームのビットレートを維持する最小のインターバルを設定する;
 ・ use-key-frames シェイピング・インターバルの制限としてIフレームを使用する
 ・ pcr=< PCR interval in ms> どのインターバルでプログラム・クロック・リファレンスを送信するか設定することができる;
 ・ dts-delay=< delay in ms> 所与の時点からDTSからPTS(プレゼンテーション・タイム・スタンプ)を遅らせることができます;
 ・ crypt-audio CSAアルゴリズムを使ってオーディオの暗号化を可能にすることができます;
 ・ csa-ck=< key as a 16 character word> CSA暗号化のため使うキーを設定することができます。

・ ps: the MPEG2/PS マルチプレクサ. これはMPEG 2ファイル(.mpg)標準マルチプレクサです。これはファイルとHTTP出力方法を使用できます。サポートするコーデックはMPEG 1/2、MJPEG&MJPEG for VIDEO、MPEG audio&a52 for audio streamsです。

使用できるオプションはつぎだけです:

・・dst-delay=< delay in ms> : これは所与の時間のDTS(デコード・タイム・スタンプ)からPTS(プレゼンテイション・タイム・スタンプ)に遅らせることができます。

・mpeg1: 標準的なMPEG 1 マルチプレクサ。このマルチプレクサは、ファイルを保存するか、HTTPでストリームした時、MPEG 1ビデオストリームでpsの代わりに用いられるこのマルチプレクサを使います。サポートするコーデックはMPEG 1とMPEG audioです。

アイテムのオプションはPSマルチプレクサと同じです。
・ogg: oggマルチプレクサ。これはXiphプロジェクトに由来するマルチプレクサです。HTTPとファイル出力方法と共に使うことができます。サポートするコーデックはMPEG 1/2/4、MJPEG WMV 1/2&Theoraです。オーディオストリームにはvorbis、flac、speex、a52、MPEG audioが使えます。

このマルチプレクサにはアイテム・オプションはありません。

・asf: マイクロソフトASFマルチプレクサ。これはマイクロソフトのソフトウェアがストリーミングで使う標準的なマルチプレクサです。またWMAオーディオ・ファイルのコンテナーとして使われます。このマルチプレクサはファイルでもHTTPアウトプット方法でも使うことができます、サポートするコーデックはMPEG4、MJPEG、WMV 1/2 for VIDEO、MPEG audio、a52 for audio streamです。

アイテムのオプションは:
・・ title=< title> ;
 ・ autor=< author> ;
 ・ copyright=< copyright message> ;
 ・ comment=< comments> ;
 ・ rating=< rating> これは何がストリーム・コンテンツの一致するフィールドで表示されるかを設定することができます;
 ・ asfh: これはASFマルチプレクサの特殊なバージョンでMMSHのため用いられます。MMSHは出力方法だけサポートします。サポートするコーデックはASFと同じです。アイテムのオプションはASFと同じです。
・avi: マイクロソフトAVIマルチプレクサ。これはMPEG 4ファイルの非常に普及したカプセル化フォーマットです。サポートするアウトプット方法はファイルだけです。サポートするコーデックはMPEG 1/2/4、H263、H264&I263 for video、MPEG audioとa52 for audio streamです。このマルチプレクサにはアイテムオプションがありません。注:VLCのAVIマルチプレクサは壊れたファイルしかできないと知られています。
・mpjpeg:マルチパートjpegマルチプレクサー。
このカプセル化フォーマットは統合されたウェブ・サーバーとともに監視ビデオ・カメラにほとんど用います。このようなストリームは通常ウェブ・ページに埋め込まれ、jpegの連続イメージとして見ることができるよう、標準的なインターネット・ブラウザで見られます。サポートする出力方法はHTTPだけです。使用できるコーデックはMJPEGだけです。このストリームではサウンドトラックはマルチプレクサできません。このマルチプレクサには利用できるアイテム・オプションはありません。

2.1.3.標準(alias std) - dst

このオプションはストリームが実際保存されるか、送信される場所についての情報を与えることができます。
アクセス・オプションのため使われるパラメーターに依存するのことにdstオプションの意味があります。
・ファイル出力方法が用いられたら、dstはファイルが保存されるパスです。
・udpないしrtp出力方法が用いられたら、dstは、アドレス:ポート形式で、ユニキャストあるいはマルチキャストの出力アドレスと、オプションでUDPポートポートです。
・http、https、mmsh出力方法を選んだ場合、dstは、サーバーがリクエストを受けるローカル・ネットワーク・インターフェースのアドレス、ポート、パスです。アドレスが与えられない場合は、VLCはすべてのネットワーク・インターフェースのリクエストを受けます。このような情報はアドレス:ポート/パスのシンタックスを使って提供されなければなりません。

2.1.4.標準(alias std) - sap

VLCにSAP(Session Announcement Protocl)アナウンスを送るようにしたい場合このオプションを使います。SAPはservice discovery protocolで、サーバーで利用可能なストリームのリストを送る特別なマルチキャストアドレスを使用します。
このプションはudp出力方法とともにしか使用できません。

2.1.5.標準(alias std) - group

このオプションでストリームのグループのオプションの名前をつけることができます。VLCをクライアントとして使う場合、ストリームを分類するのにこのフィールドを使用します。
このオプションはSAPプロトコルのプライベートな拡張機能を使います。VLCではクライアントだけがこのフィールドを読むことができます。
このプションはsapオプションが可能な場合に限り使用することができます。

2.1.6.標準(alias std) - sap-ipv6

SAPアナウンスをIPv4ではなく、IPv6を使って送る場合このオプションを使います。
このオプションはsapオプションが可能な場合に限り使用することができます。

2.1.7.標準(alias std) - slp

SLPはService Location Protocolのことです。これはセッション・アナウンスでSAPの代わりとなるものです。このオプションはそのようなアナウンスを送りたい場合使います。

2.1.8.標準(alias std) - name

このオプションはSAPやSLPアナウンスで送るストリームの名前をつけつために使います。
これはSAPやSLPオプションが利用可能な場合だけ使うことができます。

2.2.ディスプレイ

2.2.1.ディスプレイ - display

このモジュールはストリームを表示するために使うことができます。これは特に保存やストリームの際、ストリームをモニターするため、デュプリケート・チェーンで役に立ちます。

利用可能なオプションは次のとおりです:

2.2.2.ディスプレイ - noaudio

表示されたストリームでオーディオをオフにするためこのオプションを使うことができます。

2.2.3.ディスプレイ - delay

ストリームの表示でディレイを導入するためこのオプションを使うことができます。ディレイは分秒で使われなくてはなりません。

2.3.rtp

このモジュールはRTP(Real Time Protocol)プロトコル(RFC3550を見よ)を使うストリームを送信するため使うことができます。
このモジュールでRTSPが利用可能ですが、ビデオ・オン・デマンドはできません。この点についてはVLMモジュールの記述をご覧ください。

様々な利用可能なオプションが次の通りあります:

2.3.1.rtp - dst

このオプションは出力するUDPアドレスを指定することができます。これはホストあるいはマルチキャスト・グループのアドレスになります。sdp=rtsp://オプション(次を参照)をつけないなら、このオプションは必須です。sdp=rtsp://オプションの場合、ストリームはRTSPリクエストをするホストに送信されます。

2.3.2.rtp - port

このプションで最初の要素ストリームを送信するのに使うUDPポートを設定することができます。このポートは偶数でなくてはなりません。他のストリームは直接この上の偶数ポートを使ってストリームされます。

2.3.3.rtp - port-video

これで最初のビデオ要素ストリームを送信するのに使用するUDPポートを設定することができます。このポートは偶数でなければなりません。

2.3.4.rtp - port-audio

このオプションで、最初のオーディオ要素ストリームを送信するUDPポートを設定できます。このポートは偶数でなければなりません。

2.3.5.rtp - sdp

このオプションで、ストリームに一致するSDP(Session Desription Protocol)ファイルを利用できるようにする方法を設定できます。オプションは次のとおりです:

・file://< path to the file> , ローカルファイルとしてSDPをエクスポートします。
・http://< local interface IP:port/path> , ファイルをVLCに統合されたHTTPサーバーで使用できるようにします。

注:ローカル・インターフェースIPの引数はオプションです。与えられなければ、VLCはすべての利用できる・インターフェースを使用します。

・rtsp://< local interface IP:port/path> , RTSPプロトコルを使うようにSDPファイルを利用できるようにします。 RFC 2326を参照
https://tools.ietf.org/html/rfc2326

Note: ローカルインターフェースIPはオプションです。与えられなければVLCはすべての利用できるインターフェースで使用できるようにします。

・sap, SAP(Session Announcement Protocol, RFC 2974を参照)を使用してSDPをエクスポートします.
RFC 2974
https://tools.ietf.org/html/rfc2974

2.3.6.rtp - ttl

これで送信したUDPパケットのTTL(Time to Live)を設定するため使用できるようにします。

2.3.7.rtp - mux(マルチプレクサ)

このオプションで、ストリームに送信するのに使用されるカプセル化方法を設定できます。利用できる方法の記述は標準モジュールのマルチプレクサ・オプションを参照してください。

tsだけがRTPストリームで使用可能です。デフォルトでは、各要素ストリームは分離されたRTPメディアとして送信されます。つまりカプセル化は行われません。

2.3.8.rtp - rtcp-mux(rtcp-マルチプレクサ)

このオプションはRTP/RTCPマルチプレクサを可能にします(draft-ietf-avt-rtp-and-rtcp-muxを参照)、すなわちRTPパケットと同じポート番号でRTCPパケットを送受信します。
デフォルトでは、RTCPパケットは隣のポートで送受信されます。

2.3.9.rtp - proto=

これはRTPパケットを運ぶ転送プロトコルを選択します。

とり得る値は次です:
・dccp, 指定されたIPアドレス(dst=)のDCCP接続の入力を受信します
・sctp, 指定されたIPアドレス(dst=)のSCTP接続を受信します(まだ実装されていません)
・tcp, 指定されたIPアドレス(dst=)のTCP接続を受信し、RFC4571 RTPフレーミングを使用します(まだ実装されていません)
・udp, 指定された出力に(ユニキャストかマルチキャストで)UDPパケットを送信します;これがデフォルトの値です
・udplite, 指定された出力に(ユニキャストかマルチキャストで)UDP-Liteパケットを送信します
このオプションはRTPとRTCPパケットの転送プロトコルにUDPの代わりにUDP-Liteを使用します。

2.3.10.rtp - name

このオプションでストリームを受信するクライアントに表示される名前を設定することができます。

2.3.11.rtp - description

このオプションでストリームの付属的記述を与えることができます。

2.3.12.rtp - url

このオプションでストリームに関する付属的な情報とウェブサイトのアドレスを与えることができます。

2.3.13.rtp - email

このオプションでコンタクトのメールアドレスを与えることができます。

2.4.es

esモジュールは、ストリームから異なる要素ストリームを分離し、異なるファイルにそれぞれを保存し、別々の出力に送信するのに用いることができます。

利用できるパラメーターは次のとおりです:

2.4.1.es - access-video
これはビデオ要素ストリームを保存し、あるいは送信するのに用いられるメディを設定するオプションです。可能な値とアイテムのオプションは標準モジュール(上記を参照)のアクセスのプションと同じです。

2.4.2.es - access-audio

このオプションは、オーディオ要素ストリームを保存し、送信するために使用するメディアを設定するのに使います。可能な値とアイテムのオプションは標準モジュール(上記を参照)のアクセス・オプションと同じです。

2.4.3.es - access

このオプションは、同じ設定を共有する場合、access-videoとaccess-audioの代わりに使用できます。

2.4.4.es - mux-video

このオプションはビデオ要素ストリームのため用いられるカプセル化方法を設定するのに使用します。可能な値とアイテムのオプションは、標準モジュール(上記を参照)のマルチプレクサのオプションと同じです。

2.4.5.es - mux-audio

このオプションはオーディオ要素ストリームのため用いられるカプセル化の方法を設定するのに使用します。可能な値とアイテムのオプションは、標準モジュール(上記を参照)のマルチプレクサのオプションと同じです。

2.4.6.es - mux

このオプションは、同じ設定を用いる場合、mux-videoとmux-audioオプションの代わりに使用できます。

2.4.7.es - dst-video

このプションはビデオ要素ストリームが保存、送信、あるいは利用可能にする場所を設定しするため使用します。このオプションの正確な意味はaccess-videoの値に依存し、標準モジュール(上記を参照)のurlオプションの場合と同じです。

注:urlフィールドで文字列%nを使用すれば、VLCはそれをオーディオかビデオトラックとみなされる数で置き換えます。文字列%cはトラックのコーデックの名前(FOURCC)で置き換えます。%aはアクセス出力に、%mはマルチプレクサに用いられます。

2.4.8.es - dst-audio

このオプションはオーディオ要素ストリームを保存、送信、あるいは利用可能にする場所を設定します。このオプションの正確な意味はaccess-audioオプションの値に依存し、標準モジュール(上記を参照)のurlオプションの場合と同じです。

注:文字れる%nをurlフィールドで使用すれば、VLCはそれをオーディオ化ビデオ・トラックとみなされる数で置き換えます。文字列%cはトラックのコーデックの名前(FOURCC)で置き換えます。%aはアクセスアウトプットに、%mはマルチプレクサに用いられます。

2.4.9.es - dst

このオプションは、同じ設定を共有する場合、dst-videoとdstaudioオプションの両方の代わりに用いることができます。

2.5.変換

ストリームを変換するため、つまりコーデックを変更したり、ビットレートをエンコードするためこのモジュールを使用することができます。リスケール、インターレース解除、リサンプリングなどいくつかの追加的処理がこのプロセスで行うことができます。
注:オリジナル・ストリームと選択したオプションのビットレートに依存して、変換は高い負荷をCPUにかけることがあります。結果的に、リソースが枯渇すると、リアル・タイム変換ストリームのストリーミングはコマ落ちや、場合によっては画質や音質の劣化につながります。

利用可能なオプションは:

2.5.1.変換 - vcodec

このオプションでインプット・ストリームのビデオ・トラックを変換するコーデックを指定することができます。

可能なコーデックのリストはストリーミング機能のページで調べることができます。
streaming feature page:
http://www.videolan.org/streaming/features.html

2.5.2.変換 - vb

このオプションでkbit/sで変換するビデオ・ストリームのビットレートを設定できます。

2.5.3.変換 - venc

これで、ビデオ・ストリームをエンコードするのに使うエンコーダーを設定できます。利用可能なオプションは:

・ffmpeg: これはlibavcodecエンコード・モジュールです。これは非常に多くの様々なコーデックを扱います(リストはストリーミング機能のページで調べることができます)。
this is the libavcodec encoding module. It handles a large variety of different codecs (the list can be found on the streaming features page.

アイテムのオプションは:

・・keyint=< number of frames> 2つのキーフレーム間フレームの最大値を設定します;
 ・hurry-up CPUがエンコード・レートを維持できない場合、エンコーダーがストリームの質を落とすため設定できます;
 ・interlace インターレースのエンコードの質を改善することができます;
 ・noise-reduction=< noise reduction factor> ノイズ低減アルゴリズムを可能にします(画像の細部を犠牲にして必要なビットレートを低減します);
 ・vt=< bitrate tolerance in kbit/s> 出力のビデオ・ストリームのための耐用度を設定できます;
 ・bframes=< amount of frames> 2つのキーフレーム間のBフレームの数を設定します;
 ・qmin=< quantizer> 最小の量子化スケールを設定できます;
 ・qmax=< quantizer> 最大の量子化スケールを設定できます;
 ・qscale=< quantizer scale> VBRエンコードのための固定量子化スケールを設定します;
 ・i-quant-factor=< quantization factor> Pフレームと比較したIフレームの量子化ファクターを設定します;
 ・hq=< quality> モーション・ベクターのエンコードの室のレベルを選択できます(引数はsimple、rd、bitsで、デフォルトはsimpleです*改善お願い*);
 ・strict=< level of compliance> より厳しい標準的規格を矯正することができます(可能な値は-1、0、1です。デフォルトは0です);
 ・strict-rc 厳しいレート・コントロール・アルゴリズムを可能にします;
 ・rc-buffer-size=< size of the buffer in bits> レート・コントロールに使うバッファのサイズを選択できます(より大きければ効果的なレート・コントロールできます);
 ・rc-buffer-aggressivity=< float representing the aggressiveness> レート・コントロールのバッファのaggressivenessを設定できます*改善お願い*;
 ・pre-me プレ・モーション評価を可能にします;
 ・mpeg4-matrix enable use of the MPEG4 MPEG2ストリームとの量子化マトリクス。MPEG2デコーダーとの互換性を維持しながら質を改善します;
 ・trellis enables 格子量子化(質を改善しますが、処理が遅くなります).

・theora: Xiph.org theoraエンコーダー。モジュールはtheoraストリームを作るのに使用されます。theoraは特許フリーで使用料フリーのビデオ・コーデックです。

利用できるアイテム・オプションは次のとおりです:

・・quality=< quality level> . このオプションで、vb設定に上書きするVBRストリームを作ることができます。質のレベルは1と10の間の整数でなければなりません。高いほうが質がよいです。

・x264. x264はフリーでオープンソースのh264エンコーダーです。h264 (あるいはMPEG4-AVC)は全く最近の高画質ビデオコーデックです。

項目のオプションは次のとおりです:

・・keyint=< number of frames> 2つのキーフレーム間のフレームの最大数を設定できます;
 ・idrint=< number of frames> 2つのIDRフレーム間のフレームの最大数を設定できます;
 ・bframes=< amount of frames> IフレームとPフレーム間のBフレームの数を設定できます;
 ・qp=< quantizer parameter> 固定量子化(1から5)を設定することができます;
 ・qp-max=< quantizer parameter> 最大の量子化値を設定できます;
 ・qp-min=< quantizer parameter> 最小の量子化値を設定できます;
 ・cabac CABAC(コンテキスト調整バイナリー数値コーディング)アルゴリズム(遅いが、高品質)を可能にします;
 ・loopfilter デブロッキング・ループ・フィルターを可能にします;
 ・analyse 分析モードを可能にします;
 ・frameref=< amount of frames> 予測に用いられる事前のフレーム数を設定できます;
 ・scenecut=< sensibility> 能動的に、場面転換で、追加のIフレームをエンコーダーが挿入する方法をコントロールできます;

2.5.4.変換 - fps

このオプションで一秒あたりのフレーム数で変換されるビデオのフレーム率を設定し、ビデオのフレームレートを低減してビットレートを減らすことができます。

2.5.5.変換 - deinterlace

このオプションでエンコーディングの前にインターレースのあるビデオストリームからインタレースを取り除くことができます。

2.5.6.変換 - croptop

このオプションで変換中、元のビデオの上部を切り取ることができます。引数は切り取るビデオの行数です。

2.5.7.変換 - cropbottom

このオプションで元のビデオの下部を切り取ることができます。引数は切り取る最初のラインのY調整です。

2.5.8.変換 - cropleft

このオプションで変換中の元のビデオの左側を切り取ることができます。引数は切り取るビデオの列数です。

2.5.9.変換 - cropright

このオプションで、元のビデオの左側を切る取ることができます。引数は切り取る最初の列のX調整です。

2.5.10.変換 - scale

このオプションは変換中ビデオをリスケールする比率を設定できます。このオプションはストリームのビットレートを低減するのに特に有効になることができます。

2.5.11.変換 - width

このオプションでピクセル単位で変換されるビデオの幅を設定することができます。

2.5.12.変換 - height

このオプションでピクセル単位で変換するビデオの高さを設定することができます。

2.5.13.変換 - acodec

このオプションは変換する入力ストリームのオーディオ・トラックのコーデックを設定します。
利用可能なコーデックのリストはストリーミング機能のページで調べることができます。
streaming features page:
http://www.videolan.org/streaming/features.html

2.5.14.変換 - ab

このオプションでkbit/s単位で変換するオーディオストリームのビットレートを設定できます。

2.5.15.変換 - aenc

これで、オーディオ・ストリームをエンコードするのに用いるエンコーダーを設定できます。利用可能なオプションは次のとおりです:

・ffmpeg: これはlibavcodecエンコード・モジュールです。大変幅広いさまざまなコーデックを扱います(そのリストはストリーミング機能のページで調べることができます)。
streaming features page:
http://www.videolan.org/streaming/features.html
・vorbis. このモジュールはXiph.orgプロジェクトのvorbisエンコーダーを使用します。vorbisは無料でオープンソースのライセンスフリーの非可逆オーディオコーデックです。

アイテムのオプションは次のとおりです:

・・quality=< quality level> デフォルトのCBR(固定ビットレート)でエンコードする代わりにVBR(可変ビットレート)を使うことができ、そして

音質レベル(1から10、高いほうが高音質)を設定します:

・・max-bitrate=< bitrate in kbit/s> vbrエンコードの最大ビットレートを設定できます;
 ・min-bitrate=< bitrate in kbit/s> vbrエンコードの最小ビットレートを設定できます;
 ・cbr cbrエンコードを強制します。
 ・speex. これでXiph.orgのsoeexエンコーダーを使用します。Speexは非可逆オーディオ・コーデックで、非常に低いビットレート(約10kbit/s)、特にビデオ会議に最適です。

2.5.16.変換 - samplerate

このオプションでHz単位で変換するオーディオ・ストリームのサンプルレートを設定できます。サンプルレートの低減は、出力するオーディオ・ストリームのビットレートを小さくする方法となります。

2.5.17.変換 - channels

このオプションで、出力するオーディオ・ストリームのチャンネル数を設定できます。これは2チャンネル以上をサポートしない低ビットレートのオーディオ・ストリームのコーデックに役立ちます。

2.5.18.変換 - scodec

このオプションで、変換する入力ストリームの字幕トラックのフォーマットを設定します。
利用可能なコーデックのリストはストリーミング機能のページで調べることができます。
streaming features page:
http://www.videolan.org/streaming/features.html

2.5.19.変換 - senc

これで、字幕ストリームをエンコードするのに使うコンバーターを設定します。
現在われわれが使用できる字幕エンコーダーはdvdsubだけです。

2.5.20.変換 - soverlay

このオプションで変換中、ビデオに直接字幕をレンダリングできます。字幕の変換とそのストリームを行うsenc/scodeとこのオプションを混同しないでください。

2.5.21.変換 - sfilter

このオプションでビデオの上に、いわゆる字幕フィルター(すなわち、ロゴ、テキスト文章など)で生成される画像をレンダリングすることができます。
利用可能な字幕フィルターのリストは[http://www.videolan.org/streaming/features.html のストリーミング機能のページ]で調べることができます(改善希望?)。 このモジュールのアイテムのぷしょんはつぎのコマンドを使って端末で調べることができます:

% vlc -p --advanced < module name>

2.5.22.変換 - threads

このオプションで、ストリーミングをエンコードするのに使うスレッド数を設定できます。コンピュータのプロセッサー数に合わせることで(あるいはIntel P4 HTプロセッサーではこの数を倍にして)、変換のパフォーマンスを改善できます。

2.5.23.変換 - audio-sync

このオプションが可能な場合、VLCはオーディオ・トラックにビデオトラックを同期するためビデオ・フレームを落としたり、重複させたりします。

2.5.24.transcode - vfilter

変換処理中、ビデオフィルターを使用します。vfilterのパラメーターはVLCフィルターの上級使用で調べることができます。
Advanced Use of VLC Filters:
http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Filters

使用例

vlc input_file --sout="#transcode{vfilter=adjust{gamma=1.5},vcodec=theo,vb=2000,scale=0.67,acodec=vorb,ab=128,channels=2}:standard{access=file,mux=ogg,dst="output_file.ogg"}"

これは"input_file"のガンマを1.5に調整し、ビデオサイズ(解像度)を0.67にリサイズし(例えば1080x720を720x480に)、ビットレート2000k/sでTheoraコーデックを使いビデオを、128kb/sでVorbisコーデックを使ってコンバートし、Oggコンテナーにビデオとオーディオをカプセル化し、”output_file.ogg"に保存します。

2.6.デュプリケート

このモジュールはストリームを重複させるのに使うことができ、いくつかの異なるチェーンで処理するように出来ます。
利用可能なオプションは次のとおりです:

2.6.1.デュプリケート - dst

このオプションで、多重化されたストリームを処理するためのチェーンを作ります。

注:dstオプションはストリームを実際多重化するのと同じ重複ブロックで使用しなければなりません。以前に記述したストリーム出力モジュールのいずれもこのオプションのパラメーターとしても使用できます。

2.6.2.デュプリケート - select

このオプションが全ストリームの一部の要素ストリームだけを多重化するのに使用できます。コンマで区切ることで、いくつかの基準を与えることができます。パラメーターを必要とする基準には、esやprogramのように、criteria=num_start-num_endのシンタックスを使って、範囲を
設定することができます。

利用可能なパラメーターは次のとおりです:

・program=: 選択したプログラム(あるいはSID)に属する要素ストリームだけ多重化します。これはMPEG2/TSストリームの場合だけ有効です。
・noprogram=: 選択したプログラム(あるいはPID)に属する要素ストリームを多重化しません。このオプションはMPEG2/TSストリームの場合だけ有効です。
・es=: 選択したidの要素ストリーム(es)だけ多重化します。
・noes=: 選択したidの要素ストリーム(es)を多重化しません。
・video: ビデオの要素ストリームだけを多重化します。
・novideo: ビデオ要素ストリームを多重化しません。
・audio: オーディオ要素ストリームだけを多重化します。
・noaudio: オーディオ要素ストリームを多重化しません。
・spu: 字幕要素ストリームだけを多重化します。
・nospu: 字幕要素ストリームを多重化しません。

使用例:

#duplicate{dst=std{...},select="program=100-200,novideo"}

この多重化チェーンはPIDが100から200までのプログラムに属する非ビデオ要素ストリームだけを出力します。

2.7.その他

いくつかの追加的汎用オプションは次のとおりです:

・--sout-all, --no-sout-all: すべてのESのストリーミングができるようにします(デフォルトでは不能)。デフォルトでは、(最初の)VLCはひとつのオーディオESとひとつのビデオのストリーミングESだけをストリームします。sout-allを可能にすると、すべてのES(audio、video、SPU)がストリームされます。
・--sout-keep, --no-sout-keep: soutをオープンのままにします(デフォルトでは不能):可能なら、さまざまなプレイリストのアイテムで同じsoutインスタンスを使用します。
・--no-sout-audio: このオプションで、出力されたストリームのオーディオを不能にすることができます。
・--no-sout-video: このオプションで、出力されたストリームのビデオを不能にすることができます。

2.8.単純なシンタックス

ストリーム出力は単純化されたシンタックスを提供します。それで標準モジュールの主要なオプションだけを使用すようにすることができます:

% vlc input_stream --sout access/mux://url

access、mux、urlは標準モジュールのオプションで規定されます。

3.サンプル

VLCのストリーム出力の複雑なシンタックスを完全に理解するには、次節のサンプルを見てください。

posted by Kose at 20:09| VLC Media Player