これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ffmpeg-protocols です。
プログラム:
NAME
ffmpeg-protocols - FFmpeg プロトコル
DESCRIPTION
この文書では、libavformat によって提供される入出力プロトコルについて説明します。
としょうかん。
プロトコル
プロトコルはFFmpegで構成された要素であり、必要なリソースへのアクセスを可能にします
特定のプロトコル。
FFmpegビルドを設定すると、サポートされているすべてのプロトコルがデフォルトで有効になります。
構成オプション「--list-protocols」を使用して、使用可能なすべてのものをリストできます。
構成オプション「--disable-protocols」を使用してすべてのプロトコルを無効にできます。
オプション「--enable-protocol =」を使用してプロトコルを選択的に有効にしますプロトコル"、またはあなたができる
オプション「--disable-protocol =」を使用して特定のプロトコルを無効にしますプロトコル".
ff *ツールのオプション「-protocols」は、サポートされているプロトコルのリストを表示します。
現在利用可能なプロトコルの説明は次のとおりです。
非同期
入力ストリームの非同期データ入力ラッパー。
バックグラウンドスレッドにデータを入力して、I / O操作をdemuxスレッドから切り離します。
非同期:
非同期:http://host/resource
async:cache:http://host/resource
ブルーレイ
BluRayプレイリストを読みます。
受け入れられるオプションは次のとおりです。
角度
ブルーレイアングル
章
チャプターを開始(1 ... N)
プレイリスト
読み取るプレイリスト(BDMV / PLAYLIST / ?????。mpls)
例:
/ mnt / blurayにマウントされたBluRayから最長のプレイリストを読み取ります。
ブルーレイ:/ mnt /ブルーレイ
/ mnt / BlurayにマウントされたBluRayからプレイリスト2の角度4を読み取り、第2章から開始します。
-プレイリスト4-角度2-第2章ブルーレイ:/ mnt /ブルーレイ
キャッシュ
入力ストリームのキャッシングラッパー。
入力ストリームを一時ファイルにキャッシュします。 ライブストリームにシーク機能をもたらします。
キャッシュ:
連結
物理的な連結プロトコル。
ユニークなリソースであるかのように、多くのリソースを順番に読んで探します。
このプロトコルで受け入れられるURLの構文は次のとおりです。
concat: | | ... |
コラボレー URL1, URL2……、 URLN 連結されるリソースのURLであり、それぞれが
おそらく別個のプロトコルを指定します。
たとえば、一連のファイルを読み取る場合 分割1.mpeg, 分割2.mpeg, 分割3.mpeg 再生する
次のコマンドを使用します。
ffplay concat:split1.mpeg \ | split2.mpeg \ | split3.mpeg
文字「|」をエスケープする必要がある場合があることに注意してくださいこれは多くのシェルにとって特別です。
クリプト
AESで暗号化されたストリーム読み取りプロトコル。
受け入れられるオプションは次のとおりです。
キー 指定されたXNUMX進表現からAES復号化キーのバイナリブロックを設定します。
iv 指定されたXNUMX進数からAES復号化初期化ベクトルバイナリブロックを設定します
表現。
受け入れられるURL形式:
暗号:
crypto +
データ
URIのインラインデータ。 見るhttp://en.wikipedia.org/wiki/Data_URI_scheme>.
たとえば、インラインで指定されたGIFファイルを変換するには ffmpeg:
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
file
ファイルアクセスプロトコル。
ファイルからの読み取りまたはファイルへの書き込み。
ファイルURLの形式は次のとおりです。
ファイル:
コラボレー ファイル名 読み取るファイルのパスです。
プロトコルプレフィックスを持たないURLは、ファイルURLと見なされます。 応じて
ビルド、先頭にドライブ文字が付いたWindowsパスのようなURL
また、ファイルURLであると見なされます(通常、UNIXライクのビルドではそうではありません)
システム)。
たとえば、ファイルから読み取るには 入力.mpeg ffmpeg 次のコマンドを使用します。
ffmpeg -i file:input.mpeg output.mpeg
このプロトコルは、次のオプションを受け入れます。
切り詰める
1に設定されている場合、書き込み時に既存のファイルを切り捨てます。値0は、切り捨てを防ぎます。
デフォルト値は1です。
ブロック化する
I / O操作の最大ブロックサイズをバイト単位で設定します。 デフォルト値は「INT_MAX」で、これは
その結果、要求されたブロックサイズが制限されません。 この値を適度に低く設定する
ユーザー終了要求の反応時間を改善します。これは、低速のファイルに役立ちます。
中。
FTP
FTP(ファイル転送プロトコル)。
FTPプロトコルを使用して、リモートリソースからの読み取りまたはリモートリソースへの書き込み。
次の構文が必要です。
ftp:// [user [:password] @] server [:port] /path/to/remote/resource.mpeg
このプロトコルは、次のオプションを受け入れます。
タイムアウト
基になる低レベルで使用されるソケットI / O操作のマイクロ秒単位でタイムアウトを設定します
手術。 デフォルトでは-1に設定されています。これは、タイムアウトが指定されていないことを意味します。
ftp-匿名-パスワード
匿名ユーザーとしてログインするときに使用されるパスワード。 通常、電子メールアドレスは次のようになります。
中古。
ftp 書き込みシーク可能
エンコード中の接続のシークアビリティを制御します。 1に設定すると、リソースは
シーク可能であると想定され、0に設定されている場合、シーク可能ではないと見なされます。 デフォルト値
0です。
注:プロトコルは出力として使用できますが、特別な場合を除いて、使用しないことをお勧めします
注意が払われます(テスト、カスタマイズされたサーバー構成など)。 異なるFTPサーバーが動作します
シーク操作中は別の方法で。 ff *ツールは、次の理由により不完全なコンテンツを生成する場合があります
サーバーの制限。
ゴーファー
Gopherプロトコル。
hls
Apple HTTP LiveStreamingに準拠したセグメント化されたストリームを統一されたものとしてお読みください。 M3U8
セグメントを説明するプレイリストは、リモートHTTPリソースまたはローカルファイルであり、アクセスできます
標準のファイルプロトコルを使用します。 ネストされたプロトコルは、「+プロト"
hls URIスキーム名の後、ここで プロト 「ファイル」または「http」のいずれかです。
hls +http://host/path/to/remote/resource.m3u8
hls + file://path/to/local/resource.m3u8
このプロトコルを使用することはお勧めしません-hlsdemuxerも同様に機能するはずです(そうでない場合)
問題を報告してください)そしてより完全です。 代わりにhlsdemuxerを使用するには、単に
m3u8ファイルへの直接URLを使用します。
HTTP
HTTP(ハイパーテキスト転送プロトコル)。
このプロトコルは、次のオプションを受け入れます。
シーク可能
接続のシーカビリティを制御します。 1に設定すると、リソースは次のようになります。
シーク可能。0に設定するとシーク可能ではないと見なされ、-1に設定するとシーク可能になります。
シーク可能かどうかを自動検出します。 デフォルト値は-1です。
チャンクポスト
1に設定すると、投稿にチャンク転送エンコーディングを使用します。デフォルトは1です。
content_type
POSTメッセージに特定のコンテンツタイプを設定します。
ヘッダーの
カスタムHTTPヘッダーを設定し、組み込みのデフォルトヘッダーを上書きできます。 値は
ヘッダーをエンコードする文字列。
複数のリクエスト
1に設定されている場合は、持続的接続を使用します。デフォルトは0です。
ポストデータ
カスタムHTTPPOSTデータを設定します。
ユーザーエージェント
USER_AGENT
User-Agentヘッダーをオーバーライドします。 指定しない場合、プロトコルは文字列を使用します
libavformatビルドについて説明します。 ( "Lavf / ")
タイムアウト
基になる低レベルで使用されるソケットI / O操作のマイクロ秒単位でタイムアウトを設定します
手術。 デフォルトでは-1に設定されています。これは、タイムアウトが指定されていないことを意味します。
mime_type
MIMEタイプをエクスポートします。
冷たい 1に設定されている場合、サーバーからICY(SHOUTcast)メタデータを要求します。 サーバーがサポートしている場合
これは、メタデータをアプリケーションが読み取ることによって取得する必要があります
icy_metadata_headers と icy_metadata_packet オプション。 デフォルトは1です。
icy_metadata_headers
サーバーがICYメタデータをサポートしている場合、これにはICY固有のHTTP応答が含まれます
改行文字で区切られたヘッダー。
icy_metadata_packet
サーバーがICYメタデータをサポートしている場合、および 冷たい 1に設定されました。これには、最後の非
サーバーから送信された空のメタデータパケット。 定期的にポーリングする必要があります
ミッドストリームメタデータの更新に関心のあるアプリケーション。
クッキー
今後のリクエストで送信されるCookieを設定します。 各Cookieの形式は同じです
Set-CookieHTTP応答フィールドの値として。 複数のCookieは次のように区切ることができます
改行文字。
オフセット
初期バイトオフセットを設定します。
終了オフセット
リクエストをこのオフセットの前のバイトに制限してみてください。
方法
クライアントオプションとして使用すると、リクエストのHTTPメソッドを設定します。
サーバーオプションとして使用すると、
クライアント。 期待されるHTTPメソッドと受信されたHTTPメソッドがクライアントと一致しない場合
BadRequest応答が返されます。 設定を解除すると、HTTPメソッドはチェックされません
今。 これは、将来的に自動検出に置き換えられる予定です。
聞く
1に設定すると、実験的なHTTPサーバーが有効になります。 これは、使用時にデータを送信するために使用できます
出力オプションとして、または入力として使用される場合はHTTPPOSTを使用してクライアントからデータを読み取ります
オプション。 2に設定すると、実験的なマルチクライアントHTTPサーバーが有効になります。 これはまだです
ffmpeg.cまたはffserver.cで実装されているため、コマンドラインとして使用しないでください
オプションを選択します。
#サーバー側(送信):
ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http:// :
#クライアント側(受信):
ffmpeg -i http:// : -csomefile.oggをコピーします
#クライアントはwgetでも実行できます:
wget http:// : -O somefile.ogg
#サーバー側(受信):
ffmpeg -listen 1 -i http:// : -csomefile.oggをコピーします
#クライアント側(送信):
ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http:// :
#クライアントはwgetでも実行できます:
wget --post-file = somefile.ogg http:// :
HTTP クッキー(Cookie)について
一部のHTTPリクエストは、Cookie値がリクエストとともに渡されない限り拒否されます。 The
クッキー オプションを使用すると、これらのCookieを指定できます。 少なくとも、各Cookieは
パスとドメインとともに値を指定します。 両方のドメインに一致するHTTPリクエスト
パスには、HTTPCookieヘッダーフィールドにCookie値が自動的に含まれます。
複数のCookieは改行で区切ることができます。
Cookieを指定してストリームを再生するために必要な構文は次のとおりです。
ffplay -cookies "nlqptid = nltid = tsn; path = /; domain = somedomain.com;" http://somedomain.com/somestream.m3u8
アイスキャスト
Icecastプロトコル(Icecastサーバーへのストリーム)
このプロトコルは、次のオプションを受け入れます。
氷のジャンル
ストリームのジャンルを設定します。
氷の名前
ストリーム名を設定します。
氷の説明
ストリームの説明を設定します。
アイスURL
ストリームWebサイトのURLを設定します。
アイスパブリック
ストリームを公開するかどうかを設定します。 デフォルトは0(公開されていません)です。
USER_AGENT
User-Agentヘッダーをオーバーライドします。 指定されていない場合は、「Lavf /」の形式の文字列「」
使用されます。
password
Icecastマウントポイントのパスワードを設定します。
content_type
ストリームコンテンツタイプを設定します。 audio / mpegと異なる場合は、これを設定する必要があります。
legend_icecast
これにより、HTTPPUTをサポートしないIcecastバージョン<2.4.0のサポートが有効になります
メソッドですが、SOURCEメソッドです。
icecast:// [ [: ] @] : /
mmst
TCPを介したMMS(Microsoft Media Server)プロトコル。
うーん
HTTPを介したMMS(Microsoft Media Server)プロトコル。
必要な構文は次のとおりです。
mmsh:// [: ] [/ ] [/ ]
md5
MD5出力プロトコル。
書き込まれるデータのMD5ハッシュを計算し、閉じるとこれを
指定された出力または指定されていない場合はstdout。 それはなしでマルチプレクサをテストするために使用することができます
実際のファイルを書き込む。
以下にいくつかの例を示します。
#エンコードされたAVIファイルのMD5ハッシュをファイルoutput.avi.md5に書き込みます。
ffmpeg -i input.flv -f avi -y md5:output.avi.md5
#エンコードされたAVIファイルのMD5ハッシュをstdoutに書き込みます。
ffmpeg -i input.flv -f avi -y md5:
一部の形式(通常はMOV)では、出力プロトコルがシーク可能である必要があるため、
MD5出力プロトコルで失敗します。
パイプ
UNIXパイプアクセスプロトコル。
UNIXパイプからの読み取りと書き込み。
受け入れられる構文は次のとおりです。
パイプ:[ ]
数 パイプのファイル記述子に対応する番号です(たとえば、stdinの場合は0、1
stdoutの場合、stderrの場合は2)。 もしも 数 は指定されていません。デフォルトでは、stdoutファイルです。
記述子は書き込みに使用され、stdinは読み取りに使用されます。
たとえば、stdinから読み取るには ffmpeg:
cat test.wav | ffmpeg -i pipe:0
#...これは...と同じです
cat test.wav | ffmpeg -iパイプ:
stdoutへの書き込み用 ffmpeg:
ffmpeg -i test.wav -f avi pipe:1 | 猫> test.avi
#...これは...と同じです
ffmpeg -i test.wav -f aviパイプ:| 猫> test.avi
このプロトコルは、次のオプションを受け入れます。
ブロック化する
I / O操作の最大ブロックサイズをバイト単位で設定します。 デフォルト値は「INT_MAX」で、これは
その結果、要求されたブロックサイズが制限されません。 この値を適度に低く設定する
ユーザーの終了要求の反応時間を改善します。これは、データの場合に役立ちます
送信が遅い。
一部の形式(通常はMOV)では、出力プロトコルがシーク可能である必要があることに注意してください。
それらはパイプ出力プロトコルで失敗します。
rtmp
リアルタイムメッセージングプロトコル。
リアルタイムメッセージングプロトコル(RTMP)は、マルチメディアコンテンツを
TCP / IPネットワーク。
必要な構文は次のとおりです。
rtmp:// [ : @] [: ] [/ ] [/ ] [/ ]
受け入れられるパラメータは次のとおりです。
ユーザ名
オプションのユーザー名(主に公開用)。
password
オプションのパスワード(主に公開用)。
RTMPサーバーのアドレス。
ポート
使用するTCPポートの番号(デフォルトは1935)。
アプリ アクセスするアプリケーションの名前です。 これは通常、次のパスに対応します
アプリケーションがRTMPサーバーにインストールされている(例: /オンデマンド/, / flash / live /など)。
「rtmp_app」オプションを使用して、URIから解析された値をオーバーライドすることもできます。
プレイパス
これは、アプリケーションを参照して再生するリソースのパスまたは名前です。
で指定 アプリ、接頭辞「mp4:」を付けることができます。 から解析された値をオーバーライドできます
「rtmp_playpath」オプションを介したURIも。
聞く
サーバーとして機能し、着信接続をリッスンします。
タイムアウト
着信接続を待機する最大時間。 リッスンを意味します。
さらに、次のパラメータは、コマンドラインオプションを介して(またはコードを介して)設定できます。
"AVOption" s):
rtmp_app
RTMPサーバーに接続するアプリケーションの名前。 このオプションはパラメータを上書きします
URIで指定されます。
rtmp_buffer
クライアントのバッファ時間をミリ秒単位で設定します。 デフォルトは3000です。
rtmp_conn
文字列から解析された、たとえば「B:1」のような追加の任意のAMF接続パラメータ
S:authMe O:1 NN:code:1.23 NS:flag:ok O:0 "。各値の前には、単一の値が付いています。
タイプを表す文字、ブール値を表すB、数値を表すN、文字列を表すS、オブジェクトを表すO、
またはヌルの場合はZ、その後にコロンが続きます。 ブール値の場合、データは0または1のいずれかである必要があります。
それぞれFALSEまたはTRUE。 同様に、オブジェクトの場合、データは0または1で終了する必要があります。
それぞれオブジェクトを開始します。 サブオブジェクトのデータ項目には、接頭辞を付けることで名前を付けることができます。
'N'を入力し、値の前に名前を指定します(つまり、 "NB:myFlag:1")。 これ
オプションを複数回使用して、任意のAMFシーケンスを作成できます。
rtmp_flashver
SWFプレーヤーの実行に使用されるFlashプラグインのバージョン。 デフォルトはLNX9,0,124,2です。
(公開時のデフォルトはFMLE / 3.0(互換性あり; )。)
rtmp_flush_interval
同じリクエストでフラッシュされたパケットの数(RTMPTのみ)。 デフォルトは10です。
rtmp_live
メディアがライブストリームであることを指定します。 ライブストリームで再開したり探したりすることはできません
可能。 デフォルト値は「any」です。これは、サブスクライバーが最初に再生を試みることを意味します
プレイパスで指定されたライブストリーム。 その名前のライブストリームが見つからない場合は、
記録されたストリームを再生します。 他の可能な値は「live」と「recorded」です。
rtmp_pageurl
メディアが埋め込まれたWebページのURL。 デフォルトでは、値は送信されません。
rtmp_playpath
再生または公開するストリーム識別子。 このオプションは、指定されたパラメーターをオーバーライドします
URIで。
rtmp_subscribe
購読するライブストリームの名前。 デフォルトでは、値は送信されません。 それだけです
オプションが指定されている場合、またはrtmp_liveがliveに設定されている場合に送信されます。
rtmp_swfhash
解凍されたSWFファイルのSHA256ハッシュ(32バイト)。
rtmp_swfsize
SWFVerificationに必要な解凍されたSWFファイルのサイズ。
rtmp_swfurl
メディアのSWFプレーヤーのURL。 デフォルトでは、値は送信されません。
rtmp_swfverify
プレーヤーのswfファイルへのURL。ハッシュ/サイズを自動的に計算します。
rtmp_tcurl
ターゲットストリームのURL。 デフォルトはproto:// host [:port] / appです。
たとえば、 再生する アプリケーションからの「サンプル」という名前のマルチメディアリソース
RTMPサーバー「myserver」からの「vod」:
ffplay rtmp:// myserver / vod / sample
パスワードで保護されたサーバーに公開するには、プレイパスとアプリの名前を別々に渡します。
ffmpeg -re -i -f flv -rtmp_playpath some / long / path -rtmp_app long / app / name rtmp:// username:password @ myserver /
RTMPE
暗号化されたリアルタイムメッセージングプロトコル。
暗号化リアルタイムメッセージングプロトコル(RTMPE)は、マルチメディアのストリーミングに使用されます
Diffie-Hellman鍵で構成される、標準の暗号化プリミティブ内のコンテンツ
交換とHMACSHA256、RC4キーのペアを生成します。
rtmp
安全なSSL接続を介したリアルタイムメッセージングプロトコル。
リアルタイムメッセージングプロトコル(RTMPS)は、マルチメディアコンテンツをストリーミングするために使用されます
暗号化された接続。
rtmpt
HTTPを介してトンネリングされたリアルタイムメッセージングプロトコル。
HTTP(RTMPT)を介してトンネリングされたReal-Time MessagingProtocolがストリーミングに使用されます
ファイアウォールを通過するHTTPリクエスト内のマルチメディアコンテンツ。
RTMPTE
HTTPを介してトンネリングされた暗号化されたリアルタイムメッセージングプロトコル。
HTTPを介してトンネリングされた暗号化リアルタイムメッセージングプロトコル(RTMPTE)は、
ファイアウォールを通過するHTTPリクエスト内のマルチメディアコンテンツのストリーミング。
rtmpt
HTTPSを介してトンネリングされたリアルタイムメッセージングプロトコル。
HTTPS(RTMPTS)を介してトンネリングされたReal-Time MessagingProtocolがストリーミングに使用されます
ファイアウォールを通過するHTTPS要求内のマルチメディアコンテンツ。
libsmbクライアント
libsmbclientを使用すると、CIFS / SMBネットワークリソースを操作できます。
次の構文が必要です。
smb:// [[domain:] user [:password @]] server [/ share [/ path [/ file]]]
このプロトコルは、次のオプションを受け入れます。
タイムアウト
基になる低レベルで使用されるソケットI / O操作のミリ秒単位でタイムアウトを設定します
手術。 デフォルトでは-1に設定されています。これは、タイムアウトが指定されていないことを意味します。
切り詰める
1に設定されている場合、書き込み時に既存のファイルを切り捨てます。値0は、切り捨てを防ぎます。
デフォルト値は1です。
workgroup
接続に使用するワークグループを設定します。 デフォルトでは、ワークグループは指定されていません。
詳細については、以下を参照してください。http://www.samba.org/>.
libsh
libsshを介した安全なファイル転送プロトコル
SFTPプロトコルを使用して、リモートリソースからの読み取りまたはリモートリソースへの書き込み。
次の構文が必要です。
sftp:// [user [:password] @] server [:port] /path/to/remote/resource.mpeg
このプロトコルは、次のオプションを受け入れます。
タイムアウト
基になる低レベル操作で使用されるソケットI / O操作のタイムアウトを設定します。 に
デフォルトでは-1に設定されています。これは、タイムアウトが指定されていないことを意味します。
切り詰める
1に設定されている場合、書き込み時に既存のファイルを切り捨てます。値0は、切り捨てを防ぎます。
デフォルト値は1です。
秘密鍵
認証時に使用する秘密鍵を含むファイルのパスを指定します。 に
デフォルトのlibsshは、 〜/ .ssh / ディレクトリにあります。
例:リモートサーバーに保存されているファイルを再生します。
ffプレイftp:// user:password @ server_address:22 / home / user / resource.mpeg
librtmp rtmp、 rtmpe、 rtmps、 rtmpt、 RTMPTE
librtmpを介してサポートされるリアルタイムメッセージングプロトコルとそのバリアント。
構成中にlibrtmpヘッダーとライブラリーが存在する必要があります。 必要がある
「--enable-librtmp」を使用してビルドを明示的に構成します。 有効にすると、これが置き換えられます
ネイティブRTMPプロトコル。
このプロトコルは、サポートに必要なほとんどのクライアント機能といくつかのサーバー機能を提供します
RTMP、HTTPでトンネリングされたRTMP(RTMPT)、暗号化されたRTMP(RTMPE)、SSL / TLSを介したRTMP(RTMPS)、および
これらの暗号化されたタイプのトンネリングされたバリアント(RTMPTE、RTMPTS)。
必要な構文は次のとおりです。
:// [: ] [/ ] [/ ]
コラボレー rtmp_proto 文字列「rtmp」、「rtmpt」、「rtmpe」、「rtmps」、「rtmpte」、
各RTMPバリアントに対応する「rtmpts」、および , ポート, アプリ と プレイパス 持っています
RTMPネイティブプロトコルに指定されているのと同じ意味です。 オプション スペースのリストが含まれています-
フォームの個別のオプション キー=ヴァル.
詳細については、librtmpのマニュアルページ(man 3 librtmp)を参照してください。
たとえば、を使用してファイルをRTMPサーバーにリアルタイムでストリーミングするには ffmpeg:
ffmpeg -re -i myfile -f flv rtmp:// myserver / live / mystream
を使用して同じストリームを再生するには 再生する:
ffplay "rtmp:// myserver / live / mystream live = 1"
RTP
リアルタイムトランスポートプロトコル。
RTP URLに必要な構文は次のとおりです。rtp://hostname[:ポート] [?オプション=ヴァル...]
ポート 使用するRTPポートを指定します。
次のURLオプションがサポートされています。
ttl =n
TTL(Time-To-Live)値を設定します(マルチキャストのみ)。
rtcpport =n
リモートRTCPポートをに設定します n.
localrtpport =n
ローカルRTPポートをに設定します n.
localrtcpport =n'
ローカルRTCPポートをに設定します n.
pkt_size =n
最大パケットサイズ(バイト単位)をに設定します n.
connect = 0 | 1
UDPソケット(1に設定されている場合)で「connect()」を実行するか、実行しない(0に設定されている場合)。
ソース=ip[,ip]
許可された送信元IPアドレスを一覧表示します。
ブロック=ip[,ip]
許可されていない(ブロックされている)送信元IPアドレスを一覧表示します。
write_to_source = 0 | 1
最後に受信したパケットの送信元アドレス(1に設定されている場合)または
デフォルトのリモートアドレス(0に設定されている場合)。
localport =n
ローカルRTPポートをに設定します n.
これは非推奨のオプションです。 その代わり、 ローカルRTポート 使用すべきです。
重要な注意事項:
1。 もし rtcpポート が設定されていない場合、RTCPポートはRTPポート値に1を加えた値に設定されます。
2。 もし ローカルRTポート (ローカルRTPポート)が設定されていない使用可能なポートが使用されます
ローカルRTPおよびRTCPポート。
3。 もし ローカルRTCPポート (ローカルRTCPポート)が設定されていない場合は、ローカルRTPポートに設定されます
値プラス1。
RTSP
リアルタイムストリーミングプロトコル。
RTSPは、技術的にはlibavformatのプロトコルハンドラーではなく、demuxerおよびmuxerです。 The
demuxerは、通常のRTSP(RTPを介して転送されるデータを使用)の両方をサポートします。これは、たとえば次のように使用されます。
AppleおよびMicrosoft)およびReal-RTSP(RDTを介して転送されたデータを使用)。
マルチプレクサを使用して、RTSPANNOUNCEを使用してストリームをサポートしているサーバーに送信できます。
(現在、Darwin StreamingServerとMischaSpiegelmockの
<https://github.com/revmischa/rtsp-server>)。
RTSPURLに必要な構文は次のとおりです。
rtsp:// [: ] /
オプションはで設定することができます ffmpeg/再生する コマンドライン、または「AVOption」またはでコードに設定
「avformat_open_input」。
次のオプションがサポートされています。
初期_一時停止
1に設定されている場合は、ストリームの再生をすぐに開始しないでください。デフォルト値は0です。
rtsp_transport
RTSPトランスポートプロトコルを設定します。
次の値を受け入れます。
UDP 下位のトランスポートプロトコルとしてUDPを使用します。
TCP 下位トランスポートとしてTCP(RTSP制御チャネル内でインターリーブ)を使用する
プロトコル。
udp_マルチキャスト
下位のトランスポートプロトコルとしてUDPマルチキャストを使用します。
HTTP
通過するのに役立つ下位トランスポートプロトコルとしてHTTPトンネリングを使用する
プロキシ。
複数の下位トランスポートプロトコルを指定できます。その場合、それらはXNUMXつ試されます。
一度に(XNUMXつのセットアップが失敗した場合、次のセットアップが試行されます)。 マルチプレクサの場合、
TCP と UDP オプションがサポートされています。
rtsp_flags
RTSPフラグを設定します。
次の値が受け入れられます。
フィルターソース
ネゴシエートされたピアアドレスとポートからのパケットのみを受け入れます。
聞く
サーバーとして機能し、着信接続をリッスンします。
優先_tcp
TCPがRTSPRTPトランスポートとして使用できる場合は、最初にRTPトランスポートにTCPを試してください。
デフォルト値は なし.
allowed_media_types
サーバーから受け入れるメディアタイプを設定します。
次のフラグが受け入れられます。
ビデオ
オーディオ
データ
デフォルトでは、すべてのメディアタイプを受け入れます。
min_port
最小ローカルUDPポートを設定します。 デフォルト値は5000です。
最大ポート
最大ローカルUDPポートを設定します。 デフォルト値は65000です。
タイムアウト
着信接続を待機する最大タイムアウト(秒単位)を設定します。
-1の値は無限を意味します(デフォルト)。 このオプションは、 rtsp_flags に設定
聞く.
reorder_queue_size
並べ替えられたパケットを処理するためにバッファリングするパケット数を設定します。
タイムアウト
ソケットTCPI / Oタイムアウトをマイクロ秒単位で設定します。
ユーザーエージェント
User-Agentヘッダーをオーバーライドします。 指定しない場合、デフォルトでlibavformatになります
識別子文字列。
UDPを介してデータを受信する場合、デマルチプレクサは受信したパケットを並べ替えようとします(
順不同で到着したり、パケットが完全に失われたりする可能性があります)。 これは、設定することで無効にできます
ゼロへの最大デマックス遅延(AVFormatContextの「max_delay」フィールドを介して)。
マルチビットレートのReal-RTSPストリームを視聴する場合 再生する、表示するストリームは
「-vst」で選択 n および「-ast」 n それぞれビデオとオーディオ用で、オンに切り替えることができます
「v」と「a」を押してフライします。
例
次の例はすべて、 再生する と ffmpeg ツール。
・最大再注文遅延0.5秒で、UDPを介してストリームを視聴します。
ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
・HTTPを介してトンネリングされたストリームを監視します。
ffplay -rtsp_transport http rtsp://server/video.mp4
・他の人が視聴できるように、ストリームをRTSPサーバーにリアルタイムで送信します。
ffmpeg -re -i -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
・リアルタイムでストリームを受信します。
ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp
樹液
セッションアナウンスプロトコル(RFC2974)。 これは技術的にはプロトコルハンドラではありません
libavformat、それはマルチプレクサとデマルチプレクサです。 これは、RTPストリームのシグナリングに使用されます。
別のポートで定期的にストリームのSDPをアナウンスします。
ミュクサー
マルチプレクサに指定されたSAPURLの構文は次のとおりです。
sap:// [: ] [? ]
RTPパケットはに送信されます デスティネーション ポート上 ポート、またはポートがない場合はポート5004に
指定。 オプション 「&」で区切られたリストです。 次のオプションがサポートされています。
announce_addr =住所
アナウンスの送信先IPアドレスを指定します。 省略した場合、
アナウンスは、一般的に使用されるSAPアナウンスマルチキャストアドレスに送信されます
224.2.127.254(sap.mcast.net)、またはff0e :: 2:7ffeの場合 デスティネーション IPv6アドレスです。
アナウンスポート=ポート
アナウンスを送信するポートを指定します。指定しない場合、デフォルトは9875です。
ttl =TTL
アナウンスとRTPパケットの存続時間の値を指定します。デフォルトは255です。
same_port =0 | 1
1に設定すると、すべてのRTPストリームを同じポートペアで送信します。 ゼロ(デフォルト)の場合、すべて
ストリームは一意のポートで送信され、ポートの各ストリームは2よりも大きい番号になります。
前。 VLC / Live555では、ストリームを受信できるように、これを1に設定する必要があります。
受信用のlibavformatのRTPスタックでは、すべてのストリームを一意で送信する必要があります
ポート。
コマンドラインの例を次に示します。
VLCで視聴するために、ローカルサブネットでストリームをブロードキャストするには:
ffmpeg -re -i -f sap sap://224.0.0.255?same_port = 1
同様に、 再生する:
ffmpeg -re -i -f sap sap://224.0.0.255
そしてで見るために 再生する、IPv6経由:
ffmpeg -re -i -f sap sap:// [ff0e :: 1:2:3:4]
デミュクサー
デマルチプレクサに指定されたSAPURLの構文は次のとおりです。
sap:// [ ] [: ]
住所 アナウンスをリッスンするマルチキャストアドレスです。省略した場合、デフォルト
224.2.127.254(sap.mcast.net)が使用されます。 ポート リッスンされているポートです。
省略。
デマルチプレクサは、指定されたアドレスとポートでアナウンスをリッスンします。 一度
アナウンスが受信されると、その特定のストリームを受信しようとします。
コマンドラインの例を次に示します。
通常のSAPマルチキャストアドレスでアナウンスされた最初のストリームを再生するには:
ffplay sap://
デフォルトのIPv6SAPマルチキャストアドレスのXNUMXつでアナウンスされた最初のストリームを再生するには、次のようにします。
ffplay sap:// [ff0e :: 2:7ffe]
sctp
ストリーム制御伝送プロトコル。
受け入れられるURL構文は次のとおりです。
sctp:// : [? ]
プロトコルは次のオプションを受け入れます。
聞く
任意の値に設定されている場合は、着信接続をリッスンします。 発信接続はによって行われます
デフォルト。
最大ストリーム数
ストリームの最大数を設定します。 デフォルトでは、制限は設定されていません。
srtp
安全なリアルタイムトランスポートプロトコル。
受け入れられるオプションは次のとおりです。
srtp_in_suite
srtp_out_suite
入力および出力エンコーディングスイートを選択します。
サポートされている値:
AES_CM_128_HMAC_SHA1_80
SRTP_AES128_CM_HMAC_SHA1_80
AES_CM_128_HMAC_SHA1_32
SRTP_AES128_CM_HMAC_SHA1_32
srtp_in_params
srtp_out_params
base64でエンコードされたコードで表される入力および出力のエンコードパラメータを設定します
バイナリブロックの表現。 このバイナリブロックの最初の16バイトは次のように使用されます
マスターキー。次の14バイトがマスターソルトとして使用されます。
サブファイル
ファイルまたは別のストリームのセグメントを仮想的に抽出します。 基になるストリームは
シーク可能。
受け入れられるオプション:
start
抽出されたセグメントの開始オフセット(バイト単位)。
end 抽出されたセグメントの終了オフセット(バイト単位)。
例:
DVD VOBファイルからチャプターを抽出します(外部で取得した開始セクターと終了セクター、および
2048を掛けたもの):
サブファイル,, start、153391104、end、268142592 ,,:/ media / dvd / VIDEO_TS / VTS_08_1.VOB
TARアーカイブから直接AVIファイルを再生します。
サブファイル,, start、183241728、end、366490624 ,,:archive.tar
TCP
伝送制御プロトコル。
TCPURLに必要な構文は次のとおりです。
tcp:// : [? ]
オプション フォームの&で区切られたオプションのリストが含まれています キー=ヴァル.
サポートされているオプションのリストは次のとおりです。
listen =1 | 0
着信接続をリッスンします。 デフォルト値は0です。
タイムアウト=マイクロ秒
マイクロ秒単位で表される、発生エラータイムアウトを設定します。
このオプションは、読み取りモードにのみ関連します。この時間以上にデータが到着しなかった場合
間隔、エラーを発生させます。
listen_timeout =ミリ秒
ミリ秒単位で表されるリッスンタイムアウトを設定します。
次の例は、リスニングTCP接続をセットアップする方法を示しています。 ffmpegボタンの隣にある
その後、でアクセス 再生する:
ffmpeg -i -f tcp:// : ?聞く
ffplay tcp:// :
TLS
トランスポート層セキュリティ(TLS)/ Secure Sockets Layer(SSL)
TLS / SSLURLに必要な構文は次のとおりです。
tls:// : [? ]
次のパラメータは、コマンドラインオプションを介して(または「AVOption」を介してコードで)設定できます。
ca_file、 cafile =ファイル名
信頼できるものとして扱う認証局(CA)のルート証明書を含むファイル。 もしも
リンクされたTLSライブラリにはデフォルトが含まれているため、これを指定する必要がない場合があります。
検証は機能しますが、すべてのライブラリとセットアップにデフォルトが組み込まれているわけではありません。
ファイルはOpenSSLPEM形式である必要があります。
tls_verify =1 | 0
有効になっている場合は、通信しているピアを確認してみてください。 注意、使用する場合
OpenSSL、これは現在、ピア証明書が次のいずれかによって署名されていることを確認するだけです
CAデータベースのルート証明書ですが、
証明書は、実際に接続しようとしているホスト名と一致します。 (GnuTLSを使用すると、
ホスト名も検証されます。)
これは、CAデータベースがによって提供される必要があるため、デフォルトで無効になっています。
多くの場合、発信者。
cert_file、 cert =ファイル名
ピアとのハンドシェイクで使用する証明書を含むファイル。 (いつ
サーバーとして動作し、リッスンモードでは、これはピアによってより頻繁に必要になりますが、
クライアント証明書は、特定の設定でのみ義務付けられています。)
key_file、 キー=ファイル名
証明書の秘密鍵を含むファイル。
listen =1 | 0
有効になっている場合は、提供されたポートで接続をリッスンし、でサーバーの役割を引き受けます
クライアントロールの代わりにハンドシェイク。
コマンドラインの例:
入力ストリームを提供するTLS / SSLサーバーを作成します。
ffmpeg -i -f tls:// : ?listen&cert = &key =
を使用してTLS / SSLサーバーからストリームを再生するには 再生する:
ffplay tls:// :
UDP
ユーザーデータグラムプロトコル。
UDPURLに必要な構文は次のとおりです。
udp:// : [? ]
オプション フォームの&で区切られたオプションのリストが含まれています キー=ヴァル.
システムでスレッド化が有効になっている場合、循環バッファを使用して
着信データ。これにより、UDPソケットバッファのオーバーランによるデータの損失を減らすことができます。
この fifo_size と オーバーラン_非致命的 オプションはこのバッファに関連しています。
サポートされているオプションのリストは次のとおりです。
buffer_size =サイズ
UDPの最大ソケットバッファサイズをバイト単位で設定します。 これは、
ソケットの用途に応じて、受信または送信バッファサイズ。 デフォルトは
64KB。 も参照してください fifo_size.
localport =ポート
バインドするローカルUDPポートをオーバーライドします。
localaddr =addr
ローカルIPアドレスを選択します。 これは、たとえばマルチキャストを送信し、ホストが
複数のインターフェース。ユーザーは送信するインターフェースを選択できます。
そのインターフェイスのIPアドレスを指定します。
pkt_size =サイズ
UDPパケットのサイズをバイト単位で設定します。
再利用=1 | 0
UDPソケットの再利用を明示的に許可または禁止します。
ttl =TTL
存続時間の値を設定します(マルチキャストの場合のみ)。
connect =1 | 0
「connect()」でUDPソケットを初期化します。 この場合、宛先アドレス
後でff_udp_set_remote_urlで変更することはできません。 宛先アドレスが
最初に知られているように、このオプションはff_udp_set_remote_urlでも指定できます。 これ
getsocknameを使用してパケットの送信元アドレスを見つけることができ、
「destinationunreachable」を受信した場合、書き込みはAVERROR(ECONNREFUSED)で返されます。
受信の場合、これにより、指定されたパケットからのみパケットを受信できるという利点があります。
ピアアドレス/ポート。
ソース=住所[,住所]
指定された送信者IPのXNUMXつからマルチキャストグループに送信されたパケットのみを受信します
アドレス。
ブロック=住所[,住所]
指定された送信者IPアドレスからマルチキャストグループに送信されたパケットを無視します。
fifo_size =ユニット
サイズのあるパケットの数として表されるUDP受信循環バッファサイズを設定します
188バイトの。 指定しない場合、デフォルトは7*4096です。
overrun_nonfatal =1 | 0
UDPが循環バッファオーバーランを受信した場合に存続します。 デフォルト値は0です。
タイムアウト=マイクロ秒
マイクロ秒単位で表される、発生エラータイムアウトを設定します。
このオプションは、読み取りモードにのみ関連します。この時間以上にデータが到着しなかった場合
間隔、エラーを発生させます。
放送=1 | 0
UDPブロードキャストを明示的に許可または禁止します。
ブロードキャストストームのあるネットワークでは、ブロードキャストが正しく機能しない場合があることに注意してください
保護。
例
・ 使用する ffmpeg UDPを介してリモートエンドポイントにストリーミングするには:
ffmpeg -i -f udp:// :
・ 使用する ffmpeg 188サイズのUDPパケットを使用してUDP経由でmpegts形式でストリーミングするには、
大きな入力バッファ:
ffmpeg -i -f mpegts udp:// : ?pkt_size = 188&buffer_size = 65535
・ 使用する ffmpeg リモートエンドポイントからUDPを介して受信するには:
ffmpeg -i udp:// [ ]: ..。
UNIX
Unixローカルソケット
UnixソケットURLに必要な構文は次のとおりです。
unix://
次のパラメータは、コマンドラインオプションを介して(または「AVOption」を介してコードで)設定できます。
タイムアウト
タイムアウト(ミリ秒)。
聞く
リスニングモードでUnixソケットを作成します。
onworks.net サービスを使用してオンラインで ffmpeg プロトコルを使用する