動画のトリミング機能
・FFmpegを使う方法
・フロントエンドで完結させる方法(Web標準APIを使う方法)
の2つがあるが、Web標準APIだとブラウザの制限をうけるため、数分以上の動画や高解像度動画の処理に非常に時間がかかる。よって、FFmpegをつかった!
また、トリミングした動画が劣化しないようにする必要がある。
動画はパラパラ漫画であり、0.5秒~数秒に1回のフレームが集まって構成されている。
フレームは
・ キーフレーム(完全な一枚の画像)
・ Pフレーム、Bフレーム(過去のフレームと未来のフレームの差分(変化のデータ))
で構成されており、
トリミングの開始・終了位置がフレームの途中になると、トリミングした動画が劣化してしまう。
そのため、YouTubeの簡易トリミング機能や多くの動画カットツールでは、フレーム単位でしか切り出せない仕様となっている。今回の動画再生アプリでもそのようにした!
また、トリミングした短い動画は上書きではなく別名(元の名前_trim.mp4)で保存するようにした
あと、トリミングにはキーフレームの解析に時間がかかる。そのため、「トリミングボタン」を押すと、「キーフレームを解析しています」というポップアップを表示しておいた!ちなみに初回はFFmpegの準備をするので、「キーフレームを解析しています」が4分程度つづく。
トリミングの開始点と終了地点はシークバー上でずらすことができるようにした!
BACK