
【Blink&ffmpeg】PixInsightで動画作成(PixInsight無しでも・・・)
この投稿は2024/10/22時点での内容です。
PixInsight core 1.8.9-3(build 1612 | 2024-06-25)
FFmpeg:v2024-10-21
PC:windows 11 home
この記事は、PixInsightで画像選別によく使われる「Blink」と、フリーの動画作成ソフト「ffmpeg」を使った、PixInsight内での動画作成の仕方を紹介する記事です。
、、、と思っていたのですが、Blinkを使わなくともffmpegだけで動画を作成することが出来たので、「Pixinsight無しでffmpegで動画作成」の方法も最後に書いています。
今回は別途作成したSeestarS50の彗星画像254枚を使って試しています。ちなみに実際に作った動画はこちら。
2024/1020 18:20から19:24
— ゴンカネ (@gonkane501) October 20, 2024
紫金山アトラス彗星
C/2023 A3
SeestarS50の10秒露光254枚をPixinsightで彗星基準に位置調整、Blink経由でffmpegで動画作成。#SeestarS50 pic.twitter.com/AJ6EakDjgO
では実際に作業していきます。
1.ffmpegダウンロード&設定
ダウンロードは公式サイトから。
Top画面の「Download」を押すと下のような画面が出てきますので、左からLinux、Windows、Macのご自身のパソコンにあったモノをクリックしてください。

例として、私の場合のWindowsの真ん中のマークを押すと下のような表示がでます。

上下どちらが良いかは私にはよくわかりません(^^;
が、とりあえず上の方を押してみると、以下のようなサイトに飛びます。

このサイトで、ちょっと下の方へスクロールしていくと、以下のようなダウンロードボタンが出てきます。

どれが一番良いか?は私もわかりませんが、とりあえず一番上のモノダウンロードしてみました。
すると
ffmpeg-2024-10-21-git-baa23e40c1-essentials_build.7z
という圧縮ファイルがダウンロードされたので、ファイルを右クリック、「すべて展開」を押して解凍します。すると解凍したフォルダの中に下のようなファイルやフォルダが5つ入っています。

これら5つをすべて「cドライブ」のすぐ上に「ffmpeg」という名前のフォルダを作って入れておきます。
次に、Windowsでffmpegの設定をします。
まず「システムの詳細設定」を開きます。開き方としては、、、
(方法1)「Windowsマーク」をクリックして下のようなスタート画面を開き、検索のところで「システムの詳細設定」と打って検索する。
( ※ 下記画像はWindows11の様子)

(方法2)キーボードの「Windowsキー」を押しながら「Pause Breakキー」を押して「システム」が開くので、そこにある「システムの詳細設定」を押して開く。
の、いずれかがわかりやすいでしょうか。「システムの詳細設定」を開くと次のように表示されるので、「環境変数」をクリックします。

すると下のように表示されるので、「Path」、「編集」を順番にクリックします。

すると、スクショは何故か撮れなかったのですが、「環境変数名の編集」というものが出てきて「新規」を押し、「参照」を押して
PC>cドライブ>ffmpeg>bin
の順にクリックしていき、「ffmpeg」フォルダの「bin」フォルダを選択して「OK」を押します。あとはどんどん「OK」を押してウィンドーを閉じていけばWindowsの設定は完了です。
2.PixInsightで動画作成
では、実際にPixinsightで動画作成していきましょう。
まず元画像を用意します。
私の場合はSeestarS50の彗星画像254枚をPixinsightのWBPPを通して星基準で位置をそろえ、その画像から今度はCometAlignmentスクリプトを使って彗星の核基準で位置をそろえたモノを用意しました。
( ※ 上記の細かい方法は今回は割愛します(^^;)
画像処理は位置合わせ以外一切行っておらず、色調整もノイズ除去やストレッチも行っていない画像をCometというフォルダに入れました。

これらの画像をPixInsightのBlinkで開きます。Blinkは
PROCESS>ImageInspection>Blink
にあります。

Blinkを開いたら、一番左下の「フォルダ」マークをクリックして、動画にしたい画像をすべて選択し、「開く」を押します。画像を同じフォルダに入れているなら
「Ctrlキー」+「Aキー」
でフォルダ内のすべてのファイルが選択できるので楽かと思います。

画像を開くと、上のように全体が緑がかって見えます。これは色調整もストレッチも行っていない画像を選択したからです。その場合、Blinkで擬似的に色調整と明るさ調整を行います。下の画像のように、①「リンクのマーク」を押し色バランス固定を解除。②AutoHT(自動ヒストグラムトランスファー)をクリックします。( ② はその1つ下のAutoSTFでも構いません)
(参考)
②「AutoHT」:それぞれの明るさにあった調整をする。
⇒ どの画像も明るさがだいたい均一になっていく。空の明るさの変化を表現したい場合には不向き。各画像でパラメータが変わるため、時間がかかる。
②「AutoSTF」:すべて同じパラメータで明るさの調整をする。
⇒ 空の明るさの変化が出る

すると下のように色調整、明るさ調整が擬似的に行われます。

この状態で小さいサムネイル表示の下の矢印などを押すと動画にしたときの様子が見られます。

動画の様子をみつつ、画像の選別をします。除外したいモノがあればファイル名のところをクリックし、下の一番左から2番目のボタンを押して除外します。(※下の一番左から3番目は「すべての画像を除外」です)

これで準備は整いました。あとはBinkの下のボタンが並んでいるところの一番右のボタンを押します。

すると Make Video というウィンドーが出てくるので、入力欄に下のように順番に入力していきます。

①「ffmpeg.exe」と入力
※ もしエラーになる場合には、Windowsの場合
C:\ffmpeg\bin\ffmpeg.exe
のように、ffmpeg.exeがある場所もしっかり書くと良いかもしれません。
②下のffmpegのコマンドを入力する
-y -r 25 -i Blink%05d.png Blink.avi
③はクリックして保存先フォルダを指定する
(上の画像ではComet_videoフォルダ)
④「.png」と入力
⑤を押して実行
これでうまく実行されれば、下のように表示されるハズです。

そして下のようにComet_videoフォルダにBlink.aviというaviファイルと、大量のpngファイルが入っているかと思います。

この大量のpngファイルは、②のコマンドで、一度元画像をpngに変換してから動画を作成しており、その際に作成されたpngファイルです。通常は削除して大丈夫かと思います。最初からいらないな、ということでしたら、実行前に下のように「Delete video frames」にチェックを入れておくと、動画作成後に自動で削除をしてくれます。

また、Webページなどに載せるため、gifファイルにしたいという場合は
②の部分
-y -r 25 -i Blink%05d.png Blink.avi
の最後のaviをgifに変更し
-y -r 25 -i Blink%05d.png Blink.gif
と入力して実行するとgifファイルが作成できます。ただ、ファイルサイズが大きい場合は「25」の部分がいわゆるフレームレート(1秒間に何枚表示するか)を示しており、これを「15」のように下げるとファイルサイズが小さくなります。また
-y -r 25 -i Blink%05d.png -vf scale=360:-1 Blink.gif
のように「-vf scale=360:-1」を追加すると、横幅の長さが360(縦横比は変わらず)のgifファイルを作成することできます。ここを調節してファイルサイズを小さくすることもできます。動画作成がうまくいかない場合には、この縦横サイズが原因の場合もあるようで、ここを調節することでうまく作成できるようになるかもしれません。
また、X(旧ツィッター)でつぶやきたい場合には、aviファイルではアップロードできないので、mp4ファイルにするのが良いかと思います。その場合は単に「avi」を「mp4」に変えただけでは互換性の低いmp4になるようで、コーデック設定をした方が良いようです。例えば以下のようになります。
-y -r 25 -i Blink%05d.png -vcodec libx264 -crf 23 -pix_fmt yuv420p Blink.mp4
ちなみに、「23」は画質を表しており、1~50で値が小さいほど画質が良くなりますが、その代わりファイルサイズが大きくなるようです。23は標準的な?画質で、もしSNSなどで使いたいなら画質を上げても下げてもうまく表示できない可能性が出てくるので、トラブル回避には23前後が無難かもしれません。
ffmpegには色々なコマンドがあり、これらは色々と組み合わせができるようです。興味のある方はぜひ色々試してみてください。
また、今回のコマンドでは、一度pngファイルに変換して動画を作成しています。これはxisfファイルやfitsファイルのままやろうとするとエラーになるからです。ちなみに、jpgやtiffに変換して動画作成することもできますが、jpgで作ると動画のファイルサイズがより大きくなりました(^^; tiffで作るとpngのときとそれほど変わりませんでしたが、若干大きくなりました。なので、ファイルサイズを考えるならpngに変換して作るのが良さそうですが、、、
画質を考えると・・・jpg変換から作った方がコントラストが良いかもしれない・・・?
と、いうわけで、一応jpgバージョンにしてみると以下のようになります。

いずれにせよ、自分の「コレがベスト!!」というコマンドが見つかったら、下の「save」ボタンを押して入力内容を記録させておくと、入力内容を変更しても「Load」ボタンを押せばいつでも「save」した入力内容に戻すことができて便利です。

3.Pixinsight無しでffmpegで動画を作成
ここからはおまけです。
ffmpegはPixinsightを持っていなくとも、単独で画像から動画を作成したり、動画の形式を変更したりすることができるフリーソフトのようです。
もしPixinsightを使わずにffmpegで動画を作りたい場合には、Windowsであればコマンドプロンプトを使用します。
その場合、まずは動画の元になる画像ファイルを1つのフォルダに入れて、そのフォルダをcドライブ直下に置くのがよいかと思います。そして、画像ファイルの名前を「2.PixInsightで動画作成」で動画作成実行後に出てきたpngファイルのように「Blink0001.png」「Blink0002.png」「Blink0003.png」のように順番に変更しておきます。

pngファイルじゃないとダメなのか?というと、jpegなどでも大丈夫なようですが、その場合はffmpegのコマンドの中の「png」の部分を「jpeg」に変更して実行する必要があるかと思います。
準備ができたらコマンドプロンプトを開きます。Windows11であれば、スタートボタンを押して出てくる下の検索のところに「cmd」と打って検索します。


出てきたコマンドプロンプトを開いたら、画像が入ったフォルダに移動します。例えばcドライブ直下に「Comet」というフォルダを作って画像入れている場合は
cd C:\Comet
のように入力し、エンターを押します。
あとは「2.PixInsightで動画作成」の最後で使ったffmpegのコマンドを、先頭にffmpegの文字を追加して
ffmpeg -y -r 25 -i Blink%05d.png -vf scale=640:-1 Blink.gif
や
ffmpeg -y -r 25 -i Blink%05d.png -vcodec libx264 -crf 23 -pix_fmt yuv420p Blink.mp4
のように入力して実行します。そうするとうまく実行できていれば、Cometフォルダの中に動画ファイルが出来ているかと思います。
ただ、私もそれほど詳しいわけではなく、もしかするとここまでのことを実行してもうまくいかないこともあるかもしれません。その辺りは申し訳ありませんが原因をネット調べてもらえればと思います。
個人的な解決方法としては、ChatGPTでエラーが出ている文章をそのままコピー&ペーストで貼り付けて、原因と対処法を聞く!!というのがおススメで意外と有効かと思います(笑
今回はこれにて。
ではでは。