これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ffmpeg-bitstream-filters です。
プログラム:
NAME
ffmpeg-bitstream-filters - FFmpeg ビットストリーム フィルター
DESCRIPTION
このドキュメントでは、libavcodec ライブラリによって提供されるビットストリーム フィルターについて説明します。
ビットストリーム フィルターは、エンコードされたストリーム データに対して動作し、ビットストリーム レベルの処理を実行します。
デコードを実行せずに変更を加えます。
ビットストリーム FILTERS
FFmpegビルドを構成すると、サポートされているすべてのビットストリームフィルターが有効になります。
ディフォルト。 構成オプション「--list-bsfs」を使用して、使用可能なすべてのものをリストできます。
構成オプション「--disable-bsfs」を使用して、すべてのビットストリームフィルターを無効にできます。
オプション「--enable-bsf = BSF」を使用してビットストリームフィルターを選択的に有効にするか、次のことができます
オプション「--disable-bsf = BSF」を使用して、特定のビットストリームフィルターを無効にします。
ff *ツールのオプション「-bsfs」は、サポートされているすべてのビットストリームのリストを表示します
ビルドに含まれるフィルター。
ff *ツールには、ストリームごとに適用される-bsfオプションがあり、カンマ区切りのリストを取得します。
フィルタ。そのパラメータは、「=」の後のフィルタ名の後に続きます。
ffmpeg -i INPUT -c:v copy -bsf:v filter1 [= opt1 = str1 / opt2 = str2] [、filter2] OUTPUT
以下は、現在利用可能なビットストリームフィルターの説明です。
パラメータ(ある場合)。
aac_adtstoasc
MPEG-2 / 4 AACADTSをMPEG-4オーディオ固有の構成ビットストリームフィルターに変換します。
このフィルタは、MPEG-4 / 2ADTSヘッダーからMPEG-4AudioSpecificConfigを作成し、削除します
ADTSヘッダー。
これは、たとえば、AACストリームを生のADTSAACコンテナから
FLVまたはMOV / MP4ファイル。
ムシャムシャ食べる
パケットの終わりにあるゼロパディングを削除します。
ダンプ_エクストラ
フィルタリングされたパケットの先頭にextradataを追加します。
追加の引数は、フィルタリングするパケットを指定します。 それは受け入れます
値:
a すべてのキーパケットにextradataを追加しますが、 ローカルヘッダー は、 フラグ2 コーデック
コンテキストフィールド
k すべてのキーパケットにextradataを追加します
e すべてのパケットにextradataを追加します
指定されていない場合、それが想定されます k.
たとえば、次のように ffmpeg コマンドはグローバルヘッダーを強制します(したがって、個人を無効にします
「libx264」エンコーダーによって生成されたH.264パケットのパケットヘッダー)が、それらを修正します
extradataに格納されているヘッダーをキーパケットに追加することにより、次のようになります。
ffmpeg -i INPUT -map 0 -flags:v + global_header -c:v libx264 -bsf:v dump_extra out.ts
h264_mp4toannexb
H.264ビットストリームを長さプレフィックスモードから開始コードプレフィックスモードに変換します(
ITU-TH.264仕様の付録Bで定義されています)。
これは、一部のストリーミング形式、通常はMPEG-2トランスポートストリーム形式で必要です。
(「mpegts」)。
たとえば、H.4ストリームを含むMP264ファイルをmpegts形式にリマックスするには ffmpeg,
次のコマンドを使用できます。
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
imxdump
MOVに収まり、Final CutProデコーダで使用できるようにビットストリームを変更します。 この
フィルタはmpeg2videoコーデックにのみ適用され、Final Cut Pro7には必要ない可能性があります。
適切な新しい -タグ:v.
たとえば、30MB /秒のNTSCIMXをMOVにリマックスするには、次のようにします。
ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
mjpeg2jpeg
MJPEG / AVI1パケットを完全なJPEG / JFIFパケットに変換します。
MJPEGは、各ビデオフレームが本質的にJPEG画像であるビデオコーデックです。 The
個々のフレームは、たとえば次の方法で損失なく抽出できます。
ffmpeg -i ../some_mjpeg.avi -c:v copy frame_%d.jpg
残念ながら、これらのチャンクはDHTセグメントがないため、不完全なJPEG画像です。
デコードに必要です。 からの引用
<http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
2001年にrec.video.desktopニュースグループに書いたエイブリー・リーは、「MJPEG、または
少なくともMJPGfourccを持つAVIのMJPEGは、固定された制限付きJPEGです-そして
*省略*-ハフマンテーブル。 JPEGはYCbCr色空間である必要があり、4:2:2である必要があります。
算術またはプログレッシブではなく、基本的なハフマン符号化を使用する必要があります。 。 。 。 あなたは確かにすることができます
MJPEGフレームを抽出し、通常のJPEGデコーダーでデコードしますが、
それらの前にDHTセグメントを追加します。そうしないと、デコーダーは解凍する方法がわかりません。
データ。 必要な正確な表は、OpenDML仕様に記載されています。」
このビットストリームフィルターは、MJPEGストリームから抽出されたフレームのヘッダーにパッチを適用します
(AVI1ヘッダーIDを持ち、DHTセグメントがない)完全に修飾されたJPEGを生成する
画像。
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
exiftran -i -9 frame * .jpg
ffmpeg -i frame_%d.jpg -c:v copyrotated.avi
mjpega_dump_header
モブサブ
mp3_header_decompress
mpeg4_unpack_bframes
DivXスタイルのパックされたBフレームを解凍します。
DivXスタイルのパックされたBフレームは有効なMPEG-4ではなく、壊れたものの回避策にすぎませんでした
Windowsサブシステムのビデオ。 彼らはより多くのスペースを使用し、マイナーなAV同期の問題を引き起こす可能性があり、
デコードするCPUパワーが増える(プレーヤーに補正するためのデコードされた画像キューがない場合)
パケットスタイルごとに2,0,2,0フレーム)、標準のコンテナにコピーすると問題が発生します
mp4やmpeg-ps / tsのように、MPEG-4デコーダーはそれらをデコードできない可能性があるためです。
有効なMPEG-4ではありません。
たとえば、DivXスタイルのパックされたBフレームを持つMPEG-4ストリームを含むAVIファイルを修正するには
ffmpeg、次のコマンドを使用できます。
ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
ノイズ
コンテナを損傷することなく、パケットの内容を損傷します。 ファジングまたは
エラーの回復力/隠蔽性のテスト。
パラメータ:数値文字列。その値は、出力バイトの頻度に関連しています。
変更されました。 したがって、0以下の値は禁止されており、値が小さいほど多くなります。
頻繁なバイトが変更されます。1はすべてのバイトが変更されることを意味します。
ffmpeg -i INPUT -c copy -bsf noise [= 1] output.mkv
すべてのバイトに変更を適用します。
追加の削除
onworks.net サービスを使用してオンラインで ffmpeg-bitstream-filters を使用する