音声と動画の同期ずれ補正値を計算
音声と動画の同期ずれ計算機は、測定済みの音声の先行または遅延を、具体的な補正値へ変換します。対応する映像より音が先に到達する場合は正のミリ秒値を、後から到達する場合は負の値を入力してください。結果には、音声と映像のどちらを遅らせるか、適用する負でない遅延量、参照用の符号付き測定値が示されます。編集ソフト、トランスコーダー、プレーヤー、マルチプレクス処理を設定する前に、符号の解釈による混乱を避けられます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
一貫した符号規則で検出済みのずれを記録します
まず、音の出来事と、それに対応する映像上の出来事を比較して測定します。手拍子、カチンコ、閉まるドア、口の動きが明瞭な子音などが基準として適しています。音声が先行している場合は正の数を入力します。たとえば、対応するフレームより180ミリ秒早く音が聞こえる場合は180と入力してください。音声が遅れている場合は負の数を使います。映像が基準の出来事に到達してから240ミリ秒後に音が聞こえる場合は-240です。この規則は、特定の編集アプリケーションの設定値ではなく、映像に対する音声の位置を表します。この区別は重要です。アプリケーションによって、入力の開始時刻を指定するものと、追加する遅延量を指定するものがあり、正の符号が逆の意味になる場合があるためです。最初に検出された関係を記録すれば、観測結果をソフトウェアの画面仕様から切り離せます。本計算機は符号付きの測定値を保持し、補正の方向と量を別々に返すため、根拠と操作を取り違えずに済みます。
先に到達するストリームへ遅延を適用します
同期を戻すには、先に到達するストリームを遅らせます。入力値が正の場合、音声が映像より先行しているため、結果の direction は delay_audio となり、audio_delay_ms に同じ大きさが入ります。入力値が負の場合、音声は映像より遅れており、映像のほうが早く到達しています。そのため direction は delay_video となり、絶対値が video_delay_ms に入ります。offset_ms は常に0以上で、適用すべき遅延量を示します。もう一方のストリームの遅延は0になるため、自動処理でも操作対象が明確です。測定値が0なら direction は none となり、どちらも移動する必要はありません。この計算は、メディアの伸縮、リサンプリング、切り取り、内容変更を行わず、開始位置の補正だけを求めます。再生開始時は同期していても徐々にずれる場合、固定オフセットだけでは直せません。サンプルレート、フレームレートの解釈、クロックドリフト、破損したタイムスタンプをご確認ください。一定の先行や遅延であれば、一方に遅延を加えることで再生速度を変えずに出来事をそろえられます。
編集またはマルチプレクス処理へ安全に反映します
direction で遅延を与えるトラックまたはストリームを決め、offset_ms を遅延量として使用します。別のツールへ入力する前に、そのツールがミリ秒、秒、フレーム、タイムコードのどれを受け付けるかをご確認ください。補正内容を変えずに単位だけを換算します。250ミリ秒は0.25秒ですが、フレームへの換算にはプロジェクトのフレームレートも必要です。遅延対象の名称ではなく符号付きシフトを求める画面では、説明書を確認して方向を慎重に対応付けてください。その符号規則は detected_audio_offset_ms と異なる場合があります。修正後の出力は、番組の冒頭と終端付近にある複数の明瞭な出来事で確認してください。複数箇所を調べると、一定のずれと徐々に広がるドリフトを区別でき、曖昧な音を基準にした測定にも気づけます。元の符号付き測定値と補正内容をジョブのメタデータやレビュー記録に残すと、後から理由を追跡できます。本計算は決定的で、メディアのアップロードは不要です。波形解析や手動確認で得たずれを品質管理スクリプトへ組み込む用途にも適しています。
活用例
別録りのマイク音声を補正
測定したマイク音声の先行または遅延から、カメラ映像と多重化する前に必要な正確な遅延量を求めます。
編集タイムラインの補正値を準備
レビューで報告された同期誤差を、明確な遅延対象とミリ秒単位の補正量へ変換します。
メディア品質管理の補正を自動化
検出器から符号付きのずれを受け取り、適切な音声処理または映像処理へ遅延値を渡します。
よくある質問
正の音声オフセットは何を意味しますか?
対応する映像上の出来事より音声が先行しています。返された offset_ms の分だけ音声を遅らせてください。
負の音声オフセットは何を意味しますか?
対応する映像上の出来事より音声が遅れているため、映像が先行しています。offset_ms の分だけ映像を遅らせてください。
オフセットが0の場合はどうなりますか?
開始位置の補正が不要なため、direction は none となり、音声と映像の遅延はいずれも0です。
時間とともに広がる同期ずれも直せますか?
いいえ。本計算は固定遅延を求めます。進行するずれには、タイミング、サンプルレート、フレームレート、タイムスタンプなどの修正が必要です。
計算料金はいくらですか?
APIリクエスト1回につき$0.002です。決定的な計算であり、メディアファイルの送信や処理は行いません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/video/mux-audio-offset \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_offset_ms":180}'const res = await fetch("https://api.kit.forhosting.com/video/mux-audio-offset", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio_offset_ms": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/mux-audio-offset",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio_offset_ms": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/mux-audio-offset", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio_offset_ms":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio_offset_ms":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/mux-audio-offset", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"audio_offset_ms": 180
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.mux_audio_offset",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |