# タイムラプス作成｜長い動画を早送りにする

1時間の素材が20秒に。

> 長い動画をタイムラプスに変換します。10倍、60倍、入力した任意の倍率まで。処理はブラウザの中だけ。アップロードなし、透かしなし、オフラインでも動きます。

これはhttps://abox.tools/ja/timelapse-video/にあるブラウザー用の対話型ツールです。ファイルはそのブラウザーを実行する端末上で処理します。意図した共有や任意の通信機能はページ内で説明します。以下は文章による説明です。利用するにはアドレスを開いてください。

## 動画は**ブラウザー内で処理**されます。処理のためのアップロードはありません。

すべてのフレームを選び、デコードし、エンコードし直すのは、お使いのブラウザと手元のハードウェアです。何かを取りに行ったり送ったりできる部分はここにありません。このツールにはネットワーク機能が一切なく、仮にあったとしても、このページの向こう側に動画を受け取るサーバーが存在しません。

- ✗ アップロードなし
- ✗ アカウント不要
- ✗ 透かしなし
- ✓ 倍率は自由に入力
- ✓ オフラインで動作

## 動画からタイムラプスを作る手順

1. **動画を選びます。** MP4・MOV・M4V・WebMを選択エリアにドラッグするか、手元から選んでください。ブラウザがディスクから直接読み込み、その間に外へ出ていくものはありません。
2. **どれだけ速くするかを決めます。** 倍率のボタンを押すか、数値を直接入力します。「20秒に収めたい」のようにできあがりの長さで指定したい場合は、その秒数を入れれば倍率のほうが決まります。
3. **間隔を確かめます。** 倍率の下の行が、実際に何が起きるのかを示します。元の映像の何秒おきに1フレームを取るか、という数字です。カメラで設定するのと同じ値なので、始める前に一度見ておくとよい数字です。
4. **作成してダウンロードします。** 処理は手元のハードウェアで行うので、かかる時間は順番待ちではなく端末の性能で決まります。できあがった動画はそのままブラウザのダウンロードへ渡ります。

## 詳しい解説

[長い動画をタイムラプスにする方法](https://abox.tools/ja/guides/turn-a-long-video-into-a-timelapse/): 1時間の映像を見られる1分に。速度の選び方、計算するより仕上がりの長さを指定したほうがよい理由、そして結果をGIFにすべき場面について。

## 箱の中のほかのツール

- [動画のコマ切り出し](https://abox.tools/ja/grab-frame/): どの瞬間でも、画質を落とさずに1枚。
- [GIFをMP4に](https://abox.tools/ja/gif-to-mp4/): 各フレームと元の表示時間を、H.264のMP4に。手元で変換し、アップロードしません。
- [動画→GIF変換ツール](https://abox.tools/ja/video-to-gif/): 使う範囲と、大きさと、フレームレートを選ぶだけです。
- [GIF作成](https://abox.tools/ja/gif-maker/): 何枚かの画像を、ひとつのアニメーションにします。

## よくある質問

### 動画はどこかにアップロードされますか。

されません。読み込みもデコードも、フレームの選択もエンコードも、お使いのブラウザが手元のハードウェアで行います。このツールにサーバー側はなく、ページの`Content-Security-Policy`には接続してよいアドレスがすべて挙がっていますが、そのどれも当サイトのものではありません。言葉より確認という方は、回線を抜いてから作ってみてください。

### 倍率とは正確には何ですか。

入っていくものと出てくるものの比です。60倍なら1時間の素材が1分になり、何フレームで再生してもその1分は変わりません。内側では*倍率 ÷ フレームレート*秒ごとに1フレームを取っています。30fpsの60倍なら2秒に1フレームです。ページは始める前にこの間隔を出します。実際に何をしているかを言うのはそちらの数字だからです。

### どの動画形式を早送りにできますか。

MP4・M4V・MOVは中身が何であっても直接読みます。ブラウザがそのコーデックをデコードできるかぎり、H.264でもHEVCでもAV1でもVP9でも構いません。それ以外でブラウザが再生できるもの、代表的にはWebMは、ブラウザ自身のプレーヤーを各瞬間へ移動させて読みます。再生できる形式ならどれでも通る方法です。ブラウザが読むことも再生することもできないファイル、実際にはAVI・WMV・FLVと大半のMKVは、途中で失敗するのではなく、その旨を伝えて最初にお断りします。出てくるのは常にMP4です。

### タイムラプスに音が入らないのはなぜですか。

残す価値のあるものがないからです。30倍の速さの音は話し声でも音楽でもなく、ただのかん高い音です。かといって元の速さの音を、はるか先へ行ってしまった映像の下に敷けば、それはご依頼のものとは別の映像になります。そこで音声トラックは落としています。1時間の動画が数メガバイトで出てくる理由の大半もこれです。音声だけが必要な場合は[音声編集ツール](https://abox.tools/ja/edit-audio/)で保存できます。

### 動画全体を変換するより速いのですか。

はるかに速く、ファイルを直接読んでいるのはそのためです。1フレームをデコードするには手前のキーフレームから始めるほかありませんが、その間のフレームまで残せとはどこにも書いてありません。1時間を60倍にする場合、デコードするのは10万枚ではなく数千枚です。ボタンを押す前に、何枚読むかをまとめ欄が正確に伝えます。

### 画質は落ちますか。

残したフレームをもう一度エンコードするぶんだけ落ちます。これは避けられません。できあがった映像は、元のファイルでは何もエンコードされていない時刻にそのフレームを表示するからです。一方でこのツールは、ここにある他の動画ツールよりビットレートを多く使います。意図的です。2秒離れた2枚のフレームは、30分の1秒離れた2枚より共通点がずっと少なく、コーデックが使い回せるものが少ないので、通常の映像向けの値ではブロック状になります。

### サイズや長さに上限はありますか。

ツール側に上限は設けていませんし、ファイルを丸ごとメモリに載せることもしません。読むのは各瞬間の前後の短い範囲だけです。現実的な上限は、ダウンロード前にメモリ上で組み立てるできあがりのほうですが、タイムラプスは定義からして短いものです。おおよそのサイズは始める前にまとめ欄に出ます。

### 映像の一部だけを早送りにできますか。

ここではできません。このツールは最初のフレームから最後のフレームまで全体を扱います。必要な区間はまず[動画カットツール](https://abox.tools/ja/trim-video/)で切り出してください。そちらはフレームを一枚も再エンコードせずに切り出せるので、出てきたファイルをここに入れてください。

### 無料ですか。アカウントは要りますか。

無料です。アカウントもログインも試用期間も透かしもありません。サイトは広告で成り立っていますが、広告に動画に関する情報は渡されません。

## この主張を確かめる方法

- **処理はこのブラウザー内で行います。** 入力と結果はブラウザー内で処理し、処理コードはそれらを処理用にアップロードしません。Content-Security-Policyは資源と接続先を制限しますが、許可済みの相手はリクエストを受け取れます。内容は検査せず、何も送られないことを単独で証明しません。具体的な操作の要求とソースを比較するか、切断中にローカル操作を完了してください。
- **何かを取りに行くコードがありません。** このツールにはネットワーク機能が一切ありません。貼り付けるアドレスも、ダウンロードするものも、初回に取りに行くエンジンもありません。動画に触れるコードは、1バイト残らずページを読み込んだときにこのオリジンから届いたものです。
- **デコードもエンコードも手元で行います。** フレームが通るのは、お使いのブラウザのWebCodecsか、そうでなければ、そもそもその映像を再生するのに使われるのと同じ再生エンジンです。できあがったファイルはこの端末のメモリ上で組み立て、そのままダウンロードへ渡します。
- **ファイルの大半は読み込みすらしません。** タイムラプスに要るのは数秒おきの1フレームだけなので、その瞬間の前後だけを短く読み、あとは飛ばします。これはプライバシーではなく速度のための判断ですが、知っておく価値はあります。手元の端末の中でさえ、動画の大半は一度も開かれません。
- **Googleが読み込むものと、渡されないもの。** 広告と計測のスクリプトはGoogleから来ています。そのどちらにも、動画に関する情報は渡されません。ファイルも、フレームも、名前も、サイズも、長さもです。読み込み、デコード、フレームの選択、エンコードを行うコードはすべてこのオリジンから配信され、リポジトリに載っています。
- **寄付ボタンが読み込むものと、渡されないもの。** ヘッダーの「Buy me a coffee」ボタンは、cdnjs.buymeacoffee.comのスクリプトが描き、書体をGoogle Fontsから取っています。これはリンク以上のものではありません。訪問を報告しませんし、閲覧者や動画に関する情報も渡されません。
- **オフラインで動きます。** 通信を切っても、このページの機能はすべてそのまま動きます。これがいちばん単純な証明です。

**自分で確かめてください。**以上のどれも、鵜呑みにする必要はありません。このページは、リポジトリにあるテンプレートと設定から、誰でも読んで実行できるビルドスクリプトが生成しています。その結果は`dist`ブランチに置いてあるので、配信されているものと、ソースをビルドした結果とを差分で比べられます。 https://github.com/A-Box-of-Tools/website

まず読むとよいのは、Content-Security-Policyについては`config/site.toml`、どのフレームをいつの瞬間から取るかを決める計算については`src/plan.js`、その瞬間に必要な部分だけをファイルから読み出すループについては`src/decode.js`です。どちらもリクエストを出せるものを読み込んでいません。
