abox.tools

言語: 日本語

動画を逆再生にする方法

動画を後ろから再生することは、いちばん簡単な編集のように聞こえて、実のところ動画ファイルがいちばん苦手にしている作業です。実際に何が起きなければならないのか、それにいくらかかるのか、そして先にやっておく価値のあるひとつの手順を書きます。

動画の逆再生を開く 最後のコマから、音も一緒に。

Markdownで表示

短い答え

動画の逆再生を開き、動画をドロップし、音も逆にするかどうかを決めて、書き出します。出てくるのは、最後のコマが先頭に来た同じ動画で、長さは入れたものとまったく同じです。

切り出しと違って、ここではすべてのコマを書き直す必要があります。音も同じです。これは特定の道具の不出来ではなく、逆再生とはそういうものです。このページの残りは、その理由と、それが待ち時間にとって何を意味するかの話です。

動画をそのまま後ろから再生できない理由

動画ファイルは写真の束ではありません。だいたい50コマに1コマが絵全体(キーフレーム)で、その間にあるのは、前後のコマから何が変わったかの記述です。1時間の動画がスマートフォンに収まるのはそのためです。

同時にそれは、デコーダーが前にしか進めないということでもあります。動画の最後のコマを見せるには、その手前のキーフレームを探し、あいだのすべてを展開しなければなりません。最後から2つ目を求めれば、同じ作業をもう一度やり直します。

だから逆再生は、コマの塊ごとに進めます。ひと塊を前向きに展開し、コマを抱えておき、逆の順でエンコーダーへ渡し、ひとつ前の塊へ移る。すぐ思いつくもう一方の方法、つまり動画全体を一覧に展開して後ろからたどるやり方は、1080pなら1コマあたり約3 MB、1分あたり5 GBのメモリを要します。そのやり方の道具が数秒を超える動画で倒れるのはそのためです。

元ファイルのカード。映像の名前、容量、画面サイズ、長さ、コーデック。
ツールがファイルについて割り出したことです。逆再生は流しながらできない唯一の処理なので、メモリに収まるかどうかはこの数字が決めます。

音はどうなるのか

逆再生の道具どうしでいちばん差が出るのがここで、実際に何を受け取ったのかを確かめる価値があるのもここです。

音は数十ミリ秒ごとのパケットに圧縮され、そのそれぞれが直前のパケットを基準に符号化されています。パケットを逆順に書き出しても、トラックが逆再生されることはありません。短い断片が順方向のまま誤った順序で鳴るだけで、それは逆再生ではなく、どもりや故障のように聞こえます。音を正しく逆にする唯一の方法は、トラック全体を展開し、標本を逆の順に並べ替え、もう一度符号化することです。

ここで起きているのはそれで、だからこそ音は再符号化されます。動画カットや動画の切り抜きが音に決して触れないのとは対照的です。あちらは何かが起きる時刻を変えず、こちらはそれ以外を変えないからです。

映像だけ逆にして音は要らない、という場合は、チェックを外してください。無音で流れるフィードに出すなら、たいていこちらが正解です。処理も速く、ファイルも小さくなります。

書き出しのカード。品質のつまみ、音を残すスイッチ、そして出力サイズ・長さ・フレーム数の要約。
音のスイッチがここにあるのは、逆さの話し声を望む人がまずいないからで、書き出す前に決めるほうが後より簡単だからです。

映像に何を払わせるか

再符号化1回です。コマは、元のファイルのどこにも想定されていない順番で出てくるので、1枚ずつ書き直すことになります。

きちんとした道具がしないのは、元のファイルより多く使うことです。逆にした動画は、届いたときとまったく同じ絵を持っています。ビットレートを上げても新しく記述するものがないので、見た目は変わらないままファイルだけが大きくなります。ここの画質設定は、その天井を超えず、その下で動きます。

いつものことですが、非可逆の工程は積み重なります。元のファイルを逆にすれば1世代。画面録画をダウンロードして書き出したものを逆にすれば4世代で、見ればわかります。

先に切り、あとで逆にする

両方が必要なら、先に切ってください。切り出しはただです。よくできた切り出しはコマを展開せずに丸ごと移すだけですし、取り除いた1秒は、誰も展開し直さず符号化し直さずに済む1秒です。

逆の順でやると、これから捨てる映像を逆にすることになります。長い動画では、数秒で終わる仕事と数分かかる仕事の差になります。切り出しのガイドに、その最初の一手が画質をまったく損なわずに済む理由を書いています。

切り抜きにも同じ順番が当てはまります。切って、切り抜いて、逆にします。そうすれば、いちばん短い動画に対して再符号化を1回払うだけで済みます。

実際に何に使われているか

形式と、かかる時間

MP4・M4V・MOVは中身によらず直接読めます。H.264でもHEVCでもAV1でもVP9でも、お使いのブラウザがそのコーデックを展開できるかぎり大丈夫です。これが速い経路で、ファイルをコマの塊ごとに後ろからたどっていきます。速さは端末の性能そのままです。

それ以外でブラウザが再生できるもの、代表的にはWebMは、ブラウザ自身のプレイヤーを一瞬ずつ後ろへ送っていく方法で逆にします。動きはしますが、その分遅くなります。頭出しのたびに、ブラウザが直前のキーフレームから展開し直すことになるからです。どちらの経路を使うのか、そしてその理由は、始める前にページが表示します。

AVI・WMV・FLV、そしてほとんどのMKVは、ブラウザが読むことも再生することもできません。途中で失敗する代わりに、その旨を伝えて受け付けません。

いずれにせよ、これはこのサイトの中でも遅いほうの作業です。すべてのコマを展開して符号化し、いくつかのコマは2度以上展開するからです。短い動画なら数秒、長い4Kなら始めてそっとしておくのが賢明です。

これにアップロードが要らない理由

ブラウザの中で動画を展開し符号化し直すのは新しい話で、そして本物です。WebCodecsは、あなたのスマートフォンが録画に使っているのと同じハードウェアのエンコーダーを使えるようにするもので、速いのも同じ理由からです。作業は、そのファイルをすでに持っている端末で起きます。大きな動画にとっては、それが唯一まともな段取りでもあります。送って結果を受け取る時間のほうが、符号化そのものより長くつくからです。

ここの道具にはネットワーク機能が一切なく、ページのContent-Security-Policyには接続してよいアドレスがすべて書かれていて、そのどれもこのサイトのものではありません。言葉より確認という方は、回線を抜いてから動画を逆にしてみてください。

ファイルをアップロードしても大丈夫かでは、どんな道具にも試せる確認をさらに3つ挙げています。