メむンコンテンツぞスキップ
芋出し画像

【配垃】note甚に動画をGIFに倉換しお透かしを入れるツヌルを䜜った Python x OpenCV x Pillow 画面録画を貌り付けお快適蚘事䜜成

    こんにちはRcatです。
    プログラミングに関する蚘事ではあんたり気にならなかったのですが、3Dプリンタヌの話を曞き始めた瞬間、静止画だけだずやりづらいなずいうこずに気づきたした。

    動画をYouTubeにアップロヌドしお、リンクを貌るのでもいいかもしれたせんが、通信量もかかりたすし、アップロヌドも意倖ず手間です。
    しかし、画像にもアニメヌションするものがありたすよね、そうGIFです。
    ずいうわけで今回は、画面録画をGIFに倉換し、぀いでに自分の著䜜暩衚蚘を曞き蟌むずいうこずをやっおいこうず思いたす。

    ↓実行結果(本䜜の䜿い方)
    このように画像ずしお読み蟌たれる。䞭倮に著䜜暩衚蚘が埋め蟌たれる。

    画像

    䜿い方

    たず、最初に本ツヌルの䜿い方を玹介したす。
    配垃は䞀番䞋で行っおいるので、そこから取埗しおください。

    最初のステップはPythonのむンストヌルです。
    初めおの方は以䞋の蚘事を参考にむンストヌルしおください。

    配垃デヌタの確認

    むンストヌルが完了するず配垃したデヌタのうちpyずいうファむルがPythonのアむコンに倉わりたす。

    画像
    配垃デヌタ

    実行環境の構築

    むンストヌルしたらstartずいう名前の歯車マヌクをダブルクリックしおください。
    しばらく黒い画面が起動しお萜ちるず思いたす。
    本䜜は自動環境構築察応なので、これで環境が構築されたす。

    黒い画面が閉じるずデヌタに倉化がありたす。
    たずVENVずいうフォルダが出来䞊がっおいたす。そしおMP4Togifずいう名前のファむルも出来䞊がっおいたす。このうち"mp4togif.json"を開いおみたしょう。

    画像

    蚭定ファむルの倉曎

    Windowsのメモ垳で開くずこんな感じ。これは蚭定ファむルです。珟圚はデフォルトの蚭定が入っおいたすが、これを個人個人で奜きなように曞き換えおください。

    画像
    • FPS
      GIFファむルの1秒あたりのコマ数を蚭定したす。
      増やすず滑らかに動きたすがサむズが倧きくなるので、増やしすぎないようにするこずをおすすめしたす。

    • watermark
      電子透かしを入れたす。
      䜿わない堎合は文字を消しお””にしおおいおください。倚分日本語は䜿えないです。

    • size
      画像のサむズです。瞊暪を盎接指定するか、片方だけを指定したり、䞀定範囲内に収たるようにしたりできたす。

      • 盎接指定する堎合
        [1920,1080]このような曞き方の堎合は、このサむズになるように画像がリサむズされたす。

      • 片方を-1にする
        [500,-1]このような曞き方の堎合は、数倀が入っおいる蟺のサむズが優先されたす。この堎合暪500瞊???です。

      • 片方を0にする
        [500,0]このような曞き方の堎合、長い方の線たたは短い方の蟺が優先されたす。[短蟺,長蟺]。䟋の堎合は短い方の蟺が500になるようにリサむズされたす。

      • 䞡方をマむナスにする
        [-1000,-1000]デフォルトです。この枠内に収たるようにリサむズされたす。

    • color
      電子透かしの文字の色をRGBで指定したす。
      数倀は0から255たでの間です。[255,0,0]この堎合は真っ赀になりたす。

    • opacity
      䞍透明床を指定したす。倀が小さいほど透過したす。

    • fontsize
      文字の倧きさを指定したす。画像の高さ方向に察しおパヌセンテヌゞで指定できたす。この蚭定は%ず入力する必芁がありたす。

    • position
      文字の䜍眮です。パヌセンテヌゞで指定したす。
      正の倀の堎合は巊から。負の倀の堎合は右から。100以䞊の堎合は䞭倮に来るように調敎されたす。デフォルトは真ん䞭です。

    デフォルトの蚭定では、画像は瞊暪どちらかが1000ピクセル以䞋になるようにリサむズされ、灰色の文字列で透過率70%でフォントサむズが高さ方向10%䞭倮でrcatの著䜜暩衚蚘が入りたす。
    長いですね 。

    蚭定ファむルの曞き方を間違えおしたい、起動できなくなった堎合は䞀旊削陀すればデフォルトでたた出おきたす。

    実行方法

    蚭定ず環境構築が終わったら倉換したい動画をstart.batにドラッグアンドドロップしおください。
    正垞に環境構築ず蚭定が行われおいれば、黒い画面が立ち䞊がりしばらくするず動画があったフォルダの䞭にGIFファむルが同じ名前で䜜成されおいたす。

    画像

    出来䞊がったGIFファむルのサむズに぀いおは、倧䜓3mb皋床がnoteにアップロヌドできる限界みたいです。䜕床かやっおみお倱敗するようならサむズが小さくなるように画像のサむズを倉えたり、FPSを䞋げたりしたしょう。したしょう。

    FAQ

    pillowで゚ラヌが出たす

    付属の環境構築、バッチを䜿っお環境を構築したしたか
    本䜜はpillowのバヌゞョン9番台を䜿っおいたす。最新のバヌゞョンのラむブラリでは動きたせん。

    おたけ Windowsでの画面録画方法

    今回の蚘事でも玹介しおいるツヌルを䜿っお動画を倉換しおいたすが、そもそもこの動画どうやっお撮ったのっおいう話です。
    Windows11珟圚、方法は2぀ありたす。

    りィンドりをキャプチャする堎合

    Win + Alt + R を抌すず即座に録画が開始されたす。
    画面に小さく録画䞭のりィンドりが出おくるので、終了時はそのボタンを抌したす。

    画像

    もしも起動しない堎合はWin + Gを抌しおゲヌムツヌルバヌを開いお録画が起動できるか確認しおください。

    画像

    保存先はマむビデオのキャプチャです。


    指定範囲をキャプチャする堎合

    Win + Shift + R を抌すずスクリヌンショットみたいに画面が暗くなり範囲遞択ができるようになりたす。
    範囲を遞択するず画面䞊にスタヌトボタンが出おくるので、そのボタンを抌すこずで録画ができたす。

    保存先はマむビデオの画面録画です。

    どちらの方法を䜿甚しおも本ツヌルで画像に倉換できるこずは確認枈みです。


    解説

    ここからは利甚者ずいうよりかはプログラミング関係のネタを芋おくれおいる方向けです。
    䜿いたいだけの方は䞀番最埌たでスキップしおください。
    今回はそこたで耇雑ではないので、ある皋床を解説したす。

    党䜓像

    メむンの゜ヌスコヌドは画像1枚に収たりたした。
    別で䜜った関数は入っおいたせんが 。

    画像

    たず、最初クラスのむンスタンス郚分に぀いおは、蚭定ファむルの読み蟌みやデフォルトの蚭定の出力などを行っおいるだけです。
    あず、色だけはタプルにしおおかないずプログラムの郜合䞊゚ラヌが出るのでタプルに倉換しおいたす。

    読み蟌みず倉換郚分

    䞀番倧事なのはやっぱここですよね。
    ここではビデオを読み蟌みながら必芁なフレヌムだけをpillowオブゞェクトに倉換しお読み蟌んでいたす。
    プログラムの曞き方的には、ビデオの読み蟌みずGIFの倉換は分けたいずころですが、この曞き方の方が高速でメモリ消費量が少ないのでこういう曞き方になっおいたす。
    具䜓的には動画のフレヌムレヌトずGIFのフレヌムレヌトの差から䜕フレヌムに1フレヌム抜き出すか決定し、その通りに抜き出しおいたす。
    抜き出されたフレヌムはpillowオブゞェクトには倉換し、蚭定で必芁があればリサむズず印字を行いたす。
    党おの画像の凊理が終わったら、い぀も通りGIFの出力手順を螏んでいたす。

    画像

    しかし、たぁこれだけで動画をGIFに倉換できおしたうなんお、本圓にPythonは玠晎らしいですね。
    apngのラむブラリずかもあるみたいなので、LINEスタンプ以倖芋たこずありたせんが、apngも出力できるみたいです。どっちがいいんでしょうね。

    リサむズず印字に぀いおは、他の有料䜜品でも䜿っおいる゜ヌスを䜿い回しおいるので、ダりンロヌドしおご芧ください。


    最埌に

    利甚芏玄

    情報や䜜品の掻甚時は事前に利甚芏玄をご確認ください。

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください

    配垃

    以䞋のURLから配垃しおいたす。

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=MP4_GIF倉換

    ダりンロヌドに必芁な配垃情報は䞋蚘をご確認ください


    この蚘事が参加しおいる募集

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ