FFmpeg リサンプラー ドキュメント
1 概要
FFmpeg のリサンプラーは、libswresample ライブラリの音声リサンプリング機能に対する高レベルなインターフェースを提供します。具体的には、音声のリサンプリング、音声のチャンネルレイアウトのリマトリクス(再合成)、そして音声フォーマットおよびパッキングレイアウトの変換を行えます。
2 リサンプラーのオプション
音声リサンプラーは次の名前付きオプションに対応しています。
オプションは、FFmpeg のツールでは -option value、aresample フィルタでは option=value のように指定して設定できます。また SwrContext のオプションに直接値を設定するか、プログラムから扱う場合は libavutil/opt.h の API を利用して設定することもできます。
uchl, used_chlayout
使用する入力チャンネルレイアウトを設定します。既定では未設定です。このオプションは特別なリマッピングのときにのみ使われます。
isr, in_sample_rate
入力のサンプリングレートを設定します。既定値は 0 です。
osr, out_sample_rate
出力のサンプリングレートを設定します。既定値は 0 です。
isf, in_sample_fmt
入力のサンプルフォーマットを指定します。既定では none に設定されています。
osf, out_sample_fmt
出力のサンプルフォーマットを指定します。既定では none に設定されています。
tsf, internal_sample_fmt
内部処理用のサンプルフォーマットを設定します。既定値は none です。明示的に設定しない場合は自動的に選択されます。
ichl, in_chlayout ochl, out_chlayout
入力/出力のチャンネルレイアウトを設定します。
必要な構文については (ffmpeg-utils)ffmpeg-utils(1) マニュアルの Channel Layout の節 を参照してください。
clev, center_mix_level
センターのミックスレベルを設定します。デシベルで表す値で、[-32,32] の範囲でなければなりません。
slev, surround_mix_level
サラウンドのミックスレベルを設定します。デシベルで表す値で、[-32,32] の範囲でなければなりません。
lfe_mix_level
非 LFE 出力への LFE のミックスレベルを設定します。LFE の入力はあるが LFE の出力がない場合に使われます。デシベルで表す値で、[-32,32] の範囲でなければなりません。
rmvol, rematrix_volume
リマトリクス時の音量を設定します。既定値は 1.0 です。
rematrix_maxval
リマトリクスにおける最大出力値を設定します。これによりクリッピングの防止と音量低下の防止のどちらを優先するかを調整できます。値を 1.0 にするとクリッピングを防ぎます。
flags, swr_flags
コンバーターが使うフラグを設定します。既定値は 0 です。
次の個別フラグに対応しています。
res
リサンプリングを強制します。このフラグを指定すると、入力と出力のサンプリングレートが一致している場合でもリサンプリングが行われます。
dither_scale
ディザのスケールを設定します。既定値は 1 です。
dither_method
ディザの方式を設定します。既定値は 0 です。
対応する値は次のとおりです。
‘rectangular’
矩形(rectangular)ディザを選択します。
‘triangular’
三角(triangular)ディザを選択します。
‘triangular_hp’
ハイパスを伴う三角ディザを選択します。
‘lipshitz’
Lipshitz ノイズシェーピングディザを選択します。
‘shibata’
Shibata ノイズシェーピングディザを選択します。
‘low_shibata’
low Shibata ノイズシェーピングディザを選択します。
‘high_shibata’
high Shibata ノイズシェーピングディザを選択します。
‘f_weighted’
f-weighted ノイズシェーピングディザを選択します。
‘modified_e_weighted’
modified-e-weighted ノイズシェーピングディザを選択します。
‘improved_e_weighted’
improved-e-weighted ノイズシェーピングディザを選択します。
resampler
リサンプリングエンジンを設定します。既定値は swr です。
対応する値は次のとおりです。
‘swr’
ネイティブのソフトウェアリサンプラー(SW Resampler)を選択します。この場合、フィルタオプションの precision と cheby は適用されません。
‘soxr’
SoX リサンプラー(利用可能な環境のみ)を選択します。この場合、compensation、およびフィルタオプションの filter_size、phase_shift、exact_rational、filter_type、kaiser_beta は適用されません。
filter_size
swr 専用。リサンプリングフィルタのサイズを設定します。既定値は 32 です。
phase_shift
swr 専用。リサンプリングのフェーズシフトを設定します。既定値は 10 で、[0,30] の範囲でなければなりません。
linear_interp
有効にすると線形補間を使います(既定では有効)。exact_rational が失敗した場合に品質より速度を優先したいときは無効にします。
exact_rational
swr 専用。有効にすると、入力と出力のサンプリングレートに基づいて正確な phase_count を使おうとします。ただし 1 << phase_shift より大きくなる場合は、フォールバックとして phase_count は 1 << phase_shift になります。既定では有効です。
cutoff
カットオフ周波数(swr では 6dB 点、soxr では 0dB 点)の比率を設定します。0 から 1 の浮動小数点値でなければなりません。既定値は swr では 0.97、soxr では 0.91 です(soxr の値はサンプリングレート 44100 のとき、20kHz までの音声帯域全体を保ちます)。
precision
soxr 専用。リサンプリング後の信号を計算するビット精度です。既定値の 20(適切なディザリングと組み合わせると出力ビット深度 16 に適します)は SoX の「High Quality」に相当し、28 にすると SoX の「Very High Quality」に相当します。
cheby
soxr 専用。パスバンドのロールオフなし(Chebyshev)と、「無理数」比に対するより高精度な近似を選択します。既定値は 0 です。
async
swr 専用。引き伸ばし・圧縮・埋め込み・切り詰めを使って、タイムスタンプに対し音声を同期させる単純な 1 パラメータの仕組みです。1 を設定すると埋め込みと切り詰めが有効になり、より大きい値は、1 秒あたりにデータを引き伸ばしたり圧縮したりできる最大量をサンプル数で表します。既定値は 0 で、この場合サンプルを音声のタイムスタンプに合わせる補正は行われません。
first_pts
swr 専用。最初の pts がこの値であると仮定します。時間の単位は 1 / サンプリングレートです。これによりストリーム先頭でのパディングや切り詰めが行えます。既定では最初のフレームの想定 pts について何も仮定しないため、パディングも切り詰めも行われません。たとえば、映像ストリームより音声ストリームが遅れて始まる場合に 0 を設定して先頭を無音でパディングしたり、エンコーダ遅延によって pts が負になったサンプルを切り詰めたりできます。
min_comp
swr 専用。データをタイムスタンプに合わせるための引き伸ばし・圧縮・埋め込み・切り詰めを発動させる、タイムスタンプと音声データの最小差(秒)を設定します。既定では引き伸ばし・圧縮・埋め込み・切り詰めは無効です(min_comp = FLT_MAX)。
min_hard_comp
swr 専用。データをタイムスタンプに合わせるためのサンプルの追加・削除を発動させる、タイムスタンプと音声データの最小差(秒)を設定します。このオプションは、実質的にハード(切り詰め/埋め込み)補正とソフト(圧縮/引き伸ばし)補正を切り替えるしきい値です。なお、すべての補正は既定では min_comp によって無効化されています。既定値は 0.1 です。
comp_duration
swr 専用。データをタイムスタンプに合わせるために引き伸ばし・圧縮を行う期間(秒)を設定します。負でない倍精度浮動小数点値でなければならず、既定値は 1.0 です。
max_soft_comp
swr 専用。データをタイムスタンプに合わせるために引き伸ばし・圧縮を行う最大の係数を設定します。負でない倍精度浮動小数点値でなければならず、既定値は 0 です。
matrix_encoding
マトリクスエンコードされたステレオ方式を選択します。
次の値を受け付けます。
‘none’
なしを選択します。
‘dolby’
Dolby を選択します。
‘dplii’
Dolby Pro Logic II を選択します。
既定値は none です。
filter_type
swr 専用。リサンプリングフィルタの種類を選択します。これはリサンプリング処理にのみ影響します。
次の値を受け付けます。
‘cubic’
cubic を選択します。
‘blackman_nuttall’
Blackman Nuttall 窓関数による sinc を選択します。
‘kaiser’
Kaiser 窓関数による sinc を選択します。
kaiser_beta
swr 専用。Kaiser 窓のベータ値を設定します。[2,16] の範囲の倍精度浮動小数点値でなければならず、既定値は 9 です。
output_sample_bits
swr 専用。ディザリングに使う出力サンプルのビット数を設定します。[0,64] の範囲の整数でなければならず、既定値は 0 で、これは使用しないことを意味します。
3 関連項目
ffmpeg, ffplay, ffprobe, libswresample
4 作者
FFmpeg の開発者一同。
作者についての詳細は、プロジェクトの Git 履歴(https://git.ffmpeg.org/ffmpeg)を参照してください。たとえば FFmpeg のソースディレクトリで git log コマンドを実行するか、オンラインリポジトリ https://git.ffmpeg.org/ffmpeg を閲覧してください。
各コンポーネントのメンテナは、ソースコードツリー内の MAINTAINERS ファイルに記載されています。
ホスティング提供: telepoint.bg