フレーム数をタイムコードに変換
30 fpsならフレーム1800はちょうど1分で、00:01:00:00と表示されます。フレーム0は常に00:00:00:00です。ラベルはキューシートや字幕の確認にそのまま貼り付けられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- フレーム
- 1,800
- Fps
- 30
- 時間
- 0
- 分
- 1
- 秒
- 0
- フレーム数
- 0
フレーム番号は非線形編集ソフト、レンダーファーム、キャプションツールの本来の時計ですが、人が読むのは時・分・秒と余りのフレームです。本コンバータは負でない整数のフレーム数と、正のフレームレート(フレーム毎秒)を受け取り、その四つの成分とゼロ埋めの HH:MM:SS:FF ラベルを返します。数え方はゼロ起点で、フレーム 0 は 00:00:00:00、30 fps では 1800 フレームがちょうど 1 分です。
フレーム数が HH:MM:SS:FF になる仕組み
非ドロップのタイムコードは、各画面を時・分・秒と、その秒の中のフレーム桁でラベル付けします。一定の正のフレームレート fps では、1 秒ごとにちょうどその枚数のフレーム、1 分は 60 秒、1 時間は 3600 秒を持ちます。
総フレーム数 N から始めると、余りのフレーム桁は N を fps で割った余り、整数秒の時計は N を fps で割った商の床です。その整数秒を通常の時計算で分解します。秒は商を 60 で割った余り、分は次の商を 60 で割った余り、時は残った値です。
フレーム 0 は常に 00:00:00:00 です。24 fps ではフレーム 24 が 00:00:01:00、30 fps の 1800 フレームは 00:01:00:00 です。29.97 向けの NTSC ドロップフレーム飛ばし表は適用しません。
それらの規則は同じ余りの式を使わずに表記だけを変えるからです。プロジェクトに合う正の fps(24、25、30、48、50、60 などの整数、本当に必要なときだけ小数)を選び、毎回の要求でそのレートを明示してください。そうすれば二つのツールが黙って既定値を仮定することはありません。
入力する内容と受け取る結果
frames は負でない整数の総フレーム数、fps は正の有限なフレーム毎秒です。どちらも数値文字列を受け付けます。製品上の厳格な規則はレートです。
fps は 0 より大きくなければなりません。0、負数、非有限値は「フレームレートは正でなければならない」というメッセージで拒否され、その失敗は課金されません。例: frames 1800 と fps 30 は hours 0、minutes 1、seconds 0、frames 0、タイムコード 00:01:00:00 です。
第二の例、24 fps の frames 1001 は 00:00:41:17 です。1001 を 24 で割ると 41 秒余り 17 になるからです。時は少なくとも 2 桁に埋め、99 を超えて伸びることがあります。
分・秒・フレーム桁は 2 桁です。任意の別名があれば、スクリプトは写像層なしで慣れた名前を保てます。
フレーム数からタイムコードへ換算する場面
アシスタントエディターは、ファームやコンフォーム、統計ダンプから生のフレーム番号としてレンダ範囲やマーカー一覧を受け取ることが多く、キューシートで読めるラベルやコメントへ貼れる表記を必要とします。字幕・キャプションのパイプラインは整数のイン点・アウト点を HH:MM:SS:FF に直し、レビューが映像部が使う時計と同じ言葉で話せるようにします。
QC スクリプトは、パッケージが出荷される前に計算ラベルがプロジェクトの fps と一致することを主張でき、そうしなければすべてのキューを一瞬ずらしてしまう誤ったレート仮定を捕捉します。映画学校の実習室や LMS プラグインは無料のブラウザ経路を使い、フレーム 0 が最初の画かどうかで食い違うデスクトップ電卓を入れずに、ゼロ起点の余り算を練習させます。
fps を明示し、フレーム 0 を 00:00:00:00 として扱えば、枚数をレートで割るためだけに NLE を立ち上げなくても、メモ、DAILIES、エッジワーカー向けに再現可能なラベルが得られます。
活用例
ファーム範囲を読めるラベルへ
ファームやコンフォームの整数レンダイン/アウト点を、アシスタントがキューシートへ貼れるゼロ埋め HH:MM:SS:FF に変えます。
字幕のイン/アウトを映像時間で
字幕のフレーム番号を納品 fps の時・分・秒・余りフレームへ変換し、レビューが映像の時計で話せるようにします。
教室の余り演習と CI の固定
学習者とテスト一式へ、フレーム 0 を 00:00:00:00 に対応づけ、正でないレートを拒否する決定的な非ドロップの基準を提供します。
よくある質問
フレーム数をタイムコードへ変換するには?
負でない整数 frames と正の fps を送ってください。
フレームレートが正でない場合はどうなりますか?
fps は 0 より大きい有限数でなければなりません。0 と負のレートは拒否され、課金されません。
フレーム 0 は 00:00:00:00 ですか?
はい。 数え方はゼロ起点です。任意の正の fps でフレーム 0 は 00:00:00:00 です。整数レートでは余りの桁は 0 から fps 引く 1 までです。
この変換はドロップフレームを使いますか?
いいえ。 算術は非ドロップのみです。小数レートは総秒数経由で換算しますが、NTSC のドロップフレーム飛ばし表は適用しません。
24 fpsのフレーム24はどのタイムコードになりますか?
00:00:01:00です。数え始めは0なので、0から番号を振った最初の24フレームで1秒目が埋まり、フレーム24から次の秒が始まります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/video/frames-to-timecode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"frames":1800,"fps":30}'const res = await fetch("https://api.kit.forhosting.com/video/frames-to-timecode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"frames": 1800,
"fps": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/frames-to-timecode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"frames": 1800,
"fps": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/frames-to-timecode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"frames":1800,"fps":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"frames":1800,"fps":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/frames-to-timecode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"frames": 1800,
"fps": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.frames_to_timecode",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
フレームレートが 0・負・その他正でない場合は、ゼロ除算や架空の時計を作らず invalid_input で失敗します。
フレーム数が HH:MM:SS:FF になる仕組み
本エンドポイントはその非ドロップの恒等式だけを実装します。
入力フィールド、検証、返ってくる JSON
POST で JSON 本体に必須の二欄を送ります。別名 frames、frame_count、total_frames、n は枚数側、別名 fps、frame_rate、framerate、rate はレート側に入ります。欠落、空文字、非数値、負のフレーム数は invalid_input で失敗し、欄名を示します。成功時の本体は hours、minutes、seconds、frames(余りの桁 FF)、正規化してゼロ埋めしたタイムコード文字列、エコーした fps、元の total_frames、非ドロップ余りの恒等式を短く述べた formula を返します。
フレーム数からタイムコードへ換算する場面
実装は純粋な parse のティア A のため、成功した呼び出しは公開の基本料金 $0.002 で、モデルトークンも外向き通信もなく、検証失敗は残高を消費しません。
技術的な質問
フレーム数からタイムコードへの変換の料金は?
ブラウザのツールは無料です。API 要求は成功した呼び出しごとに前払いの KIT 残高を $0.002 で使い、無効な入力は課金されません。