Android Studioでgif形式で録画したらドットノイズが入ったため対処してみた

Android Studioでgif形式で録画したらドットノイズが入ったため対処してみた

Clock Icon2024.08.07

こんにちは、ゲームソリューション部のsoraです。
今回は、Android Studioでgif形式で録画したらドットノイズが入ったため対処してみたことについて書いていきます。

はじめに

Android Studioでgif形式を指定して録画したとき、ドットノイズが発生しました。
ちなみに、webp形式で録画したときはドットノイズは発生しませんでした。
sr-android-studio-noise01
sr-android-studio-noise02

試したこと(試そうとしたこと)と結論

以下、試したこと(試そうとしたこと)と結論です。
あくまで今回のgifにおける話であり、全てのデータに対して当てはまるものではないと思います。

  • adbコマンドで録画
    • ⇒mp4形式しか対応しておらず、gif形式での録画はできなかった
  • オンラインの変換ツールでwebpをgifに変換
    • ⇒試したツールではドットノイズが発生した
  • FFmpegでwebpをgifに変換
    • ⇒カラーパレットを作成してから変換することで、きれいに変換できた
  • Canvaでwebpをgifに変換
    • ⇒きれいに変換できた

adbコマンドで録画

adbコマンドで画面録画をする方法です。
後から知りましたが、mp4形式のみ対応しており、gif形式での取得はできません。

# 録画
adb shell screenrecord --bit-rate 8000000 --time-limit 5 /data/local/tmp/demo.mp4
# Cドライブにファイルを持ってくる
adb pull /data/local/tmp/demo.mp4 C:{任意の場所}

オンラインの変換ツールでwebpをgifに変換

今回はテスト用のデータなこともあり、オンラインの変換ツールも試してみましたが、ドットノイズが入りました。

FFmpegでwebpをgifに変換

FFmpegは動画や音声を記録・変換・再生するツールです。
録画はAndroid Studioで行って、出力したwebpファイルをFFmpegでgifファイルに変換してみます。
普通に変換するとドットノイズが発生したため、オプションを付けて以下コマンドで変換しました。

# カラーパレットの生成
ffmpeg -i demo.mp4 -vf "palettegen" palette.png
# カラーパレットを使ってgifを生成
ffmpeg -i demo.mp4 -i palette.png -lavfi "paletteuse" demo.gif

フレームレートや画面サイズは明示的に指定せず、カラーパレットを作成してからgifを生成するようにしています。
カラーパレットは、gifに変換する際に使用する色を選定したものです。
gifでは同時に256色までしか使えないため、gifに変換するときに使用する色を選定しておくことで、変換時の品質を上げています。
このコマンドにて変換することで、ドットノイズがないきれいなgifファイルが出力できました。

Canvaでwebpをgifに変換

Canvaはオンラインのグラフィックデザインソフトです。
様々なデザインを作成することができます。
Canvaを使ってwebpファイルを配置して、エクスポート時にgif形式を指定して出力することでドットノイズのないきれいなgifファイルを出力することができました。

最後に

今回は、Android Studioでgif形式で録画したらドットノイズが入ったため対処してみたことを記事にしました。
どなたかの参考になると幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.