(約 4,200文字の記事です。)
楽しみにしていたPowerDirector 365(Ver. 19.3.2724.0)を購入していざ使ってみると、とんでもない致命的なバグを発見した。これの検証に合計で4日間も持っていかれた。
頼むよサイバーリンクさん、ちゃんとバグを直して頂戴!
なおバグ報告が面倒なのでこのブログのURLをそのままサポートに送付しました。
2021/06/01 追記
サポートからの返答とは別に、自力で回避手段を見つけました。
結論としては回避できます!!!
更新履歴
2021/06/01 バグ修正方法を追記
2021/05/16 執筆
バグの回避方法
記事はこちら。
バグの再現のための下準備
プロジェクト設定は30 FPS (NTSC)です。
分かりやすいようにノンドロップフレーム(セミコロンじゃなくてコロンの表示)にしています。フレームとタイムコードの関係が一致するので解説しやすい。
まずは以下のようにテンプレ動画のスケートボード少女をタイムラインに乗せる。
次にタイムコードを画面に埋め込む準備。
タイムスタンプエフェクトをタイムライン動画の上にD&Dする。後はお好みでフォントの大きさや表示位置を調整すればいい。
なお、全体の尺が長くても検証に無駄に時間がかかるだけなので、せいぜい10秒分の長さにカットしてOK。10秒ジャストの尺にすると画面上には9秒29フレームでおしまいとなる。(0秒0フレームが1つ目のフレームだから)
これを一度レンダリング出力する。どんなファイル形式でもいいが、まずは無難に普通のH.264のCPUレンダリング出力でいい。
2021/06/01 追記
この症状を再現するためには、レンダリング出力時のfpsを「29.97fpsではなくて30.00fps」に設定すること。ここが重要。(逆に29.97fpsだと正常動作する)
実はこのファイル形式の他にもあらゆるファイル形式だったりNVEncだったり、ものすごい組み合わせを全部試しましたとさ。。。
ぶっちゃけ、どんな出力手段を試しても問題が再現すると思います。
【バグその1】出力ファイルの頭に1フレーム追加される
出力されたmp4動画をタイムラインに下のトラックに乗せてみよう。Homeキーで先頭にカーソルを移動させ、タイムラインを最大ズームにする。そしてカーソルを1フレームずつ右に動かしてみると!
画像の上側が編集時点の元の動画、下側がレンダリング結果。
1フレーム右に進めても0秒0フレームってことは、頭に1フレームの余計な静止画フレームが入っているわけ。
つまり、レンダリング結果の動画ファイルの先頭に1フレームの静止画フレームが余計に挿入されている!!!!
あ、ありえない。有料の動画編集ソフトでしょ?
2021/06/01 追記
実はこれはフレームレート変換時のフレームシフトの結果。次の章の末尾欠落も同じ理由。だがソフトとしてはやはりバグだと思う。
では後ろはどうなっているのか?
【バグその2】出力ファイルの末尾の1フレームが欠落している
はい、想像通り1フレーム欠落しています。結果として全体の尺は10秒ジャストになっているわけ。
これだけでもう、動画編集ツールとしては致命的ですよ、サイバーリンクさん!早く直して~。
とりあえず話を進めるために、頭1フレームをカットして左に詰めて、動画の数字とタイムライン上の数字とを揃えることにする。
で、5秒ジャスト、7秒ジャストにカット線を入れる。
数字に大した意味はないが、0秒付近に近いほど誤差が小さいので5秒以上経過した素材で試すこと。そうしないとバグが再現しない場合がある。
中間の素材を削除して左に詰める。
カット点を最大ズームして1フレーム左に動かすと、タイムライン上はこうなって見えるし、それが正しい。
カット線の1フレーム左側が4秒29フレーム。そしてカット点が7秒ジャスト。
ところがこれをレンダリングすると奇妙なことが起こる。動画でレンダリングしても同じ結果になるのだが、ここでは確認しやすいように「範囲指定」した上で静止画で出力してみよう。
【バグその3】カット編集時の継ぎ目のフレーム処理が異常
正確に言えば「カットした素材の末尾の次の1フレーム」がその後のカット素材の「先頭の1フレームを上書き」する。ちょっとややこしいので図で説明。
本来はこうあるべきだが、
実際の静止画出力はこちら。
カットしたはずの5秒0フレームがレンダリングされ、あったはずの7秒0フレームを上書きしている。これはとても致命的。特に業務用途で使おうと思っている人にはとても困る。たった1フレームでも、シーンの切り替わりに「見えてはいけないもの」が入ってしまうと、それは大問題なわけ。
納品後に発覚した日には目も当てられない。
たかが1フレームでも、業務として動画を扱うプロであれば決して許されないのだ。
今回、残念ながらPowerDirector 365の2021/05/16現在の最新版では、悲しいことにこのバグが発覚した。
2021/06/01 追記
これも結局はレンダリング時のフレーム変換(29.97fpsから30.00fpsへの変換)によってフレーム絵が前後に1フレームシフトしたままレンダリングされた結果。これはPowerDirector自体のアルゴリズム上のバグだと思う。なぜタイムライン上の素材をフレーム変換してからレンダリングするのか?
他の動画編集ソフトではフレームレート変換でこのようなことは起こらない。PowerDirectorの初歩的なアルゴリズム上のバグだと、個人的には思っている。
レンダリング形式に依存せず共通で発生するバグ
最初はNVEncのせいか?mp4のパラメータ指定とPowerDirectorとの相性があるのか?などなど、色々と試した結果、どうやらPowerDirector自体のタイムライン処理の実装状のバグっぽい、という結論に辿り着いて、実験を打ち切ることにした。まさか動画編集ソフトで1フレームを正確に扱えない事象は、全く想定もしていなかったからだ。
だからファイル形式の迷路にはまり込んでたくさんのテストに4日間も持って行かれたわけだが、まさか灯台もと暗しだったとは……。
静止画レンダリングで再現した段階でビンゴです。致命的です。どんなレンダリング手段を使っても必ずカット編集時に1フレームの「見えてはいけない絵」が見えることになります。残念ながらシビアなカット編集はできません。(後ろ1カット余計にのりしろを作ってカットするしかない。)
ちなみにカット編集部位が増えるほど、レンダリング結果の動画の尺は数フレーム以上伸びます。実験済み。
スクショは省略です。疲れすぎた……。
【まとめ】PowerDirectorのタイムライン素材の先頭と末尾の扱いに致命的なバグがある
なのでシビアな1フレーム単位の編集はPowerDirector 365では「今のところ」できないと思った方がいい。今後、バグが修正されればできるのだが。
というわけでこの記事はユーザーサポートへのバグ報告を兼ねて全体公開しています。
2021/06/01 追記
一応、今すぐ回避する方法が分かったので記事にしました。
PowerDirector 365のレンダリング出力時のフレームレートに注意 (約 7,000文字の記事です。) 以前の記事で「PowerDirector 365のカット編集後のレンダリング結果に余計なフレームが残る」という記事を書きましたが、そのバグの解決...改めて考えても、やはりPowerDirectorのレンダリング出力に関する実装上のバグだと思う。
今回の創作活動は約8時間30分(累積 約2,391時間))
(721回目のブログ更新)
筆者はAmazonアソシエイト・プログラムに参加しています。(Amazon様の商品を宣伝することで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊
また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。