これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ffmpeg-formats です。
プログラム:
NAME
ffmpeg-formats - FFmpeg フォーマット
DESCRIPTION
このドキュメントでは、
libavformat ライブラリ。
FORMAT OPTIONS
libavformatライブラリは、すべての
マルチプレクサとデマルチプレクサ。 さらに、各マルチプレクサまたはデマルチプレクサは、いわゆるプライベートをサポートする場合があります
そのコンポーネントに固有のオプション。
オプションは、-を指定して設定できます。オプション 値 FFmpegツールで、またはを設定することによって
「AVFormatContext」オプションで明示的に値を指定するか、 libavutil / opt.h のAPI
プログラムによる使用。
サポートされているオプションのリストは次のとおりです。
アビオフラグ フラグ (入出力)
可能な値:
直接
バッファリングを減らします。
プローブサイズ 整数 ( )
プローブサイズをバイト単位で設定します。つまり、ストリームを取得するために分析するデータのサイズです。
情報。 値を大きくすると、より多くの情報を検出できるようになります。
ストリームに分散されますが、遅延が増加します。 整数以上である必要があります
32よりも大きい。デフォルトでは5000000です。
パケットサイズ 整数 (出力)
パケットサイズを設定します。
フラグ フラグ (入出力)
フォーマットフラグを設定します。
可能な値:
イグニド
インデックスを無視します。
ファストシーク
一部のフォーマットでは、高速ですが不正確なシークを有効にします。
ジェントス
PTSを生成します。
ノフィリン
正確に計算できる欠落値を入力しないでください。
パースなし
AVParsersを無効にします。これにも「+ nofillin」が必要です。
無視する
DTSを無視します。
破損した破棄
破損したフレームを破棄します。
並べ替え
DTSによって出力パケットをインターリーブしてみてください。
キープサイド
サイドデータをマージしないでください。
緯度
RTPMP4A-LATMペイロードを有効にします。
ノーバッファ
オプションのバッファリングによって導入されるレイテンシを削減します
ビット正確
プラットフォーム、ビルド、および時間に依存しないデータのみを書き込みます。 これにより、ファイルが確実になります
データチェックサムは再現可能であり、プラットフォーム間で一致します。 その主な用途
回帰テスト用です。
シーク2 整数 ( )
1に設定されている場合、サポートされている場合、デマルチプレクサレベルで非キーフレームをシークできるようにします。デフォルト
0です。
分析された 整数 ( )
入力をプローブするために分析されるマイクロ秒数を指定します。 より高い値は
より正確な情報の検出を可能にしますが、待ち時間が長くなります。 デフォルトは
5,000,000マイクロ秒= 5秒。
クリプトキー 16進数 string ( )
復号化キーを設定します。
インデックスメモリ 整数 ( )
タイムスタンプインデックスに使用される最大メモリを設定します(ストリームごと)。
rtbufsize 整数 ( )
リアルタイムフレームのバッファリングに使用する最大メモリを設定します。
fdebug フラグ (入出力)
特定のデバッグ情報を出力します。
可能な値:
ts
最大遅延 整数 (入出力)
最大マルチプレクサまたはデマルチプレクサ遅延をマイクロ秒単位で設定します。
fpsプローブサイズ 整数 ( )
fpsのプローブに使用するフレーム数を設定します。
audio_preload 整数 (出力)
オーディオパケットを早期にインターリーブするマイクロ秒を設定します。
チャンクデュレーション 整数 (出力)
各チャンクにマイクロ秒を設定します。
チャンクサイズ 整数 (出力)
各チャンクのサイズをバイト単位で設定します。
err_detect、 f_err_detect フラグ ( )
エラー検出フラグを設定します。 「f_err_detect」は非推奨であり、経由でのみ使用する必要があります
ffmpeg ツール。
可能な値:
crccheck
埋め込まれたCRCを確認します。
ビットストリーム
ビットストリーム仕様の逸脱を検出します。
バッファ
不適切なビットストリーム長を検出します。
爆発する
マイナーエラー検出でデコードを中止します。
注意深い
仕様に違反し、実際には見られていないものを
エラーが。
準拠した
すべての仕様の非準拠をエラーと見なします。
積極的な
正常なエンコーダーがエラーとして実行してはならないことを考慮してください。
max_interleave_delta 整数 (出力)
インターリーブの最大バッファリング期間を設定します。 期間はで表されます
マイクロ秒。デフォルトは1000000(1秒)です。
すべてのストリームが正しくインターリーブされるようにするために、libavformatはそれまで待機します
実際にパケットを書き込む前に、ストリームごとに少なくともXNUMXつのパケットがあります。
出力ファイル。 一部のストリームが「まばら」である場合(つまり、間に大きなギャップがある場合
連続するパケット)、これにより過剰なバッファリングが発生する可能性があります。
このフィールドは、最初のタイムスタンプとのタイムスタンプの最大差を指定します
muxingキューの最後のパケット。これを超えると、libavformatがパケットを出力します。
すべてのストリームのパケットをキューに入れたかどうかに関係なく。
0に設定すると、libavformatは、次のパケットができるまでパケットのバッファリングを続行します。
バッファリングされた間の最大タイムスタンプの違いに関係なく、各ストリーム
パケット。
use_wall Clock_as_timestamps 整数 ( )
タイムスタンプとしてwallclockを使用します。
aim_negative_ts 整数 (出力)
可能な値:
メイク_ノンネガティブ
タイムスタンプをシフトして、負でないようにします。 また、これはのみ影響することに注意してください
非単調な負のタイムスタンプではなく、先行する負のタイムスタンプ。
メイクゼロ
最初のタイムスタンプが0になるようにタイムスタンプをシフトします。
オート (デフォルト)
ターゲットフォーマットで必要な場合にシフトを有効にします。
無効
タイムスタンプのシフトを無効にします。
シフトを有効にすると、すべての出力タイムスタンプが同じ量だけシフトされます。 オーディオ、
ビデオ、字幕の非同期化と相対的なタイムスタンプの違いは保持されます
シフトしなかった場合と比較して。
Skip_initial_bytes 整数 ( )
1に設定されている場合、ヘッダーとフレームを読み取る前にスキップするバイト数を設定します。デフォルトは
0.
正しい_ts_オーバーフロー 整数 ( )
1に設定されている場合、単一のタイムスタンプオーバーフローを修正します。デフォルトは1です。
フラッシュ_パケット 整数 (出力)
各パケットの後に、基になるI / Oストリームをフラッシュします。 デフォルト1はそれを有効にし、
待ち時間を短縮する効果。 0はそれを無効にし、パフォーマンスをわずかに向上させる可能性があります
ある場合。
出力_ts_offset オフセット (出力)
出力時間オフセットを設定します。
オフセット 期間の指定である必要があります。を参照してください。 時間 デュレーション in
ffmpeg-utils(1) マニュアル.
オフセットは、マルチプレクサによって出力タイムスタンプに追加されます。
正のオフセットを指定すると、対応するストリームが遅延します。
で指定された期間 オフセット。 デフォルト値は0です(オフセットがないことを意味します
適用)。
フォーマット_ホワイトリスト リスト ( )
"、"は許可されたデマルチプレクサのリストを分離しました。 デフォルトでは、すべてが許可されています。
ダンプセパレーター string ( )
ストリームに関するコマンドラインに出力されるフィールドを区切るために使用されるセパレータ
パラメーター。 たとえば、フィールドを改行とインデントで区切るには、次のようにします。
ffprobe -dump_separator "
" -私 〜/ videos / matrixbench_mpeg2.mpg
フォーマット 流れ 指定子
フォーマットストリーム指定子を使用すると、特定のストリームに一致するXNUMXつ以上のストリームを選択できます
プロパティ。
ストリーム指定子の可能な形式は次のとおりです。
ストリームインデックス
ストリームをこのインデックスと一致させます。
ストリームタイプ[:ストリームインデックス]
ストリームタイプ は次のいずれかです:「v」はビデオ、「a」はオーディオ、「s」は字幕、「d」
データの場合は「t」、添付ファイルの場合は「t」。 もしも ストリームインデックス が与えられると、それは一致します
ストリーム番号 ストリームインデックス このタイプの。 それ以外の場合は、このすべてのストリームに一致します
タイプ。
p:プログラムID[:ストリームインデックス]
If ストリームインデックス が与えられると、ストリームと番号が一致します ストリームインデックス 会場は
IDのプログラム プログラムID。 それ以外の場合は、プログラム内のすべてのストリームに一致します。
#ストリームID
フォーマット固有のIDでストリームを照合します。
ストリーム指定子の正確なセマンティクスは、
で宣言された「avformat_match_stream_specifier()」関数 libavformat / avformat.h
ヘッダ。
デミュクサー
デミュクサーはFFmpegで構成された要素であり、マルチメディアストリームを
特定の種類のファイル。
FFmpegビルドを設定すると、サポートされているすべてのデマルチプレクサがデフォルトで有効になります。
構成オプション「--list-demuxers」を使用して、使用可能なすべてのものをリストできます。
構成オプション「--disable-demuxers」を使用して、すべてのデマルチプレクサを無効にできます。
オプション「--enable-demuxer =」を使用して単一のデマルチプレクサを選択的に有効にしますデミュクサー」、または無効にする
オプション「--disable-demuxer =デミュクサー」.
ff *ツールのオプション「-formats」は、有効なデマルチプレクサのリストを表示します。
現在利用可能ないくつかのデマルチプレクサの説明は次のとおりです。
aa
Audible Format 2、3、および4のデマルチプレクサ。
このデマルチプレクサは、Audible Format 2、3、および4(.aa)ファイルをデマルチプレクサするために使用されます。
アップルhttp
AppleHTTPライブストリーミングデマルチプレクサ。
このデマルチプレクサは、すべてのバリアントストリームからのすべてのAVStreamを表示します。 idフィールドはに設定されます
ビットレートバリアントインデックス番号。 AVStreamsに破棄フラグを設定する(「a」を押す)
またはffplayの「v」)、呼び出し元は実際に受信するバリアントストリームを決定できます。 NS
ストリームが属するバリアントの合計ビットレートは、メタデータキーで利用できます
「variant_bitrate」という名前。
APNG
アニメーション化されたポータブルネットワークグラフィックスデマルチプレクサ。
このデマルチプレクサは、APNGファイルをデマルチプレクサするために使用されます。 PNG署名を除くすべてのヘッダー(ただし
含まない)最初のfcTLチャンクはextradataとして送信されます。 その後、フレームが分割されます
XNUMXつのfcTLチャンク間、または最後のfcTLチャンクとIENDチャンク間のすべてのチャンクとして。
-ignore_loop ブール
設定されている場合、ファイル内のループ変数を無視します。
-max_fps int型
0秒あたりのフレーム数で表した最大フレームレート(制限なしの場合はXNUMX)。
-default_fps int型
ファイルに何も指定されていない場合のデフォルトのフレームレート(フレーム/秒)(0は意味
できるだけ速く)。
ASF
Advanced SystemsFormatデマルチプレクサ。
このデマルチプレクサは、ASFファイルとMMSネットワークストリームをデマルチプレクサするために使用されます。
-no_resync_search ブール
特定のオプションの開始コードを探して再同期を試みないでください。
連結
仮想連結スクリプトデマルチプレクサ。
このデマルチプレクサは、テキストファイルからファイルとその他のディレクティブのリストを読み取り、それらをデマルチプレクサします
まるで彼らのすべてのパケットが一緒に混ぜ合わされたかのように、次々に。
ファイルのタイムスタンプは、最初のファイルが0から始まり、次の各ファイルが始まるように調整されます。
ファイルは前のファイルが終了するところから始まります。 これはグローバルに行われ、原因となる可能性があることに注意してください
すべてのストリームの長さがまったく同じでない場合はギャップが発生します。
すべてのファイルは同じストリーム(同じコーデック、同じタイムベースなど)を持っている必要があります。
各ファイルの期間は、次のファイルのタイムスタンプを調整するために使用されます。
期間が正しくない(ビットレートを使用して計算されたため、またはファイルが
たとえば、切り捨てられた場合)、アーティファクトが発生する可能性があります。 「duration」ディレクティブは、
各ファイルに保存されている期間を上書きします。
構文
スクリプトは拡張ASCIIのテキストファイルで、XNUMX行にXNUMXつのディレクティブがあります。 空の行、
'#'で始まる先頭のスペースと行は無視されます。 次のディレクティブは
認識された:
"ファイル path"
読み取るファイルへのパス。 特殊文字とスペースは円記号でエスケープする必要があります
または一重引用符。
以降のすべてのファイル関連のディレクティブは、そのファイルに適用されます。
「ffconcat バージョン 1.0 "
スクリプトの種類とバージョンを特定します。 また、 安全な する場合は1へのオプション
デフォルトは-1です。
FFmpegにフォーマットを自動的に認識させるには、このディレクティブが正確に表示される必要があります
スクリプトの最初の行にそのまま(余分なスペースやバイト順マークはありません)。
"間隔 DUR"
ファイルの期間。 この情報はファイルから指定できます。 それを指定する
ここでは、ファイルの情報が利用できない場合に、より効率的または役立つ場合があります
または正確。
すべてのファイルに期間が設定されている場合、全体をシークすることが可能です
連結されたビデオ。
「インポイント タイムスタンプ"
ファイルのポイントで。 デマルチプレクサがファイルを開くと、即座に
指定されたタイムスタンプ。 すべてのストリームを正常に表示できるようにシークが行われます
インポイントで。
このディレクティブは、フレーム内コーデックでは最適に機能します。これは、フレーム内コーデックではないためです。
通常、実際のインポイントとデコードされたコンテンツの前に追加のパケットを取得します
ほとんどの場合、インポイントの前にもフレームが含まれます。
ファイルごとに、ファイルインポイントの前のパケットのタイムスタンプは
ファイルの計算された開始タイムスタンプ(最初のファイルの場合は負)、および
ファイルの期間(「duration」ディレクティブで指定されていない場合)が短縮されます
指定されたインポイントに基づきます。
指定されたインポイントより前の潜在的なパケットのため、パケットのタイムスタンプは
XNUMXつの連結されたファイル間の重なり。
「アウトポイント タイムスタンプ"
ファイルのアウトポイント。 デマルチプレクサがで指定されたデコードタイムスタンプに達したとき
ストリームのいずれか、それはファイルの終わりの状態としてそれを処理し、現在のをスキップします
そして、すべてのストリームからの残りのすべてのパケット。
アウトポイントは排他的です。つまり、デマルチプレクサはパケットを出力しません。
アウトポイント以上のタイムスタンプをデコードします。
このディレクティブは、すべてのストリームが存在するフレーム内コーデックおよびフォーマットで最適に機能します。
しっかりとインターリーブされています。 非イントラフレームコーデックの場合、通常は追加のコーデックを取得します
アウトポイントの後にプレゼンテーションタイムスタンプがあるパケット、したがってデコードされたコンテンツは
ほとんどの場合、アウトポイントの後にフレームも含まれています。 ストリームがタイトでない場合
インターリーブされた場合、アウトポイントの前にすべてのストリームからすべてのパケットを取得できない場合があります。
アウトポイントまで、最も早いストリームのみをデコードできる可能性があります。
ファイルの期間(「duration」ディレクティブで指定されていない場合)は次のようになります
指定されたアウトポイントに基づいて削減されます。
"file_packet_metadata key = value"
ファイルのパケットのメタデータ。 指定したメタデータがファイルごとに設定されます
パケット。 このディレクティブを複数回指定して、複数のメタデータを追加できます
エントリー。
"ストリーム"
仮想ファイルにストリームを導入します。 後続のすべてのストリーム関連のディレクティブ
最後に導入されたストリームに適用されます。 一部のストリームプロパティは、次のように設定する必要があります
サブファイル内の一致するストリームを識別できるようにします。 でストリームが定義されていない場合
スクリプトでは、最初のファイルからのストリームがコピーされます。
"exact_stream_id id"
ストリームのIDを設定します。 このディレクティブが指定されている場合、
サブファイル内の対応するIDが使用されます。 これは、MPEG-PSで特に役立ちます
(VOB)ファイル。ストリームの順序が信頼できません。
オプション
このデマルチプレクサは、次のオプションを受け入れます。
安全な
1に設定すると、安全でないファイルパスを拒否します。 そうでない場合、ファイルパスは安全であると見なされます
プロトコル仕様を含み、相対的であり、すべてのコンポーネントにはのみが含まれます
ポータブル文字セットの文字(文字、数字、ピリオド、アンダースコア、および
ハイフン)であり、コンポーネントの先頭にピリオドはありません。
0に設定すると、任意のファイル名が受け入れられます。
デフォルトは-1で、フォーマットが自動的にプローブされた場合は1に相当し、0に相当します。
さもないと。
auto_convert
1に設定されている場合は、パケットデータに対して自動変換を実行してストリームを作成してみてください
連結可能。 デフォルトは1です。
現在、唯一の変換は、h264_mp4toannexbビットストリームフィルターをに追加することです。
MP264形式のH.4ストリーム。 これは特に解決策がある場合に必要です
変更。
FLV
Adobe Flash VideoFormatデマルチプレクサ。
このデマルチプレクサは、FLVファイルとRTMPネットワークストリームをデマルチプレクサするために使用されます。
-flv_メタデータ ブール
onMetaData配列の内容に従ってストリームを割り当てます。
libgme
Game Music Emuライブラリは、ビデオゲーム音楽ファイルエミュレータのコレクションです。
見るhttp://code.google.com/p/game-music-emu/>詳細については。
一部のファイルには複数のトラックがあります。 デマルチプレクサは、デフォルトで最初のトラックを選択します。 NS
トラックインデックス オプションを使用して、別のトラックを選択できます。 トラックインデックスは0から始まります。
demuxerはトラック数を次のようにエクスポートします トラック メタデータエントリ。
非常に大きなファイルの場合、 最大サイズ オプションを調整する必要がある場合があります。
リブクヴィ
quviプロジェクトを使用してインターネットサービスからメディアを再生します。
デマルチプレクサは、 形式でアーカイブしたプロジェクトを保存します. 特定の品質を要求するオプション。 デフォルトではに設定されています
最良.
見るhttp://quvi.sourceforge.net/>詳細については。
このデマルチプレクサを有効にするには、FFmpegを「--enable-libquvi」でビルドする必要があります。
GIF
アニメーションGIFデマルチプレクサ。
次のオプションを受け入れます。
min_delay
フレーム間の最小有効遅延を0分のXNUMX秒単位で設定します。 範囲はXNUMX〜
6000。デフォルト値は2です。
max_gif_遅延
フレーム間の最大有効遅延を0分のXNUMX秒単位で設定します。 範囲はXNUMX〜
65535。デフォルト値は65535(約XNUMX分)で、許可される最大値は
仕様。
デフォルト_遅延
フレーム間のデフォルトの遅延を0分の6000秒単位で設定します。 範囲はXNUMX〜XNUMXです。
デフォルト値は10です。
無視ループ
GIFファイルには、特定の回数(または無限に)ループする情報を含めることができます。
If 無視ループ が1に設定されている場合、入力からのループ設定は無視され、
ループは発生しません。 0に設定すると、ループが発生し、番号が循環します
GIFによると何度も。 デフォルト値は1です。
たとえば、オーバーレイフィルタを使用して、無限にループするGIFを別のビデオの上に配置します。
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay = shortest = 1 out.mkv
上記の例では、オーバーレイフィルターの最短オプションを使用して
最短の入力ファイルの長さでビデオを出力します。この場合は、 入力.mp4 as
この例のGIFは無限にループします。
image2
画像ファイルのデマルチプレクサ。
このデマルチプレクサは、パターンで指定された画像ファイルのリストから読み取ります。 構文と
パターンの意味はオプションで指定されます パターンタイプ.
パターンには、次の形式を自動的に判別するために使用される接尾辞が含まれる場合があります。
ファイルに含まれる画像。
サイズ、ピクセル形式、および各画像の形式は、すべての画像で同じである必要があります。
シーケンス内のファイル。
このデマルチプレクサは、次のオプションを受け入れます。
フレームレート
ビデオストリームのフレームレートを設定します。 デフォルトは25です。
ループ
1に設定すると、入力をループします。 デフォルト値は0です。
パターンタイプ
提供されたファイル名の解釈に使用されるパターンタイプを選択します。
パターンタイプ 次のいずれかの値を受け入れます。
なし
パターンマッチングを無効にするため、ビデオには指定されたもののみが含まれます
画像。 からシーケンスを作成したくない場合は、このオプションを使用する必要があります
複数の画像とファイル名に特殊なパターン文字が含まれている場合があります。
シーケンス
シーケンスパターンタイプを選択します。これは、によってインデックスが付けられたファイルのシーケンスを指定するために使用されます。
連番。
シーケンスパターンには、文字列「%d」または「%0」を含めることができますNd "、これは
各ファイル名の連番を表す文字の位置
パターンに一致します。 フォームが「%d0」の場合Nd "が使用され、文字列は
各ファイル名の数字は0で埋められ、 N 0が埋め込まれた桁の総数です
数を表します。 リテラル文字 '%'をパターンで指定できます
文字列「%%」を使用します。
シーケンスパターンに「%d」または「%0」が含まれている場合Nd "、ファイルの最初のファイル名
パターンで指定されたリストには、間に含まれる数値が含まれている必要があります
開始番号 および 開始番号+開始番号範囲-1、および以下のすべての番号
シーケンシャルである必要があります。
たとえば、パターン「img-%03d.bmp」は、
フォーム img-001.bmp, img-002.bmp……、 img-010.bmp、 NS。; パターン
"i %% m %% g-%d.jpg" Loading = "lazy"は、フォームのファイル名のシーケンスと一致します i%m%g-1.jpg,
i%m%g-2.jpg……、 i%m%g-10.jpg, etc.
パターンには必ずしも「%d」または「%0」が含まれている必要はないことに注意してくださいNd "、例えば
単一の画像ファイルを変換する img.jpeg 次のコマンドを使用できます。
ffmpeg -i img.jpeg img.png
地球
グロブワイルドカードパターンタイプを選択します。
このパターンは「glob()」パターンのように解釈されます。 これは、次の場合にのみ選択できます
libavformatはglobbingをサポートしてコンパイルされました。
グロブシーケンス (非推奨、 意志 be 除去された)
混合グロブワイルドカード/シーケンスパターンを選択します。
ご使用のバージョンのlibavformatがglobbingサポートを使用してコンパイルされている場合、および
指定されたパターンには、「%*?[] {}」の中に少なくともXNUMXつのグロブメタ文字が含まれています。
エスケープされていない「%」が前に付いている場合、パターンは「glob()」パターンのように解釈されます。
それ以外の場合は、シーケンスパターンのように解釈されます。
すべてのグロブ特殊文字「%*?[] {}」の前に「%」を付ける必要があります。 脱出するには
文字通りの「%」は「%%」を使用します。
たとえば、パターン「foo-%*。jpeg」は、接頭辞が付いたすべてのファイル名と一致します
「foo-」で「.jpeg」で終了し、「foo-%?%?%?。 jpeg」はすべての
「foo-」で始まり、その後にXNUMX文字のシーケンスが続くファイル名、および
「.jpeg」で終了します。
このパターンタイプは廃止され、 地球 および シーケンス.
デフォルト値は グロブシーケンス.
ピクセル形式
読み取る画像のピクセル形式を設定します。 指定されていない場合、ピクセル形式は
シーケンスの最初の画像ファイルから推測されます。
開始番号
読み取りを開始する画像ファイルパターンに一致するファイルのインデックスを設定します。
デフォルト値は0です。
開始番号範囲
で最初の画像ファイルを探すときにチェックするインデックス間隔の範囲を設定します
から始まるシーケンス 開始番号。 デフォルト値は5です。
ts_from_file
1に設定すると、フレームのタイムスタンプが画像ファイルの変更時刻に設定されます。 ご了承ください
タイムスタンプの単調性は提供されません:画像はこれがない場合と同じ順序になります
オプション。 デフォルト値は0です。2に設定すると、フレームのタイムスタンプが変更に設定されます
ナノ秒の精度での画像ファイルの時間。
ビデオサイズ
読み取る画像のビデオサイズを設定します。 指定されていない場合、ビデオサイズが推測されます
シーケンスの最初の画像ファイルから。
例
・ 使用する ffmpeg ファイルシーケンス内の画像からビデオを作成するため img-001.jpeg,
img-002.jpeg、...、10秒あたりXNUMXフレームの入力フレームレートを想定:
ffmpeg -framerate 10 -i'img-%03d.jpeg 'out.mkv
・上記と同じですが、次の順序でインデックス100のファイルから読み取ることから始めます。
ffmpeg -framerate 10 -start_number 100 -i'img-%03d.jpeg 'out.mkv
・「*。png」loading = "lazy"グロブパターンに一致する画像を読み取ります。これは、で終了するすべてのファイルです。
「.png」loading = "lazy"サフィックス:
ffmpeg -framerate 10 -pattern_type glob -i "* .png" Loading = "lazy" out.mkv
mov / mp4 / 3gp / Quicktme
Quicktime / MP4デマルチプレクサ。
このデマルチプレクサは、次のオプションを受け入れます。
有効化_drefs
外部トラックのロードを有効にします。デフォルトでは無効になっています。 これを有効にすると
理論的には、一部のユースケースで情報が漏洩します。
use_absolute_path
絶対パスを介した外部トラックのロードを許可します。デフォルトでは無効になっています。 有効化
これはセキュリティリスクをもたらします。 ソースが非であることがわかっている場合にのみ有効にする必要があります
悪意のある。
mpegt
MPEG-2トランスポートストリームデマルチプレクサ。
このデマルチプレクサは、次のオプションを受け入れます。
再同期サイズ
新しい同期を検索するためのサイズ制限を設定します。 デフォルト値は65536です。
fix_teletext_pts
文字放送パケットのPTSおよびDTS値を、から計算されたタイムスタンプで上書きします。
文字放送ストリームが含まれ、破棄されない最初のプログラムのPCR。
デフォルト値は1です。テレテキストパケットPTSおよびDTSが必要な場合は、このオプションを0に設定します。
手つかずの値。
ts_packetsize
生のパケットサイズをバイト単位で伝送する出力オプション。 検出された生のパケットを表示する
サイズ、ユーザーが設定することはできません。
scan_all_pmts
すべてのPMTをスキャンして結合します。 値は-1から1までの値の整数です(-1は
自動設定、1は有効、0は無効を意味します)。 デフォルト値は-1です。
生ビデオ
生のビデオデマルチプレクサ。
このデマルチプレクサを使用すると、生のビデオデータを読み取ることができます。 を指定するヘッダーがないため
想定されるビデオパラメータの場合、ユーザーはそれらをデコードできるようにするためにそれらを指定する必要があります
データを正しく。
このデマルチプレクサは、次のオプションを受け入れます。
フレームレート
入力ビデオのフレームレートを設定します。 デフォルト値は25です。
ピクセル形式
入力ビデオのピクセルフォーマットを設定します。 デフォルト値は「yuv420p」です。
ビデオサイズ
入力ビデオサイズを設定します。 この値は明示的に指定する必要があります。
たとえば、rawvideoファイルを読み取るには 入力.生 再生する、のピクセルフォーマットを想定
「rgb24」、「320x240」のビデオサイズ、および10秒あたりXNUMX画像のフレームレートを使用するには、
コマンド:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
SBG
SBaGenスクリプトデマルチプレクサ。
このデマルチプレクサは、SBaGenで使用されるスクリプト言語を読み取りますhttp://uazu.net/sbagen/>へ
バイノーラルビートセッションを生成します。 SBGスクリプトは次のようになります。
-SE
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
オフ: -
今==
+0:07:00 == b
+0:14:00 == a
+0:21:00 == b
+0:30:00オフ
SBGスクリプトは、絶対タイムスタンプと相対タイムスタンプを混在させることができます。 スクリプトがいずれかのみを使用する場合
絶対タイムスタンプ(スクリプトの開始時刻を含む)または相対タイムスタンプのみ、その後
レイアウトは固定されており、変換は簡単です。 一方、スクリプトの場合
両方の種類のタイムスタンプを混合し、次に 現在 相対タイムスタンプの参照は次のようになります
スクリプトが読み取られた現在の時刻とスクリプトのレイアウトから取得
その参照に従って凍結されます。 つまり、スクリプトが直接である場合
再生すると、実際の時間はサウンドコントローラーの絶対タイムスタンプまで一致します
時計の精度ですが、ユーザーが何らかの理由で再生を一時停止したりシークしたりすると、常に
それに応じてシフトしました。
字幕
に使用されるJSONキャプションhttp://www.ted.com/>.
TEDはキャプションへのリンクを提供していませんが、ページから推測できます。 NS
file tools / bookmarklets.html FFmpegソースツリーから公開するブックマークレットが含まれています
それら。
このデマルチプレクサは、次のオプションを受け入れます。
始まる時間
TEDトークの開始時間をミリ秒単位で設定します。 デフォルトは15000(15秒)です。 です
15秒が含まれているため、キャプションをダウンロード可能なビデオと同期するために使用されます
イントロ。
例:キャプションをほとんどのプレーヤーが理解できる形式に変換します。
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-ja.srt
マルチプレクサ
マルチプレクサはFFmpegで構成された要素であり、マルチメディアストリームを
特定の種類のファイル。
FFmpegビルドを設定すると、サポートされているすべてのマルチプレクサがデフォルトで有効になります。 君は
構成オプション「--list-muxers」を使用して、使用可能なすべてのマルチプレクサを一覧表示できます。
構成オプション「--disable-muxers」を使用してすべてのマルチプレクサを無効にできます。
オプション "--enable-muxer =を使用して、単一のマルチプレクサを選択的に有効/無効にします。ミュクサー」 /
"--disable-muxer =ミュクサー」.
ff *ツールのオプション「-formats」は、有効なマルチプレクサのリストを表示します。
現在利用可能ないくつかのマルチプレクサの説明は次のとおりです。
エフ
オーディオインターチェンジファイル形式マルチプレクサ。
オプション
次のオプションを受け入れます。
write_id3v2
3に設定すると、ID2v1タグの書き込みが有効になります。デフォルトは0(無効)です。
id3v2_バージョン
書き込むID3v2バージョンを選択します。 現在、バージョン3および4のみ(別名ID3v2.3および
ID3v2.4)がサポートされています。 デフォルトはバージョン4です。
CRM
CRC(巡回冗長検査)テスト形式。
このマルチプレクサは、すべての入力オーディオおよびビデオフレームのAdler-32CRCを計算して印刷します。
デフォルトでは、オーディオフレームは署名された16ビットのrawオーディオおよびビデオフレームに変換されます。
CRCを計算する前のビデオ。
マルチプレクサの出力は、CRC = 0xの形式の単一行で構成されます。CRCここで、 CRC
デコードされたすべての入力のCRCを含む0桁に8が埋め込まれたXNUMX進数
フレーム。
参照してください フレームCRC マルチプレクサ。
例
たとえば、入力のCRCを計算し、それをファイルに保存するには out.crc:
ffmpeg -i INPUT -f crc out.crc
次のコマンドを使用して、CRCをstdoutに出力できます。
ffmpeg -i INPUT -f crc-
各フレームの出力形式は、次のコマンドで選択できます。 ffmpeg 音声を指定して
ビデオコーデックとフォーマット。 たとえば、PCMに変換された入力オーディオのCRCを計算するには
符号なし8ビットおよび入力ビデオをMPEG-2ビデオに変換するには、次のコマンドを使用します。
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc-
フレームCRC
パケットごとのCRC(Cyclic Redundancy Check)テスト形式。
このマルチプレクサは、オーディオおよびビデオパケットごとにAdler-32CRCを計算して出力します。 に
デフォルトのオーディオフレームは、署名された16ビットのrawオーディオおよびビデオフレームに変換されます。
CRCを計算する前のビデオ。
マルチプレクサの出力は、次の形式の各オーディオおよびビデオパケットの行で構成されます。
、 、 、 、 、0x
CRC パケットのCRCを含む0桁に8が埋め込まれたXNUMX進数です。
例
たとえば、オーディオおよびビデオフレームのCRCを計算するには 入力、生に変換
オーディオパケットとビデオパケットをファイルに保存します out.crc:
ffmpeg -i INPUT -f Framecrc out.crc
情報をstdoutに出力するには、次のコマンドを使用します。
ffmpeg -i INPUT -f framecrc-
自律的AI ffmpeg、オーディオおよびビデオフレームの出力形式を選択できます
オーディオおよびビデオコーデックを指定することにより、各パケットのCRCを計算する前にエンコードされます。
たとえば、PCMに変換されたデコードされた各入力オーディオフレームのCRCを計算するには
符号なし8ビットおよびMPEG-2ビデオに変換されたデコードされた各入力ビデオフレームの、
コマンド:
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc-
参照してください CRM マルチプレクサ。
フレームmd5
パケットごとのMD5テスト形式。
このマルチプレクサは、オーディオおよびビデオパケットごとにMD5ハッシュを計算して出力します。 デフォルトでは
オーディオフレームは、署名された16ビットのrawオーディオおよびビデオフレームからrawビデオに変換されます。
ハッシュを計算します。
マルチプレクサの出力は、次の形式の各オーディオおよびビデオパケットの行で構成されます。
、 、 、 、 、
MD5 パケットの計算されたMD5ハッシュを表すXNUMX進数です。
例
たとえば、オーディオおよびビデオフレームのMD5を計算するには 入力、生に変換
オーディオパケットとビデオパケットをファイルに保存します アウト.md5:
ffmpeg -i INPUT -f Framemd5 out.md5
情報をstdoutに出力するには、次のコマンドを使用します。
ffmpeg -i INPUT -f framemd5-
参照してください md5 マルチプレクサ。
GIF
アニメーションGIFマルチプレクサ。
次のオプションを受け入れます。
ループ
出力をループする回数を設定します。 ループなしの場合は「-1」を使用し、ループの場合は0を使用します
無期限(デフォルト)。
最終遅延
最後のフレームの後に遅延(センチ秒で表される)を強制します。 各フレームはで終わります
次のフレームまでの遅延。 デフォルトは「-1」です。これは、伝えるための特別な値です。
前の遅延を再利用するためのマルチプレクサ。 ループの場合は、カスタマイズすることをお勧めします
この値は、たとえば一時停止をマークします。
たとえば、ループ間に10秒の遅延を設定して、gifループを5回エンコードするには、次のようにします。
ffmpeg -i INPUT -loop 10 -final_lay 500 out.gif
注1:フレームを別々のGIFファイルに抽出する場合は、強制的に
image2 マルチプレクサ:
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
注2:GIF形式のタイムベースは非常に小さいため、XNUMXつのフレーム間の遅延は
XNUMXセンチ秒未満。
hls
HTTPライブストリーミングに従ってMPEG-TSをセグメント化するAppleHTTPライブストリーミングマルチプレクサ
(HLS)仕様。
プレイリストファイルとXNUMXつ以上のセグメントファイルを作成します。 出力ファイル名は次のように指定します
プレイリストのファイル名。
デフォルトでは、muxerは生成されたセグメントごとにファイルを作成します。 これらのファイルは同じです
プレイリストとして名前を付け、その後に連番と.ts拡張子を付けます。
たとえば、入力ファイルを次のように変換するには ffmpeg:
ffmpeg -i in.nut out.m3u8
この例では、プレイリストを作成します。 out.m3u8、およびセグメントファイル: out0.ts, out1.ts,
out2.ts, etc.
参照してください セグメント muxerは、より一般的で柔軟な実装を提供します
セグメンテーション、およびHLSセグメンテーションを実行するために使用できます。
オプション
このマルチプレクサは、次のオプションをサポートしています。
hls_time 秒
セグメントの長さを秒単位で設定します。 デフォルト値は2です。
hls_list_size サイズ
プレイリストエントリの最大数を設定します。 0に設定すると、リストファイルにはすべてが含まれます
セグメント。 デフォルト値は5です。
hls_ts_options オプションリスト
key = valueパラメーターの:-区切りリストを使用して、出力フォーマットオプションを設定します。 値
「:」を含む特殊文字はエスケープする必要があります。
hls_wrap ラップ
セグメントファイル名番号(それぞれに指定された番号)の後に番号を設定します
セグメントファイル)ラップ。 0に設定すると、数値が折り返されることはありません。 デフォルト値は0です。
このオプションは、ディスクが多くのセグメントファイルでいっぱいになるのを回避するのに役立ちます。
ディスクに書き込まれるセグメントファイルの最大数 ラップ.
開始番号 数
からプレイリストシーケンス番号を開始します 数。 デフォルト値は0です。
hls_allow_cache 許可キャッシュ
クライアントが\fIs0(1)またはしてはいけない\fIs0(0)キャッシュメディア
セグメント。
hls_base_url ベースURL
追加 ベースURL プレイリストのすべてのエントリに。 でプレイリストを生成するのに便利です
絶対パス。
プレイリストのシーケンス番号はセグメントごとに一意である必要があり、一意ではないことに注意してください
循環する可能性のあるセグメントファイル名シーケンス番号と混同される
例 ラップ オプションが指定されています。
hls_segment_filename ファイル名
セグメントのファイル名を設定します。 hls_flagssingle_fileが設定されていない限り ファイル名 として使用されます
セグメント番号付きの文字列形式:
ffmpeg in.nut -hls_segment_filename'file%03d.ts 'out.m3u8
この例では、プレイリストを作成します。 out.m3u8、およびセグメントファイル: ファイル000.ts,
ファイル001.ts, ファイル002.ts, etc.
hls_key_info_file キー情報ファイル
の情報を使用してください キー情報ファイル セグメント暗号化用。 の最初の行
キー情報ファイル プレイリストに書き込まれるキーURIを指定します。 キーURLは次の目的で使用されます
再生中に暗号化キーにアクセスします。 XNUMX行目は、
暗号化プロセス中にキーを取得するために使用されるキーファイル。 キーファイルは次のように読み取られます
バイナリ形式の16オクテットの単一パック配列。 オプションのXNUMX行目は、
の代わりに使用されるXNUMX進文字列としての初期化ベクトル(IV)
暗号化用のセグメントシーケンス番号(デフォルト)。 への変更 キー情報ファイル 結果になります
新しいキー/ IVと新しいキーのプレイリストのエントリを使用したセグメント暗号化
URI / IV。
キー情報ファイル形式:
(オプション)
キーURIの例:
http://server/file.key
/path/to/file.key
ファイルキー
キーファイルパスの例:
ファイルキー
/path/to/file.key
例IV:
0123456789ABCDEF0123456789ABCDEF
キー情報ファイルの例:
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF
シェルスクリプトの例:
#!/bin/sh
BASE_URL = $ {1:-'。'}
openssl rand 16> file.key
echo $ BASE_URL / file.key> file.keyinfo
エコーfile.key >> file.keyinfo
echo $(openssl rand -hex 16)>> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
-hls_key_info_file file.keyinfo out.m3u8
hls_flags 単一ファイル
このフラグが設定されている場合、マルチプレクサはすべてのセグメントを単一のMPEG-TSファイルに保存します。
プレイリストのバイト範囲を使用します。 この方法で生成されたHLSプレイリストには
バージョン番号4。例:
ffmpeg -i in.nut -hls_flags single_file out.m3u8
プレイリストを作成します、 out.m3u8、および単一セグメントファイル、 アウト.ts.
hls_flags セグメントの削除
プレイリストから削除されたセグメントファイルは、次の期間が経過すると削除されます。
セグメントの期間とプレイリストの期間。
ICO
ICOファイルマルチプレクサ。
Microsoftのアイコンファイル形式(ICO)には、注意すべきいくつかの厳しい制限があります。
・サイズはどの寸法でも256ピクセルを超えることはできません
・保存できるのはBMPとPNGの画像のみです
・BMP画像を使用する場合は、次のいずれかのピクセル形式である必要があります。
BMPビット深度FFmpegピクセル形式
1ビットpal8
4ビットpal8
8ビットpal8
16ビットrgb555le
24ビットbgr24
32ビットbgra
・BMPイメージを使用する場合は、BITMAPINFOHEADERDIBヘッダーを使用する必要があります
・PNG画像を使用する場合は、rgbaピクセル形式を使用する必要があります
image2
画像ファイルマルチプレクサ。
画像ファイルmuxerは、ビデオフレームを画像ファイルに書き込みます。
出力ファイル名はパターンで指定され、順次生成するために使用できます
番号付きの一連のファイル。 パターンには、文字列「%d」または「%0」を含めることができますNd "、この文字列
ファイル名の番号付けを表す文字の位置を指定します。 の場合
フォーム "%0Nd "を使用すると、各ファイル名の数値を表す文字列に0が埋め込まれます。 N
数字。 リテラル文字 '%'は、文字列 "%%"を使用してパターンで指定できます。
パターンに「%d」または「%0」が含まれている場合Nd "、指定されたファイルリストの最初のファイル名は
番号1を含み、以下の番号はすべて連続します。
パターンには、次の形式を自動的に判別するために使用される接尾辞が含まれる場合があります。
書き込む画像ファイル。
たとえば、パターン「img-%03d.bmp」は、フォームのファイル名のシーケンスを指定します
img-001.bmp, img-002.bmp……、 img-010.bmpなど。パターン「img %%-%d.jpg」loading = "lazy"は指定します
フォームのファイル名のシーケンス img%-1.jpg, img%-2.jpg……、 img%-10.jpg, etc.
例
次の例は、使用方法を示しています ffmpeg 一連のファイルを作成するため
img-001.jpeg, img-002.jpeg、...、入力ビデオから毎秒XNUMXつの画像を取得します。
ffmpeg -i in.avi -vsync 1 -r 1 -f image2'img-%03d.jpeg '
と注意してください ffmpeg、「-f」オプションと出力でフォーマットが指定されていない場合
filenameは画像ファイル形式を指定し、image2 muxerが自動的に選択されるため、
前のコマンドは次のように書くことができます:
ffmpeg -i in.avi -vsync 1 -r 1'img-%03d.jpeg '
パターンには必ずしも「%d」または「%0」が含まれている必要はないことにも注意してくださいNd "、例えば
単一の画像ファイルを作成する img.jpeg 入力ビデオから、次のコマンドを使用できます。
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
この ストラフタイム オプションを使用すると、日付と時刻の情報を使用してファイル名を展開できます。
構文については、「strftime()」関数のドキュメントを確認してください。
たとえば、「strftime()」「%Y-%m-%d_%H-%M-%S」パターンから画像ファイルを生成するには、
フォロー中 ffmpeg コマンドを使用できます:
ffmpeg -f v4l2 -r 1 -i / dev / video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
オプション
開始番号
指定された番号からシーケンスを開始します。 デフォルト値は0です。
update
1に設定すると、ファイル名は常にファイル名として解釈され、
パターン、および対応するファイルは新しい画像で継続的に上書きされます。
デフォルト値は0です。
ストラフタイム
1に設定されている場合、「strftime()」からの日付と時刻の情報でファイル名を展開します。
デフォルト値は0です。
画像マルチプレクサは、.YUV画像ファイル形式をサポートしています。 このフォーマットはその点で特別です
各画像フレームは、YUV420PコンポーネントごとにXNUMXつのファイルで構成されています。 読むまたは
この画像ファイル形式を記述し、「。Y」ファイルの名前を指定します。 マルチプレクサは
必要に応じて、「。U」ファイルと「.V」ファイルを自動的に開きます。
Matroskaは
Matroskaコンテナマルチプレクサ。
このマルチプレクサは、matroskaおよびwebmコンテナの仕様を実装しています。
このマルチプレクサで認識されるメタデータ設定は次のとおりです。
タイトル
XNUMXつのトラックに提供されるタイトル名を設定します。
言語
Matroska言語フォームでトラックの言語を指定します。
言語は、3文字の書誌ISO-639-2(ISO 639-2 / B)形式のいずれかです。
(フランス語の「fre」など)、または専門分野の国コードと混合された言語コード
言語(カナダフランス語の「fre-ca」など)。
Stereo_mode
3つのビデオトラックでXNUMXつのビューのステレオXNUMXDビデオレイアウトを設定します。
次の値が認識されます。
モノ
ビデオはステレオではありません
左右
両方のビューが並んで配置され、左目ビューが左側にあります
ボトムトップ
両方のビューは上下方向に配置され、左目ビューは下にあります
上_下
両方のビューが上下方向に配置され、左目ビューが上になります
チェッカーボード_rl
各ビューはチェッカーボードのインターリーブパターンで配置され、左目ビューは
最初の
チェッカーボード_lr
各ビューはチェッカーボードのインターリーブパターンで配置され、右目ビューは
最初の
row_interleaved_rl
各ビューは行ベースのインターリーブで構成され、右目ビューは最初の行です
row_interleaved_lr
各ビューは行ベースのインターリーブで構成され、左目ビューは最初の行です
Col_interleaved_rl
両方のビューは列ベースのインターリーブ方式で配置され、右目ビューは
最初の列
Col_interleaved_lr
両方のビューは列ベースのインターリーブ方式で配置され、左目ビューは
最初の列
アナグリフ_シアン_レッド
すべてのフレームは、赤シアンのフィルターを通して表示できるアナグリフ形式です。
右左
両方のビューが並んで配置され、右目ビューが左側にあります
アナグリフ_グリーン_マゼンタ
すべてのフレームは、グリーンマゼンタのフィルターを通して表示できるアナグリフ形式です。
ブロック_lr
両方の目がXNUMXつのブロックにまとめられ、左目ビューが最初になります
ブロックrl
両目がXNUMXつのブロックにひもで締められ、右目ビューが最初です
たとえば、3D WebMクリップは、次のコマンドラインを使用して作成できます。
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata Stereo_mode = left_right -y Stereo_clip.webm
オプション
このマルチプレクサは、次のオプションをサポートしています。
reserved_index_space
デフォルトでは、このマルチプレクサはシーク用のインデックス(Matroska用語ではキューと呼ばれます)を次の場所に書き込みます。
ファイルの終わり。これは、ファイルの残りのスペースを事前に知ることができないためです。
ファイルの先頭にあるインデックス。 ただし、一部のユースケース(ストリーミングなど)の場合
シークは可能だが遅い場合-インデックスを最初に置くと便利です
ファイルの。
このオプションがゼロ以外の値に設定されている場合、マルチプレクサは指定された量の
ファイルヘッダーにスペースを入れてから、多重化するときにそこにキューを書き込もうとします
終了します。 使用可能なスペースが十分でない場合、多重化は失敗します。 のための安全なサイズ
ほとんどの使用例は、ビデオの50時間あたり約XNUMXkBである必要があります。
キューは、出力がシーク可能であり、このオプションにはない場合にのみ書き込まれることに注意してください
そうでない場合の効果。
md5
MD5テスト形式。
このマルチプレクサは、すべての入力オーディオおよびビデオフレームのMD5ハッシュを計算して出力します。 に
デフォルトのオーディオフレームは、署名された16ビットのrawオーディオおよびビデオフレームに変換されます。
ハッシュを計算する前のビデオ。
マルチプレクサの出力は、次の形式の5行で構成されます。MDXNUMX=MD5ここで、 MD5
計算されたMD5ハッシュを表すXNUMX進数。
たとえば、生のオーディオとビデオに変換された入力のMD5ハッシュを計算し、
ファイルに保存します アウト.md5:
ffmpeg -i INPUT -f md5 out.md5
次のコマンドを使用して、MD5をstdoutに出力できます。
ffmpeg -i INPUT -fmd5-
参照してください フレームmd5 マルチプレクサ。
mov、 mp4、 ismv
MOV / MP4 / ISMV(スムーズストリーミング)マルチプレクサ。
mov / mp4 / ismvマルチプレクサはフラグメンテーションをサポートします。 通常、MOV / MP4ファイルにはすべての
XNUMXつの場所に保存されているすべてのパケットに関するメタデータ(ファイルの最後に書き込まれます。
追加することでより良い再生のために最初に移動します ファストスタート から モフフラグ、またはを使用して
qt-ファストスタート 道具)。 フラグメント化されたファイルは、パケットが含まれるいくつかのフラグメントで構成されます。
これらのパケットに関するメタデータは一緒に保存されます。 断片化されたファイルの書き込みには、
書き込みが中断されてもファイルがデコード可能であるという利点(通常の場合
MOV / MP4は、適切に終了していない場合はデコードできません)。
非常に長いファイルを書き込む(通常のMOV / MP4ファイルを書き込むと、すべてのファイルに関する情報が保存されるため)
ファイルが閉じられるまでメモリ内のパケット)。 欠点は、互換性が低いことです
他のアプリケーションで。
オプション
断片化は、ファイルの切り取り方法を定義するAVOptionのXNUMXつを設定することで有効になります
断片に:
-moov_size バイト
ファイルを配置する代わりに、ファイルの先頭にmoovアトム用のスペースを予約します
最後にmoovアトム。 予約したスペースが不足している場合、多重化は失敗します。
-movflags フラグキーフレーム
各ビデオキーフレームで新しいフラグメントを開始します。
-frag_duration デュレーション
次のようなフラグメントを作成します デュレーション マイクロ秒の長さ。
-frag_size サイズ
最大を含むフラグメントを作成します サイズ ペイロードデータのバイト。
-movflags フラグカスタム
呼び出し元が呼び出すことにより、フラグメントをカットするタイミングを手動で選択できるようにします
「av_write_frame(ctx、NULL)」は、これまでに書き込まれたパケットでフラグメントを書き込みます。 (この
libavformatを統合している他のアプリケーションでのみ役立ちます。 ffmpeg.)
-min_frag_duration デュレーション
より短いフラグメントを作成しないでください デュレーション マイクロ秒の長さ。
複数の条件が指定されている場合、指定された条件のXNUMXつが指定されたときにフラグメントがカットされます
条件が満たされています。 これの例外は「-min_frag_duration」であり、
適用する他の条件のいずれかについて満たされている。
さらに、出力ファイルの書き込み方法は、他のいくつかの方法で調整できます。
オプション:
-movflags 空のムーブ
ファイルの先頭に最初のmoovアトムを、何も記述せずに直接書き込みます
その中のサンプル。 通常、mdat / moovペアは、ファイルの先頭に次のように書き込まれます。
ファイルの短い部分のみを含む通常のMOV / MP4ファイル。 このオプションで
セットでは、最初のmdatアトムはなく、moovアトムはトラックのみを記述しますが
期間はゼロです。
このオプションは、ismv(スムーズストリーミング)ファイルを書き込むときに暗黙的に設定されます。
-movflags セパレートムーフ
トラックごとに個別のmoof(ムービーフラグメント)アトムを記述します。 通常、すべてのパケット
トラックはmoofアトム(少し効率的です)で書かれていますが、これを使用すると
オプションを設定すると、muxerはトラックごとにXNUMXつのmoof / mdatペアを書き込むため、次の操作が簡単になります。
別々のトラック。
このオプションは、ismv(スムーズストリーミング)ファイルを書き込むときに暗黙的に設定されます。
-movflags ファストスタート
インデックス(moovアトム)をファイルの先頭に移動するXNUMX番目のパスを実行します。 この
操作には時間がかかる場合があり、断片化などのさまざまな状況では機能しません
出力、したがって、デフォルトでは有効になっていません。
-movflags rtphint
RTPヒントトラックを出力ファイルに追加します。
-movflags 無効化_chpl
Neroチャプターマーカー(chplアトム)を無効にします。 通常、Neroの章と
QuickTimeチャプタートラックがファイルに書き込まれます。 このオプションを設定すると、
QuickTimeチャプタートラックが書き込まれます。 Neroチャプターは、次の場合に失敗を引き起こす可能性があります。
ファイルは、mp3Tag2.61aやiTunes11.3などの特定のタグ付けプログラムで再処理されます。
ほとんどの場合、他のバージョンも影響を受けます。
-movflags 省略_tfhd_offset
tfhdアトムに絶対base_data_offsetを書き込まないでください。 これにより、フラグメントの結合が回避されます
ファイル/ストリーム内の絶対バイト位置に。
-movflags デフォルト_ベース_ムーフ
omit_tfhd_offsetと同様に、このフラグは絶対値の書き込みを回避します
tfhdアトムのbase_data_offsetフィールド。ただし、新しいdefault-base-is-を使用してこれを行います。
代わりにmoofフラグ。 このフラグは14496-12:2012から新しいものです。 これは断片を作るかもしれません
特定の状況での解析が容易(ベーストラックフラグメントの場所を回避)
前のトラックフラグメントの暗黙の終わりの計算)。
例
これにより、スムーズなストリーミングコンテンツをIISの公開ポイントにリアルタイムでプッシュできます。
マルチプレクサ。 例:
ffmpeg -re < > -movflags isml + frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(エンコーダー1)
聞こえる AAX
可聴AAXファイルは暗号化されたM4Bファイルであり、4を指定することで復号化できます
バイトアクティベーションシークレット。
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
mp3
MP3マルチプレクサは、次のオプション機能を使用して生のMP3ストリームを書き込みます。
・最初のID3v2メタデータヘッダー(デフォルトで有効)。 バージョン2.3および2.4
サポートされている場合、「id3v2_version」プライベートオプションはどちらを使用するかを制御します(3または4)。
「id3v2_version」を0に設定すると、ID3v2ヘッダーが完全に無効になります。
マルチプレクサは、添付画像(APICフレーム)のID3v2ヘッダーへの書き込みをサポートしています。 NS
写真は、単一のパケットを含むビデオストリームの形式でマルチプレクサに提供されます。
これらのストリームはいくつでも存在でき、それぞれが単一のAPICフレームに対応します。
ストリームメタデータタグ タイトル および コメント APICにマップ 説明 および 画像 type
それぞれ。 見るhttp://id3.org/id3v2.4.0-frames>許可された画像タイプの場合。
APICフレームは最初に書き込む必要があるため、マルチプレクサはバッファリングすることに注意してください
すべての画像を取得するまでオーディオフレーム。 したがって、提供することをお勧めします
過度のバッファリングを避けるために、できるだけ早く写真を。
・ID3v2ヘッダーの直後のXing / LAMEフレーム(存在する場合)。 デフォルトで有効になっていますが、
ただし、出力がシーク可能である場合にのみ書き込まれます。 「write_xing」プライベートオプション
無効にするために使用できます。 フレームには、役立つ可能性のあるさまざまな情報が含まれています
オーディオの持続時間やエンコーダの遅延など、デコーダに送信します。
・ファイルの最後にあるレガシーID3v1タグ(デフォルトでは無効)。 有効になっている可能性があります
「write_id3v1」プライベートオプションを使用しますが、その機能は非常に限られているため、
使用はお勧めしません。
例:
ID3v3ヘッダーとID2.3v3フッターを使用してmp1を記述します。
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
画像をmp3ファイルに添付するには、オーディオと画像ストリームの両方を選択します。
"地図":
ffmpeg -i input.mp3 -i cover.png -c コピー -map 0 -map 1
-metadata:s:v title = "アルバムカバー" -metadata:s:v comment = "Cover(Front)" out.mp3
追加機能なしで「クリーンな」MP3を作成します。
ffmpeg -i 入力.wav -write_xing 0 -id3v2_version 0 out.mp3
mpegt
MPEGトランスポートストリームマルチプレクサ。
このマルチプレクサは、ISO13818-1およびETSIEN 300の一部を実装しています。
mpegts muxerで認識されるメタデータ設定は、「service_provider」と
"サービス名"。 それらが設定されていない場合、「service_provider」のデフォルトは「FFmpeg」であり、
「service_name」のデフォルトは「Service01」です。
オプション
マルチプレクサのオプションは次のとおりです。
-mpegts_original_network_id 数
original_network_id(デフォルトは0x0001)を設定します。 これはネットワークの一意の識別子です
DVBで。 その主な用途は、パスを介したサービスの一意の識別です。
Original_Network_ID、Transport_Stream_ID。
-mpegts_transport_stream_id 数
transport_stream_idを設定します(デフォルトは0x0001)。 これにより、DVBのトランスポンダが識別されます。
-mpegts_service_id 数
DVBではプログラムとも呼ばれるservice_id(デフォルトは0x0001)を設定します。
-mpegts_service_type 数
プログラムservice_typeを設定します(デフォルト デジタルテレビ)、以下の事前定義されたリストを参照してください
値。
-mpegts_pmt_start_pid 数
PMTの最初のPIDを設定します(デフォルトは0x1000、最大は0x1f00)。
-mpegts_start_pid 数
データパケットの最初のPIDを設定します(デフォルトは0x0100、最大は0x0f00)。
-mpegts_m2ts_mode 数
2に設定されている場合は、m1tsモードを有効にします。デフォルト値は-1で、m2tsモードを無効にします。
-マックスレート 数
一定のmuxrate(デフォルトのVBR)を設定します。
-pcr_期間 数
デフォルトのPCR再送信時間(デフォルトは20ms)をオーバーライドし、可変の場合は無視します
muxrateが選択されています。
パット期間 数
PAT / PMTテーブル間の最大時間(秒単位)。
sdt_期間 数
SDTテーブル間の最大時間(秒単位)。
-pes_payload_size 数
最小PESパケットペイロードをバイト単位で設定します。
-mpegts_flags フラグ
フラグを設定します(以下を参照)。
-mpegts_copyts 数
値が1に設定されている場合、元のタイムスタンプを保持します。デフォルト値は-1であり、結果は-XNUMXになります。
タイムスタンプを0から開始するようにシフトします。
-tables_version 数
PAT、PMT、およびSDTのバージョンを設定します(デフォルトは0、有効な値は0から31までです)。
このオプションを使用すると、ストリーム構造を更新して、標準のコンシューマーが
変化する。 これを行うには、出力AVFormatContextを再度開くか(APIを使用する場合)、再起動します
ffmpegインスタンス、周期的に変化するtables_version値:
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
オプションmpegts_service_typeは、次の値を受け入れます。
hex_value
ETSI 0で定義されている01x0から300xffまでの任意の468進値。
デジタルテレビ
デジタルTVサービス。
デジタルラジオ
デジタルラジオサービス。
テレテキスト
文字放送サービス。
Advanced_codec_digital_radio
高度なコーデックデジタルラジオサービス。
mpeg2_デジタル_hdtv
MPEG2デジタルHDTVサービス。
Advanced_codec_digital_sdtv
高度なコーデックデジタルSDTVサービス。
Advanced_codec_digital_hdtv
高度なコーデックデジタルHDTVサービス。
オプションmpegts_flagsは、次のようなフラグのセットを取ることができます。
再送信ヘッダー
次のパケットを書き込む前に、PAT / PMTを再送信してください。
緯度
AACにはLATMパケット化を使用します。
pat_pmt_at_frames
各ビデオフレームでPATとPMTを再送信します。
例
ffmpeg -i file.mpg -c コピー\
-mpegts_original_network_id 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider = "一部のプロバイダー" \
-metadata service_name = "Some Channel" \
-y out.ts
mxf、 mxf_d10
MXFマルチプレクサ。
オプション
マルチプレクサのオプションは次のとおりです。
ストア_ユーザー_コメント ブール
ユーザーコメントを保存するか、使用しないかを設定します。 IRTD-10は許可しません
ユーザーコメント。 したがって、デフォルトでは、mxfには書き込みますが、mxf_d10には書き込みません。
ヌル
ヌルマルチプレクサ。
このマルチプレクサは出力ファイルを生成しません。主にテストや
ベンチマークの目的。
たとえば、でデコードをベンチマークする ffmpeg 次のコマンドを使用できます。
ffmpeg -benchmark -i INPUT -f null out.null
上記のコマンドは読み取りまたは書き込みを行わないことに注意してください out.null ファイルですが、
出力ファイルは ffmpeg 構文。
または、次のようにコマンドを記述できます。
ffmpeg -benchmark -i INPUT -f null-
ナット
-同期点 フラグ
nutで同期点の使用法を変更します。
デフォルト つかいます 通常の 低オーバーヘッド を求める AIDS。
なし do つかいます 同期点 at 全て、 縮小 オーバーヘッド 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。 メイキング 流れ
求めることはできません。
結果のファイルは非常に損傷しているため、このオプションの使用はお勧めしません
敏感でシークすることはできません。 また、一般的にからのオーバーヘッド
同期点はごくわずかです。 注、-C 0を使用して無効にすることができます
増大するすべてのデータテーブルにより、限られたメモリで無限のストリームを多重化できます
そしてこれらの不利な点なしで。
タイムスタンプ付き 伸ばす 同期点 a 壁時計 フィールド。
この なし および タイムスタンプ付き フラグは実験的なものです。
-write_index ブール
最後にインデックスを書き込みます。デフォルトでは、インデックスを書き込みます。
ffmpeg -i INPUT-f_strict実験的-syncpointsなし-| プロセッサ
OGG
Oggコンテナマルチプレクサ。
-page_duration デュレーション
マイクロ秒単位の優先ページ期間。 マルチプレクサは、次のようなページを作成しようとします
おおよそです デュレーション マイクロ秒の長さ。 これにより、ユーザーは妥協することができます
シーク粒度とコンテナオーバーヘッドの間。 デフォルトは1秒です。 値0
すべてのセグメントを埋め、ページをできるだけ大きくします。 値が1の場合
ほとんどの状況でページごとに1パケットを効果的に使用し、シークの粒度を小さくします
追加のコンテナオーバーヘッドを犠牲にして。
-serial_offset 値
ストリームのシリアル番号を設定するシリアル値。 別の設定と
十分に大きな値は、生成されたoggファイルを安全にチェーンできることを保証します。
セグメント、 stream_segment、 セグメント
基本的なストリームセグメンター。
このマルチプレクサは、ほぼ固定された期間の多数の個別のファイルにストリームを出力します。 出力
ファイル名のパターンは、次のような方法で設定できます。 image2、または「strftime」を使用して
テンプレートの場合 ストラフタイム オプションは有効です。
「stream_segment」は、ストリーミング出力形式への書き込みに使用されるマルチプレクサの変形です。
グローバルヘッダーを必要とせず、MPEGなどへの出力に推奨されます
トランスポートストリームセグメント。 「ssegment」は「stream_segment」の短いエイリアスです。
すべてのセグメントは、選択された参照ストリームのキーフレームで始まります。
スルー 参照ストリーム オプションを選択します。
ビデオファイルを正確に分割したい場合は、入力キーを作成する必要があることに注意してください
フレームは、セグメンテーションまたはセグメントによって予想される正確な分割時間に対応します
muxerは、指定された開始の次に見つかったキーフレームで新しいセグメントを開始します
時間。
セグメントマルチプレクサは、単一の一定のフレームレートのビデオで最適に機能します。
オプションで、オプションを設定することにより、作成されたセグメントのリストを生成できます
セグメントリスト。 リストタイプは、 セグメントリストの種類 オプション。 エントリ
セグメントリストのファイル名は、デフォルトで対応する対応するベース名に設定されます
セグメントファイル。
参照してください hls muxerは、HLSのより具体的な実装を提供します
セグメンテーション。
オプション
セグメントマルチプレクサは、次のオプションをサポートしています。
参照ストリーム 指定子
文字列で指定されているように、参照ストリームを設定します 指定子。 場合 指定子 設定されている
「自動」にすると、参照が自動的に選択されます。 それ以外の場合はストリームである必要があります
指定子(ffmpegマニュアルの「ストリーム指定子」の章を参照)
参照ストリーム。 デフォルト値は「auto」です。
セグメント形式 形式でアーカイブしたプロジェクトを保存します.
内部コンテナ形式をオーバーライドします。デフォルトでは、ファイル名によって推測されます。
拡大。
セグメント形式オプション オプションリスト
key = valueパラメーターの:-区切りリストを使用して、出力フォーマットオプションを設定します。 値
「:」を含む特殊文字はエスケープする必要があります。
セグメントリスト 名
次の名前のリストファイルも生成します 名。 指定しない場合、リストファイルは生成されません。
セグメントリストフラグ フラグ
セグメントリストの生成に影響するフラグを設定します。
現在、次のフラグをサポートしています。
キャッシュ
キャッシュを許可します(M3U8リストファイルにのみ影響します)。
ライブ
ライブフレンドリーなファイル生成を許可します。
セグメントリストサイズ サイズ
リストファイルを更新して、最大で含まれるようにします サイズ セグメント。 0の場合、リストファイル
すべてのセグメントが含まれます。 デフォルト値は0です。
セグメントリストエントリプレフィックス 接頭辞
プリペンド 接頭辞 各エントリに。 絶対パスを生成するのに便利です。 デフォルトではプレフィックスなし
適用される。
セグメントリストの種類 type
リスト形式を選択します。
次の値が認識されます。
フラットな
作成されたセグメントのフラットリストを、XNUMX行にXNUMXセグメントずつ生成します。
csv、 EXT
作成されたセグメントのリストを生成します。各行が一致する、行ごとにXNUMXつのセグメントです。
形式(カンマ区切り値):
、 、
セグメント_ファイル名 は、muxerによって生成された出力ファイルの名前です。
提供されたパターンに。 CSVエスケープ(RFC4180に準拠)は、次の場合に適用されます。
必要。
セグメント開始時刻 および セグメント終了時間 セグメントの開始時刻と終了時刻を指定します
秒単位で表されます。
接尾辞が「.csv」または「.ext」のリストファイルは、この形式を自動選択します。
EXT 賛成または非推奨です csvファイル.
ffconcat
作成したセグメントのffconcatファイルを生成します。 結果のファイルを読み取ることができます
FFmpegを使用する 連結 demuxer。
接尾辞が「.ffcat」または「.ffconcat」のリストファイルは、この形式を自動選択します。
m3u8
に準拠した拡張M3U8ファイルバージョン3を生成します
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
接尾辞「.m3u8」が付いたリストファイルは、この形式を自動選択します。
指定しない場合、タイプはリストファイル名のサフィックスから推測されます。
セグメント時間 時間
セグメント期間をに設定 時間、値は期間の指定である必要があります。 ディフォルト
値は「2」です。 も参照してください セグメント時間 オプションを選択します。
参照ストリームキーを強制しない限り、分割は正確でない可能性があることに注意してください-
指定された時間のフレーム。 紹介通知と以下の例を参照してください。
セグメント時刻 1 | 0
「1」に設定すると、00:00から始まる一定の時間間隔で分割されます。 NS
時間 で指定された値 セグメント時間 分割の長さを設定するために使用されます
間隔。
たとえば セグメント時間 「900」に設定すると、次の場所でファイルを作成できます。
12時、00時12分、15時12分など。
デフォルト値は「0」です。
セグメント時間デルタ デルタ
セグメントの開始時刻を選択するときに、精度時間を指定します。
期間の指定。 デフォルト値は「0」です。
デルタが指定されている場合、そのPTSが条件を満たす場合、キーフレームは新しいセグメントを開始します。
関係:
PTS> = start_time --time_delta
このオプションは、GOPで常に分割されるビデオコンテンツを分割するときに役立ちます
指定された分割時間の直前にキーフレームが見つかった場合の境界。
特に、 ffmpeg オプション フォースキーフレームを選択します。
によって指定されたキーフレーム時間 フォースキーフレーム のため、正確に設定できない場合があります
丸めの問題。その結果、キーフレーム時間が直前に設定される可能性があります。
指定された時間。 一定のフレームレートのビデオの場合、値は1 /(2 *フレームレート) すべき
指定された時間とによって設定された時間の間の最悪の場合の不一致に対処します
フォースキーフレーム.
セグメント時間 回数
分割点のリストを指定します。 回数 カンマ区切りの期間のリストが含まれています
仕様、昇順。 も参照してください セグメント時間 オプションを選択します。
セグメント_フレーム フレーム
分割ビデオフレーム番号のリストを指定します。 フレーム カンマ区切りのリストが含まれています
整数、昇順。
このオプションは、参照ストリームのキーフレームが
が見つかり、フレームの連続番号(0から開始)が次の値以上である
リスト内の次の値。
セグメント_ラップ 制限
セグメントインデックスに到達したら、ラップアラウンドします 制限.
セグメント開始番号 数
最初のセグメントのシーケンス番号を設定します。 デフォルトは0です。
ストラフタイム 1 | 0
「strftime」関数を使用して、書き込む新しいセグメントの名前を定義します。 これなら
が選択されている場合、出力セグメント名には「strftime」関数テンプレートが含まれている必要があります。
デフォルト値は0です。
ブレーク非キーフレーム 1 | 0
有効になっている場合は、キーフレーム以外のフレームでセグメントを開始できるようにします。 これは改善します
キーフレーム間の時間が一貫していない場合の一部のプレーヤーの動作
他の人にとっては事態が悪化し、シーク中に奇妙なことが起こる可能性があります。 デフォルトは0です。
リセットタイムスタンプ 1 | 0
各セグメントの先頭でタイムスタンプをリセットして、各セグメントがで始まるようにします
ほぼゼロのタイムスタンプ。 これは、生成されたセグメントの再生を容易にすることを目的としています。 XNUMX月
マルチプレクサ/コーデックのいくつかの組み合わせでは機能しません。 デフォルトでは0に設定されています。
初期オフセット オフセット
出力パケットのタイムスタンプに適用するタイムスタンプオフセットを指定します。 引数はする必要があります
期間の指定であり、デフォルトは0です。
例
・ファイルの内容を再多重化する in.mkv セグメントのリストに out-000.nut, out-001.nutなど
生成されたセグメントのリストをに書き込みます アウトリスト:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nut
・セグメント入力および出力セグメントの出力フォーマットオプションの設定:
ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags = + faststart out%03d.mp4
・指定された分割点に従って入力ファイルをセグメント化します。 セグメント時間
オプション:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
・ 使用 ffmpeg フォースキーフレーム で入力にキーフレームを強制するオプション
指定された場所とセグメントオプション セグメント時間デルタ を説明する
キーフレーム時間を設定するときに操作される可能性のある丸め。
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
入力ファイルにキーフレームを強制するには、トランスコーディングが必要です。
・フレーム番号に従って入力ファイルを分割することにより、入力ファイルをセグメント化します
で指定されたシーケンス セグメント_フレーム オプション:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
・変換 in.mkv 「libx264」および「libfaac」エンコーダーを使用してTSセグメントに:
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
・入力ファイルをセグメント化し、M3U8ライブプレイリストを作成します(ライブHLSとして使用できます)
ソース):
ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_listplaylist.m3u8 \
-segment_list_flags + live -segment_time 10 out%03d.mkv
スムーズストリーミング
Smooth Streaming muxerは、配信に適した一連のファイル(マニフェスト、チャンク)を生成します
従来のWebサーバーで。
ウィンドウサイズ
マニフェストに保持されるフラグメントの数を指定します。 デフォルトは0(すべて保持)。
エクストラウィンドウサイズ
マニフェストから削除する前にマニフェストの外部に保持されるフラグメントの数を指定します
ディスク。 デフォルト5。
先読み回数
先読みフラグメントの数を指定します。 デフォルト2。
min_frag_duration
最小フラグメント期間(マイクロ秒単位)を指定します。 デフォルトは5000000です。
出口で削除
終了時にすべてのフラグメントを削除するかどうかを指定します。 デフォルトは0(削除しないでください)。
tee
ティーマルチプレクサを使用して、同じデータを複数のファイルまたはその他の種類のファイルに書き込むことができます
マルチプレクサ。 たとえば、ビデオをネットワークにストリーミングしたり、保存したりするために使用できます。
同時にディスク。
これは、複数の出力を指定することとは異なります。 ffmpeg コマンドラインツールの理由
オーディオおよびビデオデータは、ティーマルチプレクサでXNUMX回だけエンコードされます。 エンコーディングは
非常に高価なプロセス。 libavformat APIを直接使用する場合は、役に立たないためです。
その後、同じパケットを複数のマルチプレクサに直接フィードすることができます。
スレーブ出力は、マルチプレクサに付けられたファイル名で「|」で区切られて指定されます。 もしも
スレーブ名のいずれかに「|」が含まれていますセパレータ、先頭または末尾のスペース、または
特殊文字、エスケープする必要があります(を参照) 「引用 および 逃げる」 in
ffmpeg-utils(1) マニュアル).
Muxerオプションは、スレーブごとにリストとして追加することで指定できます。 キー=値
角かっこで囲まれた「:」で区切られたペア。 オプション値に特別な値が含まれている場合
文字または ':'区切り文字、これらはエスケープする必要があります。 これは第XNUMXレベルであることに注意してください
脱出。
次の特別なオプションも認識されます。
f フォーマット名を指定します。 出力名のサフィックスから推測できない場合に便利です。
bsfs [/スペック]
指定された出力に適用するビットストリームフィルターのリストを指定します。
特定のビットストリームフィルターを適用するストリームを指定することができます。
「/」で区切られたオプションにストリーム指定子を追加します。 スペック ストリームである必要があります
指定子(を参照) フォーマット 流れ 指定子)。 ストリーム指定子が指定されていない場合、
ビットストリームフィルターは、出力内のすべてのストリームに適用されます。
「、」で区切って、いくつかのビットストリームフィルターを指定できます。
select
ストリームで指定された、スレーブ出力にマップする必要があるストリームを選択します
指定子。 指定しない場合、これはデフォルトですべての入力ストリームになります。
例
・何かをエンコードし、WebMファイルにアーカイブしてMPEG-TS overUDPとしてストリーミングする
(ストリームは明示的にマッピングする必要があります):
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"archive-20121107.mkv | [f = mpegts] udp://10.0.1.255:1234 /"
・ 使用する ffmpeg 入力をエンコードし、出力をXNUMXつの異なる宛先に送信します。
「dump_extra」ビットストリームフィルターは、すべての
MPEG-TS形式の要求に応じて、ビデオキーフレームパケットを出力します。 選択オプション
に適用されます out.aac オーディオパケットのみを含めるため。
ffmpeg -i ... -map 0 -flags + global_header -c:v libx264 -c:a aac -strict Experimental
-f tee "[bsfs / v = dump_extra] out.ts | [movflags = + faststart] out.mp4 | [select = a] out.aac"
・以下のとおりですが、オーディオ出力にはストリーム「a:1」のみを選択してください。 XNUMX番目のレベルに注意してください
「:」はオプションを区切るために使用される特殊文字であるため、エスケープを実行する必要があります。
ffmpeg -i ... -map 0 -flags + global_header -c:v libx264 -c:a aac -strict Experimental
-f tee "[bsfs / v = dump_extra] out.ts | [movflags = + faststart] out.mp4 | [select = \ 'a:1 \'] out.aac"
注:一部のコーデックでは、出力形式に応じて異なるオプションが必要になる場合があります。 自動-
これの検出はティーマルチプレクサでは機能しません。 主な例は グローバルヘッダー
フラグ。
webm_dash_manifest
WebMDASHマニフェストマルチプレクサ。
このマルチプレクサは、WebM DASHマニフェスト仕様を実装して、DASHマニフェストを生成します
XML。 また、DASHライブストリームのマニフェスト生成もサポートしています。
詳細については、以下を参照してください。
・WebM DASH仕様:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
・ISO DASH仕様:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
オプション
このマルチプレクサは、次のオプションをサポートしています。
Adaptation_sets
このオプションの構文は次のとおりです。 "id = x、streams = a、b、c id = y、streams = d、e"ここで、x
およびyは適応セットの一意の識別子であり、a、b、c、dおよびeは
対応するオーディオおよびビデオストリームのインデックス。 任意の数の適応セット
このオプションを使用して追加できます。
ライブ
これを1に設定すると、ライブストリームのDASHマニフェストが作成されます。 デフォルト:0。
チャンクスタートインデックス
最初のチャンクの開始インデックス。 これは 開始番号 の属性
セグメント テンプレート マニフェストの要素。 デフォルト:0。
チャンクデュレーション_ms
ミリ秒単位の各チャンクの期間。 これは デュレーション の属性
セグメント テンプレート マニフェストの要素。 デフォルト:1000。
utc_timing_url
UTCタイムスタンプをISO形式で返すページのURL。 これは
値 の属性 UTCタイミング マニフェストの要素。 デフォルト:なし。
time_shift_buffer_ Depth
表現が保証されている最小時間(秒単位)のシフトバッファー
利用可能になります。 これは タイムシフトバッファ深度 の属性 MPD
エレメント。 デフォルト:60。
最小更新期間
マニフェストの最小更新期間(秒単位)。 これは
最小更新期間 の属性 MPD エレメント。 デフォルト:0。
例
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i video2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-マップ 0 -マップ 1 -マップ 2 -マップ 3 \
-cコピー\
-f webm_dash_manifest \
-adaptation_sets "id = 0、streams = 0,1 id = 1、streams = 2,3" \
マニフェスト.xml
webm_chunk
WebM Live ChunkMuxer。
このマルチプレクサは、WebMヘッダーとチャンクを個別のファイルとして書き出します。
DASHを介してWebMライブストリームをサポートするクライアント。
オプション
このマルチプレクサは、次のオプションをサポートしています。
チャンクスタートインデックス
最初のチャンクのインデックス(デフォルトは0)。
ヘッダ
初期化データが書き込まれるヘッダーのファイル名。
audio_chunk_duration
ミリ秒単位の各オーディオチャンクの継続時間(デフォルトは5000)。
例
ffmpeg -f v4l2 -i / dev / video0 \
-f alsa -i hw:0 \
-マップ0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f webm_chunk \
-ヘッダーwebm_live_video_360.hdr\
-chunk_start_index 1 \
webm_live_video_360_%d.chk \
-マップ1:0 \
-c:a libvorbis \
-b:a 128k \
-f webm_chunk \
-ヘッダーwebm_live_audio_128.hdr\
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
METADATA
FFmpegは、メディアファイルから単純なUTF-8でエンコードされたINIのようなテキストにメタデータをダンプすることができます
ファイルを作成し、メタデータmuxer / demuxerを使用してロードし直します。
ファイル形式は次のとおりです。
1.ファイルは、ヘッダーと、セクションに分割されたいくつかのメタデータタグで構成されます。
独自のラインで。
2.ヘッダーは ; FFMETADATA 文字列の後にバージョン番号(現在は1)が続きます。
3.メタデータタグの形式は key = value
4.ヘッダーがグローバルメタデータに続く直後
5.グローバルメタデータの後に、ストリームごと/チャプターごとのメタデータを持つセクションが存在する場合があります。
6.セクションは、大文字のセクション名(STREAMまたはCHAPTER)で始まります。
角かっこ([, ])そして次のセクションまたはファイルの終わりで終わります。
7.章のセクションの冒頭に、次の目的で使用されるオプションのタイムベースがある場合があります。
開始/終了値。 それは形でなければなりません タイムベース=NUM/日ここで、 NUM および 日 は整数です。
タイムベースが欠落している場合、開始/終了時間はミリ秒単位であると見なされます。
次に、チャプターセクションには、チャプターの開始時刻と終了時刻がフォームに含まれている必要があります =スタートNUM,
END =NUMここで、 NUM は正の整数です。
8.空の行とで始まる行 ; or # 無視されます。
9.メタデータキーまたは特殊文字を含む値(=, ;, #, \ および改行)は
バックスラッシュでエスケープする \.
10.メタデータの空白に注意してください(例: foo = バー)はの一部と見なされます
タグ(上記の例では、キーは foo 、値は
バー).
ffmetadataファイルは次のようになります。
; FFMETADATA1
title = Bike \\ shed
;これはコメントです
アーティスト= FFmpegトロールチーム
[章]
タイムベース= 1/1000
START = 0
#chapterは0:01:00に終了します
END = 60000
タイトル=章\#1
[ストリーム]
title = multi \
ライン
ffmetadata muxerとdemuxerを使用することにより、入力からメタデータを抽出することができます。
ファイルをffmetadataファイルに変換してから、ファイルを出力ファイルにトランスコードします。
ffmetadataファイルを編集しました。
でffmetadataファイルを抽出する ffmpeg 次のようになります:
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
編集したメタデータ情報をFFMETADATAFILEファイルから再挿入するには、次のようにします。
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
onworks.net サービスを使用してオンラインで ffmpeg 形式を使用する