動画のトリミング機能

Program

・FFmpegを使う方法

・フロントエンドで完結させる方法(Web標準APIを使う方法)

の2つがあるが、Web標準APIだとブラウザの制限をうけるため、数分以上の動画や高解像度動画の処理に非常に時間がかかる。よって、FFmpegをつかった!

また、トリミングした動画が劣化しないようにする必要がある。

動画はパラパラ漫画であり、0.5秒~数秒に1回のフレームが集まって構成されている。

フレームは

・ キーフレーム(完全な一枚の画像)

・ Pフレーム、Bフレーム(過去のフレームと未来のフレームの差分(変化のデータ))

で構成されており、

トリミングの開始・終了位置がフレームの途中になると、トリミングした動画が劣化してしまう。

そのため、YouTubeの簡易トリミング機能や多くの動画カットツールでは、フレーム単位でしか切り出せない仕様となっている。今回の動画再生アプリでもそのようにした!

また、トリミングした短い動画は上書きではなく別名(元の名前_trim.mp4)で保存するようにした

あと、トリミングにはキーフレームの解析に時間がかかる。そのため、「トリミングボタン」を押すと、「キーフレームを解析しています」というポップアップを表示しておいた!ちなみに初回はFFmpegの準備をするので、「キーフレームを解析しています」が4分程度つづく。

トリミングの開始点と終了地点はシークバー上でずらすことができるようにした!

BACK