2020年3月15日日曜日

スマホなどのVFRの動画をCFRに上手く変換する方法




スマホで撮影した動画を編集するとき大変なのがVFRの処理です。今のところ暫定ページですが、VFRからCFRの変換の仕方を記事にしました。

そもそもVFRとは

一般的にはCFR(constant frame rate)、日本語で言う固定フレームレートが使われています。これは一秒間に30コマであれば、常に30コマがキープされます。カメラやDVDにテレビ放送と、一般的にはこれが普通です。

一方VFR(variable frame rate)、日本語では可変フレームレートとなります。これは1秒間に30コマと言われれば、平均して約30コマとなり一秒間に29コマだったり30コマだったりします。これはスマートフォンでよく使われます。風景の写真であれば無駄にコマ数を増やす必要もありませんし、動きが多ければコマ数が多いほうが滑らかに見えるので、理にかなった方式です。

VFRだと編集が大変

ただ撮影するだけなら素晴らしいVFRですが、編集するとなると別です。一般的な動画編集ソフトはCFRを前提に作られているので、音ズレが発生したり動画がカクついたり最悪上手く読み込めません。

だから変換ソフトでCFRに変換してやればいいのですが、これが大変です…

お手軽はHandbrake お勧めはTVMW

お手軽なのは無料の変換ソフトのHandbrakeを使うことです。現状私が知る中でのベストはTVMWです。

動きが少なく短い動画ならHandBrake

例えばiPhoneで4K60Pの動画、つまり3840×2160の60fps vfrで撮影したとします。その場合は3840×2160の60fpsで出力するだけでCFRに変換することができます。

ただこの場合には音声と動画に問題があります。例えば私のiPhone XRで撮影すると60fpsのvfrで撮影すると、一秒間の平均では60.018fpsとかになっています。これを動画変換すると、ちょっとだけ動画の時間は伸びているのですが音声は最初のまんまとなり、最後に音声が入っていない状態になります。変換する映像は1分など短ければよいのですが、長いとズレが大きくなる場合が考えられます。

また、長くなっているので総フレーム数を単純に60で割って60fpsにしているのかと思うと違うらしく、60と60.018の誤差で数分に1コマ重複して帳尻を合わせるコマが発生し、動画がカクつく場合があります。そこで登場するのがffmpegです。

長い動画ならffmpeg

ffmpegは無料の動画デコーダー・エンコーダーです。コマンドラインを使うのが面倒ですが、細かい設定がかなりできます。なので音声のズレはこれで直ります。

変換する動画がCFR相当平均60.018fpsの60fpsのVFRだったとします。その場合は60÷60.018=‭0.9997000899730081‬で、音声を60相当に伸ばしてやります。そうすると最後の無音部分は無くなります。

例えばエンコーダーはnvencで出力時映像は192MbpsのGOP数30のH.265で、音声はPCMのモノラル48Khzとした場合のパス例はとなります。

C:\ffmpegがある場所\ffmpeg.exe -i "変換する動画ファイルのパス" -g 30 -c:v hevc_nvenc -preset 1 -r 60 -b:v 192000k -c:a pcm_s16le -ar 48000 -ac 1 -af "atempo=0.9997" "変換した後の動画のファイルのパス"

これで音声のズレは無くなります。ただ、数分間に一度起こる映像のかくつきは残ります。ただ、映像の内容によってはかくつきは分からないので、これで十分でしょう。

有料だけどベストのTVMW

TVMWはペガシス社の「TMPGEnc Video Mastering Works」の略称で、有料のソフトとなります。最新バージョンは7です。

TVMWに読み込ませると、VFRは一秒あたりの平均でCFRとして読み込まれます。変換する動画がCFR相当平均60.018fpsの60fpsのVFRだった場合、60.018fpsのCFR動画として読み込まれます。

なのでTVMWの場合は出力するのが60fpsであれば、60.018fpsを60fps相当に伸ばしてやれば良いだけです。再生スピードを変えるフィルターがあるので、60.018fpsなら99.97%の再生速度にしてやれば音声も動画もズレがなくなります。

この方法はスマホの映像を一般的なビデオカメラと編集するときにも使えます。一般的なビデオカメラやスチルカメラでの秒間60コマは59.94fpsのことを指します。なのでスマホの映像と組み合わせる場合は、どっちかに合わせてやる必要がります。そこでスマホで撮った動画がCFR相当平均60.018fpsの60fpsのVFRだった場合であれば、先ほどのフィルターで再生速度を99.87%にしれやれば解決します。ただし、60.018fps相当の例でいえば誤差の関係で15分程度に一回は重複するフレームが発生するので、長い映像だと映像がかくつく場合があります。ただ、他のやり方に比べれば影響は最も少ないはずです。

しかし、iPhoneなんかはプロみたいな動画撮れますって宣伝してるのだから、CFRに対応してくれって常々思います…不便すぎる

2020年3月2日月曜日

意外な落とし穴あり!iPhoneで4K60P




iPhone 8・Xから4K60P撮影対応しましたが、あまり知られていない撮影や動画編集をする人間にとっての落とし穴が幾つかあります。それを上手く回避する方法を紹介します。

3っつの落とし穴!

落とし穴の大まか内容ですが、マイクの位置、データの転送方法、フレームレートの三つです。これらを順々に紹介します。丁寧に説明したいと思うので、上級者の方は回りくどい言い方にお付き合いください。内容自体は、iPhoneで4K60Pを撮影される上級者の方にも役に立つと思います。

そもそも4K60Pとは?

4K60Pの簡単な説明です。「知ってるよ!」という方は読み飛ばしてください。4Kは聞いたことがあると思います。今の地デジのFHDより更に綺麗な規格ですね。

動画はパラパラ漫画と同じです。60Pというは、一秒間に60コマの写真が撮られることです。今までの4Kビデオカメラ・スマホカメラは、30Pつまり30コマです。これが増えたので、動きが滑かでよりリアルになります。

iPhone標準搭載の「カメラ」アプリの設定で、4K/60fpsと選択すると、すぐに4K60Pで撮影することが可能になります。

ちなみに映画は24Pで、一秒間に24コマです。あえてリアルじゃないコマ数が、映画的な雰囲気を作り出します。

凄くノイズを拾うマイクの位置!

これは初iPhone向け用です。iPhoneでの撮影になれてる方は、後半部から読んでください。

iPhoneにはマイクが基本的に3つ付いています。前面・背面・底面の3つです。私の所有するiPhone XRの場合、前面は液晶上部の耳用スピーカーのすぐそば、背面はカメラレンズとライトの間の銀色の小さい点、底面はlightning端子の左側の穴状のスリット部です。

ここの部分に手を当ててしまうと、音がこもってしまうので注意してください。またタッチノイズと言って、iPhoneと手が擦れる音も簡単に拾ってしまいます。撮影中は手を動かさないようにするか、自撮り棒に装着して直接iPhoneに触れないようにしましょう。イヤホンでモニター出来るアプリを持ってる場合は、モニターしながら感覚をつかむのをお勧めします。

更に高音質に撮影するために、lightning端子に刺す外付けマイクがあります。これを使うとタッチノイズを広いにくくなり、音質も飛躍的にあがります。ただし、大きな落とし穴があります。それは音ズレと値段です。

このタイプのマイクでは、0.00秒単位の細かいレベルで音ズレするものがあります。ほんの短い時間なら良いのですが、長時間だと気になるレベルになります。症状が発生しやすいのは、zoom製のマイクです。その他も買う時は、一度調べると良いでしょう。

また、外付けマイクは高いのです。iPhoneにしか使えないのに1万以上とか普通です。それならICレコーダーで別録音して後でくっ付けると、手間はかかりますが様々な場面でICレコーダーが使えます。

転送でくせ者のHEVC

4K60Pは非常にデータ量が大きいのです。そのためHEVCと言われる、次世代圧縮技術を使います。これを使うと、今までの標準だったAVCのデータ量半分で済みますが、それでも一分で400MBぐらい、ビットレートで言うと50Mbps程度になります。そして転送時にデフォルトの設定だと厄介を起こすこがあります。

iPhoneアプリ標準「写真」の設定最後を見ると、「MACまたはPCに転送」の項目が「自動」となっています。このモードはHEVCファイルやHEIFファイルを、AVCやjpegに自動で変換してくれる機能です。HEVCはデータ量が半分で済む反面、古いPCだと再生出来ないことがあるので、AVCに変換することでそれを避けてくれるのです。

問題はこの変換が入ることで、動画をまともにパソコンに転送できなくなる場合があるのと、再変換されることで画質が落ちることです。「写真」アプリの設定で「元のフォーマットのまま」にすると、HEVCで画質を落とさずそのまま転送できます。

HEVCの再生で微妙に手間取ることも

Windows 10で最近のPCであれば、MPC-HCやVLCといった有名ソフトでHEVCで4K60fpsのファイルを再生できます。ですが、微妙にカクカクすることがあります。どうやら上手くデコード出来ないことがあるようです。

こんな時はMicrosoft Storeで120円払って「HEVC ビデオ拡張機能」を購入し、Win10標準の「映画&テレビ」で再生すると綺麗に見れます。前は無料だった見たいなんですけどねえ…

59.94fpsじゃなく60.02fps!?

最初に一秒間に60コマと言いましたが、厳密に言うと普通のカメラは59.94コマで撮影され、60コマじゃありません。細かい説明は省きますがテレビ放送の電波の関係で、このような慣例となっています。なのにiPhoneはWin10のプロパティを見ると60.02fpsで、超中途半端です。これを更に詳しく調べられるソフトMedia infoを使うと60fpsのVFRモードと分かります。

これで起きる問題は普通のカメラで撮影したデータと編集すると、出力時に途中で一瞬映像が止まったりすることです。基本的に出力時は59.94fpsで出力することになるのですが、iPhoneの映像は60fpsで微妙にコマ数が違うため、調整するために2コマ分同じ映像が表示されたりするからです。

これを回避するには、動画編集ソフトのスロー再生機能でスピードを99.9%にしてください。60×0.999で計算していただくと分かりますが、59.94fpsと同じなるので問題がなくなります。

それでも問題が回避できない場合はVFRモードが関係しています。これは一秒間のコマ数が厳密に一定じゃなくてOKですよ!というモードで、普通のカメラはCFRモードという完全に固定されたモードです。つまりiPhoneの動画は1秒間で常に60コマではなく、多少変動するということです。コマ数が安定しないことで一部編集ソフトは正しくコマ数が読み込めず、60fpsと59.94fpsで生じるズレと同じ問題が発生します。

この点に関しては別記事で紹介します。

あんまり解説されてるのが少なそうなので、記事にしてみました。気まぐれでコメント欄の質問も返事するので、お時間ある方は質問してください。

注目の投稿

X370をCPU載せ替えでWin11にして使い倒せ!

第一世代Ryzenチップセットを利用してWin11にはどういう手順でアップグレード出来るかの概要や、実測値としてはどの程度性能が上がるか紹介します。 X370はRyzen5000シリーズまで行ける! X370チップセットはRyzen第一世代の1000シリーズと共に2017年に登場...