Chromeで正常に機能するgifを作成すると、WhatsAppで再生できません。静止画像を表示するだけです。
例として、lua
とlua-Gd
GIFを描画するパッケージ。拡大された円の素敵なgifを提供するコード例でも、WhatsAppでは再生されません。 WhatsAppの私のバージョンはgifを問題なく表示できることに注意してください(たとえば、Giphy gifを使用してWeb WhatsApp経由で送信されたもの)。
ここにgifがあります:
これは、lua-Gdによって次の サンプルコード によって生成されます。
require "Gd"
im = Gd.createPalette(120, 120)
assert(im)
black = im:colorAllocate(0, 0, 0)
blue = {}
for i = 1, 20 do
blue[i] = im:colorAllocate(0, 0, 120+6*i)
end
fp = io.open("out.gif", "w")
assert(fp, "Failed to open file for writting")
fp:write(im:gifAnimBeginStr(true, 0))
for i = 1, 20 do
tim = Gd.createPalette(120, 120)
tim:paletteCopy(im)
tim:arc(60, 60, 6*i, 6*i, 0, 360, blue[21-i])
fp:write(tim:gifAnimAddStr(false, 0, 0, 5, Gd.DISPOSAL_NONE))
end
fp:write(Gd.gifAnimEndStr())
fp:close()
ほとんどの場合、コンピュータでgifを共有しているときに発生します。作成したGIFファイルをモバイルデバイスに保存し、モバイルアプリから直接共有してみてください。毎回うまくいきました。
WhatsAppはGIFの直接送信をサポートしていませんが、回避策を見つけました。
動画として送信し、携帯電話で開き、共有し、そこでGIFを選択します(Androidの右上隅)。
この方法で解決することができました:
コンピュータにGIFを取得しました
GIFは、WhatsApp Webを使用して、(写真ではなく)ファイルとして自分に送信されました
ダウンロードして電話で開きました。
ほら!
Linuxでは Imagemagick を使用すると非常に簡単です。
mogrify -resize 350 *.jpeg
convert -loop 0 -delay 50 *.jpeg myanimation.gif
convert myanimation.gif myanimation.mp4
もちろん、最初にGIFを作成せずに直接MP4を作成することもできます。
MP4が機能しない場合は、次の方法で修正してください。
ffmpeg -i broken.mp4 -c:v libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p working.mp4